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总结
主键 主键就是数据行的唯一标识.不会重复的列,才能当主键.一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都要设定主键.主键有两种选用策略:业务主键和逻辑主键. 业务主键是使用有业务意义的 ...
随机推荐
- 视频流GPU解码在ffempg的实现(二)-GPU解码器
1.gpu解码器的基本调用流程 要做视频流解码,必须要了解cuda自身的解码流,因为二者是一样的底层实现,不一样的上层调用 那cuda的解码流程是如何的呢 在https://developer.nvi ...
- PHP进阶,使用交互模式进行快速测试实验?
额,那啥,PHP很强,大家都知道哈.不过呢,在搞PHP里的人中,自然也要分高下的.当然了,我更喜欢用好玩来形容了. 什么叫做快速开发?我觉得,快就得快到随手写几个字,就能让代码跑起来!那么,PHP能做 ...
- jQuery 属性(十二)
属性 描述 context 在版本 1.10 中被弃用.包含传递给 jQuery() 的原始上下文. jquery 包含 jQuery 版本号. jQuery.fx.interval 改变以毫秒计的动 ...
- dubbo源码—service reference
service reference 在编写好服务之后,dubbo会将服务export出去,这个时候就可以编写consumer来调用这个服务了.dubbo作为一个rpc框架,使用者使用远程服务和使用本地 ...
- SpringCloud学习笔记(6)——Eureka高可用
参考Spring Cloud官方文档第12章12.3.12.5.12.6小节 12.3 High Availability, Zones and Regions 默认情况下,每一个Eureka服务器同 ...
- docker:(4)利用WebHook实现持续集成
研发小伙伴可能对下列操作步骤会深有体会 写代码-->提交代码-->打包-->发布 在项目调试测试阶段,可能经常需要重复上面的步骤,以便将最新代码部署到特定环境供测试人员或其他人员使用 ...
- python 打印几行空行、 打印不换行
2.x版本中使用print '\n' * n #n为行数 3.x版本中使用print('\n' * n) #n为行数 print 'Hello', :不会换行.[加上逗号(,)]
- 【KMP模板】简单写个KMP~
本来easy的KMP 却一直过不了洛谷的模板题... 仔细一看原来在输出next数组时打的回车而不是空格... 身败名裂... 话说有个sunday貌似一般状况下比KMP快呢...去看看2333 #i ...
- select模型
在Windows中所有的socket函数都是阻塞类型的,也就是说只有网络中有特定的事件发生时才会返回,在没有发生事件时会一直等待,虽说我们将它们设置为非阻塞状态,但是在对于服务器段而言,肯定会一直等待 ...
- Qt 之 qwt 和 qwtpolar
1 Qwt Qwt 全称为 Qt Widgets for Technical Applications,用于专业技术领域的可视化显示,如下所示: 左图为自动控制领域,二阶系统的频率响应:中图为德国小 ...