数据定义
SQL的数据定义语句
操 作 对 象 |
操 作 方 式 |
||
创 建 |
删 除 |
修 改 |
|
表 |
CREATE TABLE |
DROP TABLE |
ALTER TABLE |
视 图 |
CREATE VIEW |
DROP VIEW |
|
索 引 |
CREATE INDEX |
DROP INDEX |
|
一、定义基本表
[例1]建立学生表Student
CREATE TABLE Student
(Sno CHAR(5) PRIMARY KEY,
Sname CHAR(20) ,
Ssex CHAR(1) ,
Sage INT,
Sdept CHAR(15));
常用数据类型
CHAR(n) 字符型
INT 整型
NUMERIC ( 精度,小数) 实型
DATE 日期型
NUMERIC ( 8,2) 表示精度8位,有2位小数,6位整数
[例2] 建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno, Cno)为主码。
CREATE TABLE SC(
Sno CHAR(5) ,
Cno CHAR(3) ,
Grade INT,
Primary key (Sno, Cno));
建立表时,系统会将表的结构描述存入数据字典中
在SQL SERVER中, 数据字典称为系统表
数据字典===系统表===数据库模式
SQL SERVER中, 与TABLE有关的系统表:
sysobjects 数据库对象
syscolumns 列
二、修改基本表
ALTER TABLE <表名>
[ ADD <新列名> <数据类型> [ 完整性约束 ] ]
[ DROP <原列名>|<完整性约束名> ]
[ALTER COLUMN <原列名> <数据类型> ];
[例3] 向Student表增加“入学时间”列,其数据类型为日期型。
ALTER TABLE Student ADD Scome DATE;
不论基本表中原来是否已有数据,新增加的列一律为空值。
三、删除基本表
DROP TABLE <表名>;
删除表时,系统会从数据字典中删去有关该表的描述
[例4] 删除Student表
DROP TABLE Student ;
四.索引的建立与删除
建立索引是加快查询速度的有效手段
[例5] 为Student的sname列建立索引。
CREATE INDEX StuName ON Student(Sname);
语句格式:
CREATE INDEX <索引名>
ON <表名>(<列名 [,<列名> ]…);
[例6] 为Course的Cname列建立唯一值索引。
CREATE UNIQUE INDEX CouName ON Course(Cname);
删除索引
DROP INDEX <索引名>;
删除索引时,系统会从数据字典中删去有关该索引的描述。
[例7] 删除Student表的Stusname索引。
DROP INDEX Stusname;