约束
主关键字约束(Primary Key Constraint)
用来指定表中的一列或几列组合的值在表中具有唯一性。建立主键的目的是让外键来引用。
Primary Key的创建方式
在创建表时创建Primary Key
CREATE TABLE table1(
t_id VARCHAR(12) ,
t_name VARCHAR(20),
t_phone VARCHAR(20),
CONSTRAINT t_idss PRIMARY KEY(t_id)
);
对t_id列创建主键,约束名为t_idss。
删除Primary Key
ALTER TABLE table1
DROP CONSTRAINT t_idss;
约束名与列名不一致,此处填写约束名
向已有表中添加Primary Key
ALTER TABLE table1
ADD CONSTRAINT t_idss
PRIMARY KEY(t_id);
添加Primary Key的另一种示例
ALTER TABLE Products
ADD PRIMARY KEY(prod_id);
虽然上述代码运行没问题,查看表格设计也可以看到Primary Key设置成功,但是在删除Primary Key操作时会提示:
消息3728,级别16,状态1,第1 行
‘prod_id’ 不是约束。
消息3727,级别16,状态0,第1 行
未能删除约束。请参阅前面的错误信息。
原因是添加Primary Key语句中没有用CONSTRAINT指明约束名,系统自动生成了主键名和约束名,要先查看主键名和约束名,删除时填写的也是约束名。
这种情况的正确删除方法
ALTER TABLE Products
DROP CONSTRAINT CK__Products__prod_p__1A14E395;
ALTER TABLE Products
DROP CONSTRAINT PK__Products__56958AB222AA2996;
多列组合添加主键约束
CREATE TABLE table1(
t_id VARCHAR(12),
s_id VARCHAR(20),
score FLOAT,
CONSTRAINT ts_id PRIMARY KEY(t_id,s_id)
);
外关键字约束(Foreign Key Constraint)
定义了表之间的关系,用来维护两个表之间的一致性的关系。
在创建表时创建Foreign Key Constraint
CREATE TABLE table2(
s_id VARCHAR(20),
s_name VARCHAR(12),
s_tellphone VARCHAR(11),
s_address VARCHAR(20),
CONSTRAINT PK_s_id PRIMARY