SQL server约束
约束的概念:确保在列中输入有效的值并维护表之间的关系。

Primary key约束
功能:primary key(主键约束),一个表中只能有一个,不能有空值,不能有重复值.
创建表时定义约束:字段名 数据类型[长度] primary key
Unique约束
功能:unique(唯一约束), 指定在同一列中的两行不能有相同的值,只能有一行为空值。
创建表时定义约束:字段名 数据类型 unique
Default约束
功能:执行insert语句时将默认值自动插入约束所在的列
创建表时定义约束:字段名 数据类型 default 默认值
Default 约束注意事项
1、每列只能定义一个default约束。
2、不能用于有identity属性的列
3、如果定义的默认值长于其对应字段的允许长度,那么输入到表中的默认值将被截断。
4、有default约束的字段,可插入其他的值,若不插入, 则以默认值为纪录值,且后面创建的默认约束对已
经存在的数据没有影响.
Check约束
功能:check(检查约束),每次执行Insert/update语句时,该约束要校验数据的合法性。
创建表时定义约束:字段名 数据类型 check(条件)
Check约束注意事项
1、一个表中可以定义多个检查约束,但每个字段只 能定义一个检查约束。
2、当执行insert语句或者update语句时,检查约束 将验证数据。
3 、如果对已经有数据的表添加约束,可以用with nocheck避免对以前的数据做检查.
Foreign key 约束
功能:确保主关键字(主表中)和外关键字(辅表中)的关系。
创建表时定义约束:字段名 数据类型 foreign key(字段名) references 表名(字段名)
注意:foreign Key子句中指定的列数和数据类型必须和在references子句中的列数和数据类型匹配。且关联
的表的字段必须设置为主键.
修改约束
修改表时添加约束
alter table 表名
add constraint 约束名 primary key(字段名) –-主键
add constraint 约束名 unique (字段名) --唯一
add constraint 约束名 default(默认值) for 字段名 –默认
add constraint 约束名 check(条件) –检查
add constraint 约束名 foreign key(字段名) references 主键表(参照字段名) --外键
删除约束
语法:
alter table 表名 drop 约束名
【例】 删除 xs表的pk_xs约束。
alter table xs drop constraint pk_xs
注意:
1.要删除被约束的列,必须先删除约束
2.存在外键约束时,要删除主健,必须先删除对应的外键
SQL server约束的更多相关文章
- Sql Server约束的学习二(检查约束、默认约束、禁用约束)
接上一篇的Sql Server约束学习一(主键约束.外键约束.唯一约束) 4.检查约束 1)检查约束的定义 检查约束可以和一个列关联,也可以和一个表关联,因为它们可以检查一个列的值相对于另一个列的值, ...
- Sql Server约束的学习一(主键约束、外键约束、唯一约束)
一.约束的分类 1.实体约束 实体约束是关于行的,比如某一行出现的值不允许出现在其他行,例如主键约束. 2.域约束 域约束是关于列的,对于所有行,某一列有那些约束,例如检查约束. 3.参照完整性约束 ...
- Sql Server——约束
约束是什么: 每个人都在网站或者APP上注册过账号,在注册账号时会限制用户名.密码等格式,如果格式不对就不能注册.在数据库中我们可以通过约束来进行限制,超过约束范围的数据就不能写入. 约束的种类: 主 ...
- SQL Server - 约束 CONSTRAINT
总结 约束放置在表中,以下五种约束: NOT NULL 非空约束C 指定的列不允许为空值 UNIQUE 唯一约束U 指定的列中没有重复值,或该表中每一个值或者每一组值都将是唯一的 PRIMARY KE ...
- Ms SQL Server 约束和规则
一.SQL约束 约束定义关于列中允许值的规则,是强制完整性的标准机制. 使用约束优先于使用触发器.规则和默认值.查询优化器也使用约束定义生成高性能的查询执行计划. 1:类型 约束的类型一共分三种 域约 ...
- sql server 约束 查找
--1.主键约束 SELECT tab.name AS [表名], idx.name AS [主键名称], col.name AS [主键列名] FROM sys.indexes idx JOIN s ...
- SQL Server 约束的增删改
1. 非空约束 列的为空性决定表中的行是否可以包含空值.空置(NULL)不同于零(0)/空白或者长度为零的字符串(“”). (1)创建非空约束 create table orders ( docent ...
- 温习SQL server
做了好几年的管理工作,技术上有些退步,现在又一一捡起来啦, 以下最近几天看到的好文章, SQL Server约束 http://blog.csdn.net/qq61394323/article/det ...
- Sql Server总结
主键 主键就是数据行的唯一标识.不会重复的列,才能当主键.一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都要设定主键.主键有两种选用策略:业务主键和逻辑主键. 业务主键是使用有业务意义的 ...
随机推荐
- xshell 5中文破解版下载
xshell 5破解版是一款功能强大的终端模拟软件,支持Telnet.Rlogin.SSH.SFTP.Serial等远程协议,让用户能通过互联网直接连接远程主机.用户通过xshell 5破解版能轻松和 ...
- typedef定义数组类型
typedef语句定义数组类型 1. 一维数组类型的定义格式 typedef <元素类型关键字><数组类型名>[<常量表达式>]; 例如: (1) typedef ...
- piwik高负载加速之切换session存储位置
默认情况下,piwik的session是存储于根目录下面的tmp/sessions/路径下面的.而官方文档里面说,如果由于本地硬盘的原因,这种设置可能会导致系统被变慢,这在高负载系统应用中可能是不可以 ...
- SDRAM的初始化与刷新操作---看时序图写代码
SDRAM的初始化与刷新操作---看时序图写代码 1.SDRAM的常见操作 2.初始化就是配置SDRAM 3.SDRAM初始化时序 时序解释如下: 4.刷新操作
- sqlalchemy操作----外键关联,relationship
... #!_*_coding:utf-8_*_ #__author__:"Alex huang" import sqlalchemy from sqlalchemy import ...
- TCP/UDP端口列表(WIKIpedia)
计算机之间依照互联网传输层TCP/IP协议不同的协议通信,都有不同的对应端口.所以,利用短信(datagram)的UDP,所采用的端口号码不一定和采用TCP的端口号码一样.以下为两种通信协议的端口列表 ...
- 在Win32程序中显示Dos调试窗口
在很多程序中,都可以看到程序运行中,会有一个Dos窗口,实时显示一些运行信息,这里就告诉大家是如何实现的,我们做个简单的,其实对控制台的操作还有很多,有兴趣的可以去查资料. 用到的API函数如下: / ...
- Delphi实现树型结构
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- Windows XP Professional产品序列号
BX6HT-MDJKW-H2J4X-BX67W-TVVFG产品密钥:FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8产品密钥:CCC64-69Q48-Y3KWW-8V9GV-TVKRM Wi ...
- 【git】之使用eclipse-git插件查看本地文件和远程文件区别
选中文件右键 Team->Show Local History 在历史中右键 Compare Current with Local