创建基本表
创建基本表,也就是定义基本表的结构,可以通过SQL语句 create table 来实现,其格式如下:
create table <基本表名>
(<列名1> <数据类型>[<列级完整性约束>]
[,<列名2> <数据类型>[<列级完整性约束>]]...
[<表级完整性约束>])
说明:
列的 数据类型 可以是DBMS支持的数据类型,也可以是用户自定义的数据类型,各DBMS支持的类型并不完全相同,可以查阅相关的资料,这里不再罗列。
完整性约束是指对某一列或若干列的输入值实行限制的约束条件,对某一列设置的约束条件称为列级完整性约束,对若干列设置的约束条件称为表级完整性约束。
完整性约束类型主要有:
NULL / NOT NULL ,限制列为 空 / 不为空
DEFAULT ,给定列的默认值。
UNIQUE ,限制列取值不能重复
CHECK ,设置列的取值范围
PRIMARY KEY ,设置本列为主键
FOREIGN KEY ,设置本列为引用其他表的外键。
使用的格式如下:
[FOREIGN KEY(<外键名>)] REFERENCES <外表名>(<外表列名>)
这些定义都可以在前面加“CONSTRAINT<约束名>”,如下:
[CONSTRAINT <约束名>] <约束类型>,约束类型上面已给出。
说明:
NULL 表示“不知道”、“不确定”或“没有数据”,与“0” 是两个完全不同的概念。
UNIQUE 指基本表在某一列或多个列的组合上的取值必须唯一。
一个基本表中只能有一个 PRIMARY KEY(该列上的值不能为NULL) ,但可以有多个UNQUE(该列上的值可以为NULL)。
FOREIGN KEY 所引用的列必须是有PRIMARY KEY 或UNIQUE约束的列。
举例:创建一个学生表,包含学号、学生姓名、性别、年龄、国籍、班名、出生地 列,SQL命令如下:
create table Student /*创建 学生表 */ ( /*约束 约束名 设置主键*/ sno varchar(12) constraint s_prim primary key, sname varchar(20) constraint s_cons not null, sex varchar(10) default '男', /*设置性别默认是'男'*/ age int chaeck(age >= 0 and age <= 120), nation varchar(20) not null, clname varchar(20), place varchar(20) not null )
上述命令等价于如下命令:
create table Student /*创建 学生表 */ ( /*约束 约束名可以省略,但是在删除约束时比较麻烦*/ sno varchar(12) primary key, sname varchar(20) not null, sex varchar(10) default '男', /*设置性别默认是'男'*/ age int chaeck(age >= 0 and age <= 120), nation varchar(20) not null, clname varchar(20), place varchar(20) not null )
2.修改基本表
SQL中用 alter table 语句来增加列,修改原列类型,增加或删除完整性约束,其语句的格式如下:
alter table <表名> [alter column <列名> <新数据类型>]/*修改列的数据类型*/ |[add <列名> <数据类型> [约束]]/*增加列名*/ |[drop column <列名>]/*删除列*/ |[add [constraint 约束名]]/*增加约束*/ |[drop [constraint <约束名>]]/*删除约束*/
注意:上述对表的修改命令每次只能执行一条,否则会引起表的数据的不一致。
举例:在上面学生表Student 中,增加“联系电话”列,数据类似为字符型,长度为11。
SQL命令如下:
alter table Student add Phone char(11)
注意:新增加的列的约束不能定义为“not null”,因为在增加一列后,原有组在新增列上的值被定义为null。
3.删除基本表
可以用 drop table语句来删除不需要的表,其一般格式如下:
drop table <表名>
举例:删除上面创建的学生表Student,SQL命令如下:
drop table Student
注意:表一旦删除,其结构和表中的数据全部删除,删除时应该谨慎操作。