PRIMARY KEY约束与 FOREIGN KEY约束创建
主键PRIMARY创建:
格式1:
CREATE TABLE <表名>
(
<列名1> 数据类型 PRIMARY KEY,
<列名2> 数据类型
)
如:创建表g1并且设置g_id为主键
CREATE TABLE g1
(
g_id CHAR(6) PRIMARY KEY,
g_name VARCHAR(20)
)
格式2:
CREATE TABLE <表名>
(
<列名1> 数据类型 ,
<列名2> 数据类型 ,
.....,
CONSTRAINT 约束名 PRIMARY KEY(列或者列的组合)
)
如:创建表stu 定义主键为s_id
CREATE TABLE stu
(
s_id CHAR(10) ,
s_name VARCAHR(30) ,
s_sex CHAR(2),
CONSTRAINT pk PRIMARY KEY(s_id)
)
FOREIGN KEY 约束
创建时的FOREIGN KEY约束:
CREATE TABLE <表名>
(
<列名> 数据类型 REFERENCES <被引用的表名> (被引用的列名)
例:
CREATE TABLE Types
(
t_id CHAR(2) PRIMARY KEY,
t_Name VARCAHR(2)
)
CREATE TABLE goods
(
g_id CHAR(6) ,
g_Name VARCHAR(30) ,
t_id CHAR(2) REFERENCES Types(t_id)
)
//goods的外键引用的Types的t_id必须为Types的主键,
一个表可以有多个外键,每个外键是每个引用表的主键。
修改添加外键约束:
ALTER TABLE <表名>
ADD CONSTRAINT <约束名> FOREIGN KEY (字段名) REFERENCES <被引用的表名> (被引用的列名)
例:
ALTER TABLE goods
ADD CONSTRAINT fg_t_id FOREIGN KEY (t_id)
REFERENCES Types(t_id)
CHECK例子:
关于LENGTH:
DataLength()函数返回的是字符串字节的长度,包含后缀空格。而Len()函数返回的是字符串的字符长度,不包含后缀的空格。
设置Customers表的c_CarID的长度只能为15或者18位
ALTER TABLE Customers ADD CONSTRAINT
ck_CarID CHECK(len(c_CarID)=15 OR len(c_CarID=18))
//限定了输入字符长度为15或者18
电子邮箱中(e-Email)必须包含“@”符号
ALTER TABLE Customers ADD CONSTRAINT
ck_email CHECK ([c_E-mail] LIKE '%@%')
UNIQUE 约束 : 确保列中不输入重复值来保证数据的完整性
创建UNIQUE
CREATE TABLE <表名>
(....
<列名> 数据类型 UNIQUE,
...)
修改设置UNIQUE约束
ALTER TABLE <表名>
ADD CONSTRAINT <约束名> UNIQUE (字段)
//使用sp_help <表名>查看到约束名