DDL(Data Definition Language):SQL提供的定义数据库、表、索引等数据库对象的语言
create database 数据库名; #创建数据库,接下来就可以在其中定义table了
drop databse 数据库名; #撤销数据库
#创建基本表
create table <表名>
(<列名><数据类型>[<列级完整性约束条件>]
[,<列名><数据类型>[<列级完整性约束条件>]]……
[,<表级完整性约束条件>]);
<表名>:所要定义的基本表的名字
<列名>:组成该表的各个属性
<列级完整性约束条件>:涉及相应属性列的完整性约束条件
<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件
#删除基本表
drop table <表名>;
#修改基本表
alter table <表名>
[ADD<新列名><数据类型>[完整性约束]]
[DROP<完整性约束名><列名>]
[MODIFY<列名><数据类型>];
常用的完整性约束
SQL中的数据类型
例子
1.建立一个学生表Student,它由学号Sno,姓名Sname,性别Sname,年龄Sage,所在系Sdept五个属性构成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。
create table Student(
Sno char(5) not null unique,(not null unique可以替换为primary key)
Sname char(20) unique,
Ssex char(1),
Sage int,
Sdept char(15)
);
2.建立一个学生选课表SC,它由学号Sno,课程号Cno,修课成绩Grade组成,其中(Sno,Cno)为主码。
create table SC(
Sno char(5),
Cno char(3),
Grade int,
primary key(Sno,Cno),
foreign key (Sno) refernces S(Sno),
foreign key (Cno) refernces C(Cno)
);
3.向Student表增加入学时间列,其数据类型为日期型
alter table student add Scome date;
4.将年龄的数据类型改为半字长整数
alter table student modify Sage SMALLINT;
5.删除学生姓名必须取唯一值的约束
alter table Student DROP unique(Sname);
#创建索引
create [unique] [cluster] index <索引名> on <表名>(<列名>[<次序>][,<列名>[<次序>]]……);
<次序>:索引值的排列次序,升序:ASC,降序:DESC.缺省值:ASC
#删除索引
drop index <索引名>;
例子
1.为学生-课程数据库中的Student,Course,SC三个表建立索引,其中Student表按照学号升序建立唯一索引,Course表按课程号建唯一索引,SC表按学号升序和课程号降序建立唯一索引。
create unique index Stusno on Student(Sno);
create unique index Coucno on Course(Cno);
create unique index Scno on SC(Sno ASC, Cno DESC);
2.在Student 表中的Sname列上建立一个聚簇索引,而且Student表中的记录将按照Sname值的升序存放
create cluster index Stuname on Student(Sname);