表的创建
使用CREATE TABLE语句来建立表,其语法如下:
CREATE TABLE table_name
(
column_namel data_type [NULL | NOT NULL] [PRIMARY | UNIQUE]
[FOREIGN KEY [(column_name)]]
REFERENCES ref_table [(ref_column)]
[column_name2 data_type …]
……
)
其中,各参数含义如下:
· table_name 要创建的表的名称。
· column_namel 第一个字段名称。
· data_type 指定字段的数据类型。
其余为字段属性设置参数,将在下面介绍。
(1) 基本用法
例如,在test数据库中创建一个clients表,SQL语句如下:
USE test
CREATE TABLE clients (
cid int,
cname char(8),
address char(50)
)
其中第1行表示使用test数据库,创建的表clients中包含3个字段:cid、cname和address。数据类型分别为整型、字符型(长度为8)和字符型(长度为50)。
提示:USE语句只要在第一次使用即可,后续的SQL语句都是作用在该数据库中。若要使用其他的数据库,才需要再次执行USE语句。
(2) 段属性参数
除了可以设置字段的数据类型外,还可以利用一些属性参数来对字段做出限定。例如,将字段设置为主键,限制字段不能为空等。
常用的属性参数如下:
· NULL和NOT NULL 限制字段可以为NULL(空),或者不能为NULL(空)。
· PRIMARY KEY 设置字段为主键。
· UNIQUE 指定字段具有惟一性。
例如,下面的SQL语句是在test数据库中建立一个book表,并指定bid为主键,而bname为非空:
CREATE TABLE book (
bid int NOT NULL PRIMARY KEY,
bname char(8) NOT NULL,
authorid char(10)
)
(3) 与其他表建立关联
表的字段可能参考到其他表的字段,这就需要将两个表建立关联。此时,就可以使用如下的语法:
FOREIGN KEY REFERENCE ref_table(ref_column)
其中,“ref_table”指出要关联的表,“ref_column”指出要关联的字段名称。
例如,可以将book表中的authorid字段关联到authors表的authorid字段。在企业管理器中将前面创建的book表删除,然后执行下面的语句:
CREATE TABLE authors (
authorid int NOT NULL PRIMARY KEY,
authorname char(20),
address char(30)
)
CREATE TABLE book (
bid int NOT NULL PRIMARY KEY,
bname char(8) NOT NULL,
authorid int FOREIGN KEY REFERENCES authors(authorid)
)
上面的语句首先创建一个authors表,然后创建book表,并将authorid字段关联到authors表的authorid字段。
提示:在创建book表时,由于将authorid字段关联到了authors表,因此authors表必须存在。这也是上面首先创建authors表的原因。
另外,可以使用SELECT INTO 语句创建一个新表,并用 SELECT 的结果集填充该表。新表的结构由选择列表中表达式的特性定义,例如,以下命令创建student1表,它包含student表的sno、sname和class等三个字段和对应的记录:
SELECT sno,sname,class INTO student1 FROM student