1. 创建基本表

创建基本表,也就是定义基本表的结构,可以通过SQL语句 create table 来实现,其格式如下:

   create table <基本表名>

   (<列名1>  <数据类型>[<列级完整性约束>]

   [,<列名2>  <数据类型>[<列级完整性约束>]]...

   [<表级完整性约束>])

说明


  1. 列的 数据类型 可以是DBMS支持的数据类型,也可以是用户自定义的数据类型,各DBMS支持的类型并不完全相同,可以查阅相关的资料,这里不再罗列。

  2. 完整性约束是指对某一列或若干列的输入值实行限制的约束条件,对某一列设置的约束条件称为列级完整性约束,对若干列设置的约束条件称为表级完整性约束。

   完整性约束类型主要有:

  • NULL /  NOT NULL ,限制列为 空 / 不为空

  • DEFAULT ,给定列的默认值。

  • UNIQUE ,限制列取值不能重复

  • CHECK ,设置列的取值范围

  • PRIMARY KEY ,设置本列为主键

  • FOREIGN KEY ,设置本列为引用其他表的外键。

使用的格式如下:

   [FOREIGN KEY(<外键名>)] REFERENCES <外表名>(<外表列名>)

这些定义都可以在前面加“CONSTRAINT<约束名>”,如下:

   [CONSTRAINT <约束名>] <约束类型>,约束类型上面已给出。

说明

  1. NULL 表示“不知道”、“不确定”或“没有数据”,与“0” 是两个完全不同的概念。

  2. UNIQUE 指基本表在某一列或多个列的组合上的取值必须唯一。

  3. 一个基本表中只能有一个 PRIMARY KEY(该列上的值不能为NULL) ,但可以有多个UNQUE(该列上的值可以为NULL)。

  4. 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

注意:表一旦删除,其结构和表中的数据全部删除,删除时应该谨慎操作。