大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

数据库 所有SQL语句收集

定义模式实际上定义了一个命名空间,在这个空间中 可以进一步 定义该模式包含的数据对象,例如基本表,视图,索引等
创建模式
CREATE SCHEMA <模式名> AUTHORIZATION 用户名

定义模式的同时,创建表,视图,定义授权
CREATE SCHEMA <模式名> AUTHORIZATION <用户名> [<表定义子句> | <视图定义子句>|<授权定义子句>]

删除模式
DROP SCHEMA <模式名> <CASCADE | RESTRICT>
CASCADE 级联
RESTRICT 限制

创建表
CREATE TABLE <表名>(<列名> <数据类型> [列级完整性约束条件]
[,<列名> <数据类型> [列级完整性约束]]
[,<表级完整性约束条件>]);

修改表:
ALTER TABLE <表名>
[ADD <新列名> <数据类型> [完整性约束]]
[DROP <完整性约束名>]
[ALTER COLUMN <列名> <数据类型>]
ADD: 添加新列和新的完整性约束条件
DROP: 用户删除指定的完整性约束条件, 也可以用来删除列
ALTER COLUMN 用户修改原有的列定义,包括修改列名和数据类型

删除表:
DROP TABLE <表名> [RESTRICT|CASCADE]

建立视图:
CREATE VIEW 视图名
AS
SELECT 列名1,列名2.列名3
FROM Student
WHERE 条件

建立索引
CREATE [UNIQUE][CLUSTER] INDEX <索引名>
ON <表名> (<列名> [<次序>] [,<列名> [<次序>]]...);

例:
CREATE UNIQUE INDEX Stusno ON Student(Sno);
CREATE UNIQUE INDEX Coucno ON Course(Cno);
CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Cno DESC)

删除索引:
DROP INDEX <索引名>

索引实现的方式
B+ 树 动态平衡
HASH 索引 查找速度快

关于 GROUP BY 和聚合函数

如果语句中有group by关键字,那么select后只能跟group by后出现的列,或者是聚合函数
max() min() count(),sum(),avg()

数据查询

一般格式:
SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式>]...
FROM <表名或视图名>[,<表名或视图名>]...
[WHERE <条件表达式>]
[GROUP BY <列名1> [HAVING <条件表达式>]]
[ORDER BY <列名2> [ASC|DESC]];

单表查询
查询指定列
SELECT Sno,Sname FROM Student

查询全部列
SELECT * FROM Student

查询经过计算的值
SELECT Sname, 2004-Sage FROM Student

指定别名
SELECT Sname 姓名, 'Year of Birth:' 生日, 2004-Sage 年龄, LOWER(Sdept) 部门

消除重复行
SELECT DISTINCT Sno FROM SC

数据库性能调优

《数据库性能调优:原理与技术》
英文名
《Database Tuning:Principles,Experiments,and Troubleshooting Techniques》

建立视图
CREATE VIEW <视图名> [(<列名>) [,<列名>] ...]
AS <子查询>
[WITH CHECK OPTION]

WHERE 子句不能用聚集函数作为条件表达式

UPDATE 表名 SET 列名=表达式 WHERE 条件
INSERT INTO 表名
DELETE FROM 表名 WHERE 条件