7.2.1 在创建表时添加主键约束

在创建表时,很容易为数据表添加主键约束,但是主键约束在每张数据表中只有一个。创建表时添加主键约束的语法格式有两种。下面进行介绍:

1.添加列级主键约束

列级主键约束就是在数据列的后面直接使用关键字PRIMARY KEY来添加主键约束,并不指明主键约束的名字,这时的主键约束名字由数据库系统自动生成,具体的语法格式如下:

     CREATE TABLE table_name
     (
     COLUMN_NAME1  DATATYPE PRIMARY KEY,
     COLUMN_NAME2  DATATYPE,
     COLUMN_NAME3  DATATYPE
     ……
     );

【例7.1】在test数据库中定义数据表persons,为id添加主键约束。打开【查询编辑器】窗口,在其中输入T-SQL语句:

     CREATE TABLE persons
     (
     id      INT            PRIMARY KEY,
     name   VARCHAR(25)   NOT NULL,
     deptId   CHAR(20)      NOT NULL,
     salary   FLOAT         NOT NULL
     );

单击【执行】按钮,即可完成创建数据表并添加主键约束的操作,并在【消息】窗格中显示命令已成功完成的信息提示,如图7-1所示。

图7-1 执行T-SQL语句

执行完成之后,选择新创建的数据表,然后打开该数据表的设计图,即可看到该数据表的结构,其中前面带钥匙标志的列被定义为主键约束,如图7-2所示。

图7-2 表设计界面

2.添加表级主键约束

表级主键约束也是在创建表时添加,但是需要指定主键约束的名字。另外,设置表级主键约束可以设置联合主键,具体的语法格式如下:

     CREATE TABLE table_name
     (
     COLUMN_NAME1  DATATYPE,
     COLUMN_NAME2  DATATYPE,
     COLUMN_NAME3  DATATYPE
     ……
     [CONSTRAINT  constraint_name]  PRIMARY KEY(column_name1, column_name2,…)
     );

主要参数介绍如下:

• constraint_name:为主键约束的名字,可以省略。省略后,由数据库系统自动生成。

• COLUMN_NAME1:数据表的列名。

【例7.2】在test数据库中定义数据表persons1,为id添加主键约束。打开【查询编辑器】窗口,在其中输入T-SQL语句:

     CREATE TABLE persons1
     (
     id      INT   NOT NULL,
     name   VARCHAR(25) NOT NULL,
     deptId   CHAR(20) NOT NULL,
     salary   FLOAT NOT NULL
     CONSTRAINT 人员编号
     PRIMARY  KEY(id)
     );

单击【执行】按钮,即可完成创建数据表操作,并在【消息】窗格中显示命令已成功完成的信息提示,如图7-3所示。

图7-3 执行T-SQL语句

执行完成之后,选择新创建的数据表,然后打开该数据表的设计图,即可看到该数据表的结构,其中前面带钥匙标志的列被定义为主键,如图7-4所示。

图7-4 为id列添加主键约束

上述两个实例执行后的结果是一样的,都会在id字段上设置主键约束,第二条CREATE语句同时还设置了约束的名称为“人员编号”。