Sql Server——约束
约束是什么:
每个人都在网站或者APP上注册过账号,在注册账号时会限制用户名、密码等格式,如果格式不对就不能注册。在数据库中我们可以通过约束来进行限制,超过约束范围的数据就不能写入。
约束的种类:
主键约束:主键列的值不能为空,并且不能重复(主键约束是特殊的唯一约束),有主键约束的列可以被其他表引用,一个表中只能有一个主键约束。
唯一约束:有唯一约束的列中的数据不能重复,但可以为空值(NULL)。
检查约束:限制某个列中的数据的取值范围。
默认约束:设置默认约束后的列,在不输入数据的情况下,数据库会自动显示我们设置的默认值。
外键约束:外键约束和主键约束是搭配使用的,外键约束列中的数据范围是在引用的主键列之中的,不得超出主键列的范围(也就是外键列中的数据只能是主键列中存在的值),外键列的数据类型要和主键列的一样。
如何创建约束:
主键约束:鼠标右键点击要创建主键约束的列名,再点击设置主键就可以了。
唯一约束:和上面一样,鼠标右键点击需要创建唯一约束的列
然后点击索引/键,把类型后面的索引改成唯一件就可以了。
检查约束:同上,点击CHECK(检查)约束
先添加,再点击表达式后面的文本框就可以创建主键约束了。
默认约束:在设计表的下面,就有默认值的设置框,在后面的文本框添加默认值就可以了。
外键约束:
(1)右击要创建约束的表,在弹出的快捷菜单中选择“设计”命令;
(2)右击该表中的某一列,在弹出的快捷菜单中选择“关系”命令,弹出“外键关系”对话框,单击“添加”按钮,添加要选中的关系;
(3)在“外键关系”对话框中,单击“表和列规范”文本框中的“...”按钮,选择要创建外键约束的主键表和外键表;
(4)在“表和列”对话框中,设置关系的名称,然后选择外键要参照的主键表及使用的字段。最后单击“确定”按钮,返回“外键关系”对话框中。
常用约束示例:
主键约束:一般情况下,一张表中的第一列(编号列)会被设置为主键列,因为Sql Server中只允许一张表描述一件事情,所以我们在其他表用外键引用该表的内容时就只需引用该表的主键列的序号就可以了。
检查约束:在我的作业中,最多的就是约束性别只能输入男或女,代码为:sex='男' or sex='女'(此处定义性别列名为sex,注意:字符一样要用单引号引起来,数据库里的逻辑是or and not ,并不是程序里的|| && !)。还有就是约束数据长度,如电话号码,身份证号码(这两个还要唯一),约束长度就要用到函数len()了,代码为: 电话号码:len(tel)=11 身份证号码:len(ID)=18,括号里的就是列名。
默认约束:设置默认约束只需在默认值后面的框中输入默认值就可以了。但要把一个时间设置为默认时间(就是当前时间)就得用函数,即在框中输入:getdate() 即可。
主键约束:在创建主键约束时需要注意的就是,(1)不能把要引用的对象表搞错,(2)主键和外键要对应,(3)主键和外键的数据类型必须一致。
想了解更多加我QQ吧!1289747698.等你哟!
Sql Server——约束的更多相关文章
- Sql Server约束的学习二(检查约束、默认约束、禁用约束)
接上一篇的Sql Server约束学习一(主键约束.外键约束.唯一约束) 4.检查约束 1)检查约束的定义 检查约束可以和一个列关联,也可以和一个表关联,因为它们可以检查一个列的值相对于另一个列的值, ...
- Sql Server约束的学习一(主键约束、外键约束、唯一约束)
一.约束的分类 1.实体约束 实体约束是关于行的,比如某一行出现的值不允许出现在其他行,例如主键约束. 2.域约束 域约束是关于列的,对于所有行,某一列有那些约束,例如检查约束. 3.参照完整性约束 ...
- SQL Server - 约束 CONSTRAINT
总结 约束放置在表中,以下五种约束: NOT NULL 非空约束C 指定的列不允许为空值 UNIQUE 唯一约束U 指定的列中没有重复值,或该表中每一个值或者每一组值都将是唯一的 PRIMARY KE ...
- Ms SQL Server 约束和规则
一.SQL约束 约束定义关于列中允许值的规则,是强制完整性的标准机制. 使用约束优先于使用触发器.规则和默认值.查询优化器也使用约束定义生成高性能的查询执行计划. 1:类型 约束的类型一共分三种 域约 ...
- SQL server约束
约束的概念:确保在列中输入有效的值并维护表之间的关系. Primary key约束 功能:primary key(主键约束),一个表中只能有一个,不能有空值,不能有重复值. 创建表时定义约束:字段名 ...
- 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总结
主键 主键就是数据行的唯一标识.不会重复的列,才能当主键.一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都要设定主键.主键有两种选用策略:业务主键和逻辑主键. 业务主键是使用有业务意义的 ...
随机推荐
- 【WebGL】《WebGL编程指南》读书笔记——第3章
一.前言 根据前面一章的内容,继续第三章的学习. 二.正文 一起绘制三个点,这里要使用到缓存了 var n = initVertexBuffers(gl); //返回绘制点的个数 n ) ...
- 优化css选择器
1.css选择器效率排行从高到低如下: id选择器(#head) 类选择器(.content) 标签选择器(p,h1) 相邻选择器(h1+p) 子选择器(ul < li)
- 如何减轻ajax定时触发对服务器造成的压力和带宽的压力?ajax-长轮训
AJAX长轮询的方法来解决频繁对后台的请求,进一步减小压力 在实现过程发现AJAX的多次请求会出现多线程并发的问题又使用线程同步来解决该问题 个人对ajax长轮询的一点愚见 ajax请示后台时,后台程 ...
- 联想笔记本电脑 Z500除尘过程
首先说明联想z500真的是特别难拆,主要是C面的键盘如果没有垫片的话很难拆下,建议准备好垫片再进行. 第一步 首先拆掉背面的五个螺丝钉,然后打开四个垫子注意方向,把隐藏的另外四个螺丝拆掉. 第二步 把 ...
- python pandas stack和unstack函数
在用pandas进行数据重排时,经常用到stack和unstack两个函数.stack的意思是堆叠,堆积,unstack即"不要堆叠",我对两个函数是这样理解和区分的. 常见的数据 ...
- 安卓电量优化之AlarmManager使用全部解析
版权声明:本文出自汪磊的博客,转载请务必注明出处. 一.AlarmManager概述 AlarmManager是安卓系统中一种系统级别的提示服务,可以在我们设定时间或者周期性的执行一个intent,这 ...
- jmeter测试
时间过得飞快,转眼间就到了公司半个月了,这是第三周上班,从上班到现在感觉自己什么都没有做,只是写了一些前台的验证,况且我的前台并不是很熟,js学了很久也快忘记了,看了看插件也不咋会用,但是自己也写了点 ...
- 【Splay】bzoj1500(听说此题多码上几遍就能不惧任何平衡树题)
1500: [NOI2005]维修数列 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 15112 Solved: 4996[Submit][Statu ...
- [原创]Nginx反向代理及负载均衡
1.基本命令 # 启动nginx start nginx.exe # windowsnginx -c /usr/local/nginx/conf/nginx.conf # Linux# 优雅的停止ng ...
- CubeMX使用及感受
简介 CubeMX这几年刚流行起来,是一个STM32代码的初始化配置工具,里面封装了硬件层.中间层,以及示例代码. cube使用 该软件的安装需要较高版本jdk支持,固件库安装时需要注意和主程序的版本 ...