完成SQL核心功能只用9个动词,如下表:
SQL功能 | 动词 |
---|---|
数据定义 | CREATE、DROP、ALTER |
数据查询 | SELECT |
数据操纵 | INSERT、UPDATE、DALETE |
数据控制 | GRANT、REVOKE |
基本表是本身独立存在的表,一个关系对应一个基本表。
视图是一个虚表,是从一个或多个基本表导出的表。关系型数据库只存储视图的定义而不存放视图对应的数据,数据仍存放在导出视图的基本表中,在需要时临时从基本表中提取数据,视图上还可以再定义视图。
SQL的数据定义功能包括定义表、定义视图、定义索引,如下表所示。
创建 | 删除 | 修改 | |
---|---|---|---|
表 | CREATE TABLE | DELETE TABLE | ALTER TABLE |
视图 | CREATE VIEW | DELETE VIEW | / |
索引 | CREATE INDEX | DELETE INDEX | / |
视图是基于基本表创建的,而索引是依附于表,用户要想修改视图和索引,只将其删除,然后再重新创建。
基本表的定义、修改和删除
基本表的定义:
CREATE TABLE <表名>
(<列名> <数据类型> [<列级完整性约束条件>]
,<列名> <数据类型> [<列级完整性约束条件>]
...
[,<表级完整性约束条件>]);
列级完整性约束条件:(学生关系)
Sno CHAR(6) PRIMARY KEY,
Sname CHAR(10) UNIQUE,
Ssex CHAR(2) CHECK (Ssex IN ('男','女')),
Sdate DATETIME NOT NULL
表级完整性约束条件:(选修关系)
PRIMARY KEY(Sno,Cno), //选修表中学号,课程号
FOREIGN KEY(Sno) REFERENCES Student(Sno),
FOREIGN KEY(Cno) REFERENCES Course(Cno)
基本表的修改:
ALTER TABLE <表名>
[ADD <新列名> <数据类型> [<完整性约束>]] //添加表新属性
[DROP CONSTRAINT <完整性约束名>] //删除完整性约束条件
[ALTER COLUMN <列名> <数据类型>]; //修改表列名、类型
基本表的删除:
DROP TABLE <表名>;
注意:
1.基本表一旦删除后,表中数据以及此表上建立的索引、视图、触发器等都将自动被删除。
2.DROP TABLE 不能用于删除由外键约束引用的表,必须先删除有外键约束条件的表,然后才能删除其引用的表。(例如先删除选修表,才能删除学生表)