通过SQL语句设置或删除主键——CONSTRAINT用法

去除主键

            Alter table  表名  Drop Constraint PrimaryKey

            解释一下,上面的 PrimaryKey 是完整性约束条件的名字,Access数据库为主键约束默认取名PrimaryKey。当然如果主键约束被自己取了别的名字,这里也要做相应的改变了。

 

添加主键

            Alter table 表名 Add  Constraint  PrimaryKey  Primary  Key (主键字段名)

            解释一下,第一个PrimaryKey和上面的一样,是自己为主键完整性约束取的名字。 后面的 Primary Key (主键字段)当然就是主键约束短语了,除了Primary Key之外,还可以是Foreign key 或 Check 短语。

       具体的可以查查CONSTRAINT的用法,它用来添加完整性约束条件,并且指定该约束条件的名字(这样就方便以后删除这个约束条件)。Constrain也可以用在Create语句中,在建表时就用它来设置 PRIMARY KEY, FOREIGN KEY, CHECK 等约束。





sql中constraint主要是增加约束


以下几种约束 、并 一一列举:


1.主键约束:
主键约束:就是对一个列进行了约束,约束为(非空、不重复)
要对一个列加主键约束的话,这列必须满足条件非空,这样才可以约束
以下是代码   要对一个列加主键,列名为id,表名为emp


格式为:
alter table 表格名称 add constraint 约束名称 增加的约束类型 (列名)


例子:
alter table emp add constraint ppp primary key (id)


————————————————————————————————


2.check约束:
check约束:给一列的数据进行了限制
比方说,年龄列的数据都要大于20的
表名(emp) 列名(age)


格式:
alter table 表名称 add constraint 约束名称 增加的约束类型 (列名)


例子:
alter table emp add constraint xxx check(age>20)

___________________________________________________________________


3.unique约束:
unique约束:给列的数据追加的不重复的约束类型


格式:
alter table 表名 add constraint 约束名称 约束类型(列名)
比方说可以给ename列加个unique,让ename列的数据不重复
例子:
alter table emp add constraint qwe unique(ename)


————————————————————————————————


4.默认约束:
默认约束:让此列的数据默认为一定的数据


格式:
alter table 表名称 add constraint 约束名称 约束类型 默认值) for 列名


比方说:emp表中的gongzi列默认为10000


alter table emp add constraint jfsd default 10000 for gongzi




————————————————————————————————


5.外键约束:
外键其实就是引用
因为主键实现了实体的完整性,
外键实现了引用的完整性,
应用完整性规定,所引用的数据必须存在!


其实就是个引用,
比方说一个表名称叫dept 里面有2列数据 一列是ID一列是ENAME
id:表示产品的编号
ename:表示产品的名称


另外一个表格名称是emp 里面有2列数据,一列是ID 一列是DID
id:表示用户号
did:表示购买的产品号


要让emp表中的did列去引用dept表中的id


可以用下面的方法


格式:
alter table 表名 add constraint 约束名称 约束类型 (列名) references 被引用的表名称 (列名)


例子:
alter table emp add constraint jfkdsj foreign key (did) references dept (id)

你可能感兴趣的:(SQL,SERVER)