使用SQL语句在初次创建数据表时,同时增长约束的方法很是简单:
create table 表名
(列名 列的属性 约束名
[,...n] )便可,可创建的约束包括primary key 、foreign key、null/not null、check、default等
例如create table student
( stu_no char(6) primary key,
stu_name char(10) not null,
stu_sex char(2) check(stu_sex='男' or stu_sex='女'), /*约束此列的值只能输入“男”或“女”值*/
stu_nation char(10) default '汉族',
)
create table grade
( stu_no char(6) foreign key (stu_no) references student(stu_no), /*此为定义外键约束*/
subject_no int,
grade decimal(4,1) check(grade>=0 or grade <=100) /*约束成绩取值范围在0-100分之间*/
可是若创建好数据表以后,想要再往列增长约束或修改约束,则格式根据约束的不一样各有不一样:
use xscj
go
create table abc
(s_no char(10),
s_name char(10),
s_sex char(2),
s_nation char(16)
) /*以上为创建一个没有任何约束的新数据表*/
go
alter table abc
alter column s_no char(10) not null
go
alter table abc
add primary key (s_no) /* 以上为给表的s_no列加上primary key 约束*/
go
alter table abc
add check(s_sex='男'or s_sex='女') /*给x_sex列加check约束*/
go
alter table abc
add default '汉族' for s_nation /*加default约束时格式和其余的有所不一样*/
go
但若是是创建表时已经给列创建了某种约束,须要修改其约束的话,则须要先删除掉原有约束,而后再增长新约束,至于删除约束的命令格式为:alter table 表名 drop constraint 约束名
此处的约束名因为创建约束时给省略了,因此需经过“sp_helpconstraint 表名”命令查看到列上对应的constraint_name(即约束名)io
总结!!!table
create table test /*建立test表*/ class
( test_no char(6) primary key, /*新增字段test_no 并设置为主键*/
test_name char(10) not null, /*建立字段test_name 并设置不能空*/
test_sex char(2) check(test_sex='男' or test_sex='女'), /*约束此列的值只能输入“男”或“女”值 感受有点像 vb 哈哈*/
test_nation char(10) default '汉族', /*建立字段test_nation 并设置默认值为汉族*/
) test
另外:再约束中 也能够有 and 这个链接字。
如 check(test_age>0 and test_age<=150) #年龄再0到150之间
固然还能够用 in 这个
如 check(test_sex in ('男','女','中性')) #性别是 男 女 或中性方法
附上:
删除约束
alter table 表名 drop constraint 约束名
增长约束
alter table abc
add check(test_sex='男'or test_sex='女') /*给test_sex列加check约束*/ im