TIPS : 读者可通过 CTRL+F 在此页面内进行检索。

注:代码块中< >内的为必要内容,[ ]内的为可选内容。

一、数据建立

1. 模式

1.1 创建模式

--example
CREATE SCHEMA <schemaname> AUTHORIZATION <adminname>

如果没有指定<schema>模式名,那么<schema>隐含为<adminname>。
注:要创建模式,必须拥有数据库管理员权限。
在 CREATE SCHEMA 中可以接受 CREATE TABLE, CREATE VIEW, GRANT 子句。用户可以在创建模式的同时在这个模式定义中进一步创建基本表、视图。

--example
CREATE SCHEMA <schemaname> AUTHORIZATION <adminname>
CREATE TABLE table1( column1 INT,
                     ... ...,
                     colume2 CHAR(20));

1.2 删除模式

--example
DROP SCHEMA <schemaname><CASCADE|RESTRICT>

其中 CASCADE 表示级联删除该模式下的所有数据库对象;RESTRICT 表示如果该模式只有在没有任何下属对象时才能执行此删除语句,否则该语句拒绝执行。二者必选其一。

2. 基本表

2.1 创建基本表

--example
CREATE TABLE <tablename>( <columnname><datatype>[Col-level Integrity Constraint Condition],
                          ... ...,
                          [Tab-level Integrity Constraint Condition]);

列级完整性约束条件(如主键 PRIMARY KEY, 唯一值 UNIQUE等)存入系统的数据字典中,当用户操作表中数据时,由关系数据库系统自动检查是否遵循违反条件。
如果完整性约束条件设计该表的多个属性列,则必须定义在表级上。
e.g. FOREIGN KEY(Cpno) REFERENCES Course(Cno) --Cpno是外码,被参照表是Course,被参照列是Cno.

2.2 数据类型

每一个属性来自一个域,其取值必须是域中的值。SQL中用数据类型来实现域的概念。
常见数据类型:

数据类型含义
CHAR(n)长度为n的定长字符串
VARCHAR(n)最大长度为n的变长字符串
DATEyyyy-mm-dd
TIMEhh:mm:ss
INT长整型 4Byte
SMALLINT短整型 2Byte
BIGINT大整型 8Byte
BOOLEAN布尔量
FLOAT(n)可选精度的浮点数,精度至少为n位数字
REAL取决于机器精度的单精度浮点数
DOUBLE PRECISION取决于机器精度的双精度浮点数
DEC(p, d)定点数,共p位数字,小数点后d位
TIMESTAMP时间戳
INTERVAL时间间隔
CLOB字符串大对象
BLOB二进制大对象

2.3 模式与表

2.4 修改基本表

3. 索引

二、数据查询

1. 单表查询

2. 连接查询

3.1 等值连接

--example
SELECT table1.*, table2.* FROM table1,table2 --join
WHERE table1.colume = table2.column --equal

3.2 自然连接

--example
SELECT FIRST.Cno, SECOND.Cpno
FROM course FIRST, course SECOND
WHERE FIRST.Cpno = SECOND.Cno;

3.3 自身连接

--example
SELECT FIRST.Cno, SECOND.Cpno
FROM course FIRST, course SECOND
WHERE FIRST.Cpno = SECOND.Cno;

3.4 外连接

与等值连接相似,在连接条件的一边加 外连接符*, 使不满足连接条件的元组也能输出, 只是这样的元组中*所在边的表的列值均为空值.

--example
SELECT table1.* FROM table1,table2 --left inner join
WHERE table1.column = table2.column;
--SQL Sever
SELECT table1.* FROM table1 right inner join table2 --right inner join
on table1.column = table2.column;

3. 嵌套查询

4. 集合查询

5. 基于派生表的查询

6. SELECT语句的一般格式

三、数据更新

四、基本关系运算的SQL语句实现

1. 选择运算

2. 投影运算

3. 连接运算