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

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约束的更多相关文章

  1. Sql Server约束的学习二(检查约束、默认约束、禁用约束)

    接上一篇的Sql Server约束学习一(主键约束.外键约束.唯一约束) 4.检查约束 1)检查约束的定义 检查约束可以和一个列关联,也可以和一个表关联,因为它们可以检查一个列的值相对于另一个列的值, ...

  2. Sql Server约束的学习一(主键约束、外键约束、唯一约束)

    一.约束的分类 1.实体约束 实体约束是关于行的,比如某一行出现的值不允许出现在其他行,例如主键约束. 2.域约束 域约束是关于列的,对于所有行,某一列有那些约束,例如检查约束. 3.参照完整性约束 ...

  3. Sql Server——约束

    约束是什么: 每个人都在网站或者APP上注册过账号,在注册账号时会限制用户名.密码等格式,如果格式不对就不能注册.在数据库中我们可以通过约束来进行限制,超过约束范围的数据就不能写入. 约束的种类: 主 ...

  4. SQL Server - 约束 CONSTRAINT

    总结 约束放置在表中,以下五种约束: NOT NULL 非空约束C 指定的列不允许为空值 UNIQUE 唯一约束U 指定的列中没有重复值,或该表中每一个值或者每一组值都将是唯一的 PRIMARY KE ...

  5. Ms SQL Server 约束和规则

    一.SQL约束 约束定义关于列中允许值的规则,是强制完整性的标准机制. 使用约束优先于使用触发器.规则和默认值.查询优化器也使用约束定义生成高性能的查询执行计划. 1:类型 约束的类型一共分三种 域约 ...

  6. sql server 约束 查找

    --1.主键约束 SELECT tab.name AS [表名], idx.name AS [主键名称], col.name AS [主键列名] FROM sys.indexes idx JOIN s ...

  7. SQL Server 约束的增删改

    1. 非空约束 列的为空性决定表中的行是否可以包含空值.空置(NULL)不同于零(0)/空白或者长度为零的字符串(“”). (1)创建非空约束 create table orders ( docent ...

  8. 温习SQL server

    做了好几年的管理工作,技术上有些退步,现在又一一捡起来啦, 以下最近几天看到的好文章, SQL Server约束 http://blog.csdn.net/qq61394323/article/det ...

  9. Sql Server总结

     主键 主键就是数据行的唯一标识.不会重复的列,才能当主键.一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都要设定主键.主键有两种选用策略:业务主键和逻辑主键. 业务主键是使用有业务意义的 ...

随机推荐

  1. FireDAC内部初探

    procedure TForm1.Button1Click(Sender: TObject); var FCommIntf: IFDPhysCommand; //FireDAC.Phys.Intf F ...

  2. mysql5.7 主从同步

    一:进行bin-log日志配置 1设置bin-log日志 [mysqld] log-bin=//路径  #<===红色的加粗的省去 server-id = 1    #主库 2.检查配置登录数据 ...

  3. XBOX360

    [汇总+分享]XBOX360多人游戏汇总贴https://tieba.baidu.com/p/3550398060?pn=13&red_tag=3423139816&traceid= ...

  4. sql Find_IN_SET 用法

    字段以 1,2,3,4 格式存储的SELECT * from test where FIND_IN_SET('15',btype) GROUP_CONCAT + group_by

  5. Hadoop 管理工具HUE配置-filebrowser配置

    Hue提供了图形化截面管理HDFS数据,可谓之非常方便,但是在配置上,还是有点麻烦的. 1 /home/hadoop/software/cloud/hue/desktop/conf/pseudo-di ...

  6. Wireshark抓包工具--TCP数据包seq ack等解读

    1.Wireshark的数据包详情窗口,如果是用中括号[]括起来的,表示注释,在数据包中不占字节 2.在二进制窗口中,如“DD 3D”,表示两个字节,一个字节8位 3.TCP数据包中,seq表示这个包 ...

  7. Maven编译错误记录:Some Enforcer rules have failed

    一.错误信息 添加httpclient与httpcore依赖后编译Maven报错. 错误信息如下: Failed to execute goal org.apache.maven.plugins:ma ...

  8. react事件中的事件对象和常见事件

    不管是在原生的js还是vue中,所有的事件都有其事件对象,该事件对象event中包含着所有与事件相关的信息,在react中,所有的事件也有其事件对象,在触发DOM上的某个事件时,就会产生一个事件对象. ...

  9. Zipkin和Brave实现http服务调用的跟踪

    使用Zipkin和Brave实现http服务调用的跟踪,Brave 是用来装备Java程序的类库,提供了面向标准Servlet.Spring MVC.Http Client.JAX RS.Jersey ...

  10. mybatisz中一个可以替代between..and 的技巧

    用mybatis进行时间段筛选时,如果,查询本日,本月的信息量,我们可以使用like concat()函数来替换between..and <select id="queryMyStaf ...