转自http://blog.csdn.net/hamber_bao/article/details/6504905

约束的目的就是确保表中的数据的完整性。

常用的约束类型如下:

主键约束:(Primary Key constraint)      要求主键列唯一,并且不允许为空

唯一约束:(Unique Constraint)              要求该列唯一,允许为空,但只能出现一个空值

检查约束:(Check Constraint)                某列取值范围限制、格式限制等。如有关年龄的限制

默认约束:(Default Constraint)               某列的默认值,如我们的男性学员比较多,性别默认为男

外键约束:(Foreign Key Constraint)       用于在两表之间建立关系,需要指定引用主表的哪一列

一、添加约束

在创建表时,我们可以在字段后添加各种约束,但一般不这样混用,推荐将添加约束和建表的语句分开编写。

添加约束的语法如下:

  1. Alter Table 表名
  2. Add Constraint  约束名 约束类型 具体的约束类型

上述语法标识修改某个表,添加某个约束,其中约束名的命名规则推荐采用"约束类型_约束字段"这样的形式。

  1. ---添加主键约束
  2. Alter Table stuInfo
  3. Add Constraint  PK_stuNO primary Key(stuNo)
  4. ---添加唯一约束
  5. Alter Table stuInfo
  6. Add Constraint UQ_stuID unique(stuID)
  7. ---添加默认约束
  8. Alter Table stuInfo
  9. Add Constraint DF_stuAddress default('地址不详') for stuAddress
  10. ---添加检查约束
  11. Alter Table stuInfo
  12. Add Constraint CK_stuAge check(stuAge between 15 and 40)
  13. ---添加外键约束
  14. Alter Table stuMarks
  15. Add Constraint FK_stuNo foreign key(stuNo) references stuInfo(stuNo)

二、删除约束

如果错误的添加了约束,则可以删除约束

删除约束的语法如下:

  1. Alter Table 表名
  2. Drop Constraint  约束名

附加:在创建表的时候同时添加约束的写法:

  1. use stuDB
  2. go
  3. if exists(select * from Sysobjects where name = 'stuInfo')
  4. drop table stuInfo
  5. go
  6. create table stuInfo
  7. (
  8. stuName varchar(20) not null primary key(stuName)
  9. ,stuID int not null unique(stuID)
  10. ,stuAddress varchar(20) not null default('地址不详')
  11. ,stuAge int not null check(stuAge between 15 and 40)
  12. )

最新文章

  1. Java之数组篇
  2. ASP.NET学习链接
  3. EF架构~豁出去了,为了IOC,为了扩展,改变以前的IRepository接口
  4. VRRP协议详解
  5. 我的c++学习(6)默认参数和内联函数
  6. JQuery_高级选择器
  7. BZOJ1821: [JSOI2010]Group 部落划分
  8. jQuery慢慢啃之文档处理(五)
  9. hdoj 2102 A计划
  10. java.util.Map.Entry接口
  11. 【Demo 0004】Java基础-类封装性
  12. for in 的各种坑
  13. linux动态链接库---一篇讲尽
  14. 要重定向 IO 流,Process 对象必须将 UseShellExecute 属性设置为 False。
  15. CSS3学习系列之背景相关样式(二)
  16. select 如何在选中后获取选中的时是什么元素 ,(原生js)
  17. Codeforces Round #523 (Div. 2) B Views Matter
  18. BETA准备
  19. hadoop 安装过程记录
  20. python 去除字符串末尾的子串

热门文章

  1. MD5加密的使用
  2. 【bzoj3297】[USACO2011 Open]forgot STL+dp
  3. python函数调用关系图(python call graph)
  4. 【题解】CF#403 D-Beautiful Pairs of Numbers
  5. SPOJ - PHRASES
  6. BZOJ2064:分裂——题解
  7. BZOJ1861:[ZJOI2006]书架——题解
  8. LUOGU 1440
  9. HDOJ(HDU).1016 Prime Ring Problem (DFS)
  10. Codeforces VK Cup Finals #424 Div.1 C. Bamboo Partition(数论)