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总结
主键 主键就是数据行的唯一标识.不会重复的列,才能当主键.一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都要设定主键.主键有两种选用策略:业务主键和逻辑主键. 业务主键是使用有业务意义的 ...
随机推荐
- Swift学习第二天--面向对象
//: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...
- template package (godoc 翻译)
template 包 概述(Overview) template 包实现了数据驱动模板用于生成文本输出. 要生成HTML输出,请参阅html/template包,它具有与此包相同的接口,但会自动保护H ...
- Linux命令每日一个
2014-3-31 1:39 (1)tree linux以树状的结构显示当前目录及其包含的子目录下的文件 #apt-get install tree #tree //在当前目录下直接使用该命令即可 ...
- iOS中的armv7,armv7s,arm64,i386,x86_64
前言 一般iOS中的armv7.armv7s.arm64.i386.x86_64这些都代表了什么?在Xcode中如何选择? 介绍 armv7.armv7s.arm64都是ARM处理器的指令集. i38 ...
- zabbix web监控模板
问题关键:宏变量 {HOST.NAME} 配置 我直接在 Linux OS这个模板中添加的,都随意: 效果 加个报警 以上.
- Java框架之Mybatis(一)
一.Mybatis 简介 Mybatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改 ...
- 【扩展欧几里得】NOIP2012同余方程
题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输出只有一行,包含一个正 ...
- 【Manacher算法】求最长回文串的优秀算法
先贴一下代码~ //by 减维 #include<cstdio> #include<iostream> #include<cstring> #include< ...
- windows 安全模型简介
操作系统中有些资源是不能由用户代码直接访问的,比如线程进程,文件等等,这些资源必须由系统级代码由RING3层进入到RING0层操作,并且返回一些标识供用户程序使用,一般调用某个函数陷入到内核,这样的函 ...
- hive问题: For direct MetaStore DB connections, we don't support retries at the client level
已经配置好hive,mysql作为元数据的数据库.在hive中执行drop语句出错: drop table mytest; 错误提示如下: FAILED: SemanticException Unab ...