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的变长字符串 |
DATE | yyyy-mm-dd |
TIME | hh: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. 连接运算
Comments NOTHING