1
大学信息技术基础教程
1.2.6.4.3 6.4.3 数据定义语句

6.4.3 数据定义语句

SQL提供数据定义语言(DDL),用以创建或删除数据表、视图和索引等。具体命令如表6.2所示。

表6.2 SQL数据定义语句

img139

1)定义、删除与修改基本表

(1)创建基本表

语句格式:

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

功能:在数据库中创建一张数据表。

说明:< >表示不可缺少的命令项,[ ]表示可选项,可有可无,根据具体情况而定,每个SQL语句都必须以“;”结尾。

[例5] 创建一个学生表Student,由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成,其中学号属性不能为空且值是唯一的。

img140

img141

(2)修改基本表

语句格式:

ALTER TABLE<表名>

[ADD<新列名><数据类型>[完整性约束条件]]

[DROP[<列名>|<完整性约束名>]

[MODIFY<列名><数据类型>];

功能:对已经存在的表结构进行修改,包括添加新的列、删除某一列、修改某个列的定义。

说明:ADD子句用于增加新列和新的完整性约束条件,新增加的列一律为空值;

DROP子句用于删除指定的列或完整性约束条件;

MODIFY子句用于修改原有的列定义。

[例6]向Student表增加“入学时间”列,其数据类型为日期型。

ALTER TABLE Student ADD Scome DATE;

[例7]删除关于学号必须取唯一值的约束。

ALTER TABLE Student DROP UNIQUE(Sno);

(3)删除基本表

语句格式:

DROP TABLE<表名>;

功能:将指定的基本表从外存中删除,包括表结构和表中的所有数据一起删除。

[例8]将Student表中的表头和数据一起删除。

DROP TABLE Student;

2)建立与删除索引

(1)建立索引

建立索引是为了加快查询速度。

语句格式:

CREATE[UNIQUE]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]...])[其他参数];

其中,<表名>指定要建索引的基本表的名字。索引可以建在该表的一列或多列上,各列名之间用逗号分隔,每个<列名>后面可以用<次序>指定索引值的排列次序,包括ASC(升序)和DESC(降序)两种,默认为ASC。

UNIQUE表示此索引的每一个索引值只对应唯一的数据记录。

[例9]为Student表创建一个按学号Sno升序排列的唯一索引。

CREATE UNIQUE INDEX Stusno ON Student(Sno);

(2)删除索引

语句格式:

DROP INDEX<索引名>;

[例10]删除索引Stusno。

DROP INDEX Stusno;