- Published on
SQL使用手册
简介
SQL是一种特定的查询语言,向 DBMS 发送查询请求,查询结构化数据库,DBMS 返回查询结果。
基本数据类型
字符
- char、varchar、text整数
- smallint、integer浮点数
- number(n,d)、float(n,d)、日期
- date、datetime货币
- money
创建/删除数据库/表/索引
CREATE DATABASE <数据库名>;
DROOP DATABASE <数据库名>;
CREATE TABLE <表名>
( <列名1> <数据类型> [列完整性约束],
<列名1> <数据类型> [列完整性约束],
<列名1> <数据类型> [列完整性约束],
……
);
DROP TABLE <表名>;
CREATE INDEX <索引名> ON <表名><(列名)>;
DROP INDEX <索引名>;
列完整性约束
主键
- primary key- ``非空值` - not null
空值
- null值唯一
- unique有效性检查
- check缺省值
- default
主键/复合主键/代理键/外键
CREATE TABLE plan
( <列名1> <数据类型> [列完整性约束],
CONSTRAINT <约束名> primary key(主键列)
);
CREATE TABLE plan
( <列名1> <数据类型> [列完整性约束],
CONSTRAINT <约束名> primary key(主键列, 主键列)
);
CREATE TABLE plan
( <代理键列名> <Serial数据类型> not null,
<列名2> <数据类型> [列完整性约束],
CONSTRAINT <约束名> primary key(代理键列名)
);
CREATE TABLE register
( <列名1> <数据类型> [列完整性约束],
CONSTRAINT <约束名> foreign key(外键列)
);
修改表结构
ALTER TABLE <表名> ADD <新列名称><数据类型>|[完整性约束];
ALTER TABLE <表名> DROP COLUMN <列名>;
ALTER TABLE <表名> DROP CONSTRAINT <完整性约束名>;
ALTER TABLE <表名> RENAME TO <新表名>;
ALTER TABLE <表名> RENAME <原列名> TO <新列名>;
ALTER TABLE <表名> ALTER COLUMN <列名> TYPE<新的数据类型>;
数据操作语句
INSERT INTO <表名|视图名>[<列名表>] VALUES (列值表);
UPDATE <表名|视图名>
SET <列名1>=<表达式1> [, <列名2>=<表达式2...]
[WHERE <条件表达式>]
DELETE
FROM <表名|视图名>
[WHERE <条件表达式>];
查询数据语句
SELECT [ALL|DISTINCT] <目标列>[, <目标列> ...]
[INTO <新表>]
FROM <表名|视图名>[, <表名|视图名>...]
[WHERE <条件表达式>]
[GROUP BY <列名> [HAVING <条件表达式>]]
[ORDER BY <列名> [ASC|DESC]][, <列名> [ASC|DESC]]
Where子句
取值范围
- between .. and ..通配符
- 下划线(_)通配符代表一个未指定的字符,百分号(%)通配符代表一个多个未指定的字符。逻辑运算符
- and、or、not、in、not in。
分组统计
SELECT 统计函数(目标列)
FROM <表名|视图名>[, <表名|视图名>...]
[WHERE <条件表达式>]
[GROUP BY <目标列>
[HAVING 条件]
内置函数
聚合函数
- avg、count、min、max、sum算术函数
字符串函数
日期时间函数
数据类型转换函数
内连接
SELECT <目标列>[, <目标列>...]
FROM <表名|视图名>
WHERE <条件中嵌套另一关系表的select查询结果集>
SELECT <目标列>[, <目标列>...]
FROM <表名1>, <表名2>, ..., <表名n>
WHERE <关系表之间的连接关联条件>
SELECT <目标列>[, <目标列>...]
FROM <表名1> JOIN <表名2> ON <连接条件>;
外连接
左外连接
- left join右外连接
- right join全外连接
- full join
视图操作
CREATE VIEW <视图名>[(列名1),(列名2),...] AS <SELECT查询>;
DROP VIEW <视图名>;
数据控制操作
GRANT <权限列表> ON <数据库对象> TO <用户或角色> [ WITH GRANT OPTION];
REVOKE <权限列表> ON <数据库对象> FROM <用户或角色>;
DENY <权限列表> ON <数据库对象> TO <用户或角色>;