【转】使用SQL语句创建和删除约束
2024-08-29 19:43:05
转自http://blog.csdn.net/hamber_bao/article/details/6504905
约束的目的就是确保表中的数据的完整性。
常用的约束类型如下:
主键约束:(Primary Key constraint) 要求主键列唯一,并且不允许为空
唯一约束:(Unique Constraint) 要求该列唯一,允许为空,但只能出现一个空值
检查约束:(Check Constraint) 某列取值范围限制、格式限制等。如有关年龄的限制
默认约束:(Default Constraint) 某列的默认值,如我们的男性学员比较多,性别默认为男
外键约束:(Foreign Key Constraint) 用于在两表之间建立关系,需要指定引用主表的哪一列
一、添加约束
在创建表时,我们可以在字段后添加各种约束,但一般不这样混用,推荐将添加约束和建表的语句分开编写。
添加约束的语法如下:
- Alter Table 表名
- Add Constraint 约束名 约束类型 具体的约束类型
上述语法标识修改某个表,添加某个约束,其中约束名的命名规则推荐采用"约束类型_约束字段"这样的形式。
- ---添加主键约束
- Alter Table stuInfo
- Add Constraint PK_stuNO primary Key(stuNo)
- ---添加唯一约束
- Alter Table stuInfo
- Add Constraint UQ_stuID unique(stuID)
- ---添加默认约束
- Alter Table stuInfo
- Add Constraint DF_stuAddress default('地址不详') for stuAddress
- ---添加检查约束
- Alter Table stuInfo
- Add Constraint CK_stuAge check(stuAge between 15 and 40)
- ---添加外键约束
- Alter Table stuMarks
- Add Constraint FK_stuNo foreign key(stuNo) references stuInfo(stuNo)
二、删除约束
如果错误的添加了约束,则可以删除约束
删除约束的语法如下:
- Alter Table 表名
- Drop Constraint 约束名
附加:在创建表的时候同时添加约束的写法:
- use stuDB
- go
- if exists(select * from Sysobjects where name = 'stuInfo')
- drop table stuInfo
- go
- create table stuInfo
- (
- stuName varchar(20) not null primary key(stuName)
- ,stuID int not null unique(stuID)
- ,stuAddress varchar(20) not null default('地址不详')
- ,stuAge int not null check(stuAge between 15 and 40)
- )
最新文章
- Java之数组篇
- ASP.NET学习链接
- EF架构~豁出去了,为了IOC,为了扩展,改变以前的IRepository接口
- VRRP协议详解
- 我的c++学习(6)默认参数和内联函数
- JQuery_高级选择器
- BZOJ1821: [JSOI2010]Group 部落划分
- jQuery慢慢啃之文档处理(五)
- hdoj 2102 A计划
- java.util.Map.Entry接口
- 【Demo 0004】Java基础-类封装性
- for in 的各种坑
- linux动态链接库---一篇讲尽
- 要重定向 IO 流,Process 对象必须将 UseShellExecute 属性设置为 False。
- CSS3学习系列之背景相关样式(二)
- select 如何在选中后获取选中的时是什么元素 ,(原生js)
- Codeforces Round #523 (Div. 2) B Views Matter
- BETA准备
- hadoop 安装过程记录
- python 去除字符串末尾的子串
热门文章
- MD5加密的使用
- 【bzoj3297】[USACO2011 Open]forgot STL+dp
- python函数调用关系图(python call graph)
- 【题解】CF#403 D-Beautiful Pairs of Numbers
- SPOJ - PHRASES
- BZOJ2064:分裂——题解
- BZOJ1861:[ZJOI2006]书架——题解
- LUOGU 1440
- HDOJ(HDU).1016 Prime Ring Problem (DFS)
- Codeforces VK Cup Finals #424 Div.1 C. Bamboo Partition(数论)