SqlServer基础:约束
为了减少输入错误和保证数据库数据的完整性,可以对字段设置约束,例如考试成绩,其范围应该为0-100。约束是为了保证数据的完整性而实现的一套机制,约束包括:主键约束、外键约束、Unique约束、Check约束、默认值和允许空六种机制。
主键约束:这个不用多说了,设置主键就是保证列中的值的唯一不重复。
外键约束:外键的目的就是为了限制取值。
例如:分类表category(Nid-主键,categoryName),产品表Product(Nid,ProductName,CategoryId-外键),设置后Product表中的CategoryId的取值只能是category表中的Nid的值。

如上图,如果在Product表中插入一条:insert into Product values('绿茶',9),则报错:
INSERT 语句与 FOREIGN KEY 约束"FK_Product_Product"冲突。该冲突发生于数据库"Interview",表"dbo.Category", column 'Nid'。
语句已终止。
Unique约束:是指定该字段列里的数据不允许出现重复。例如在部门表里,部门名称是不能重复的,那么将部门表里的“部门名称”设置为Unique约束。
设置方法如下:在表设计器窗格里右击空白处,在弹出的快捷菜单中选择【索引与键】选项,点击【添加】就会在左边的框中添加一个名为IX_表名的选项,然后在右边的框中的【类型】选为唯一键,【列】设置为要约束的列,关闭,保存即可。
Unique约束与主键的区别:Unique约束可以输入Null值,主键不能;在一个表中可以定义多个Unique约束的字段,而主键字段只能有一个。
Check约束:Check约束可以用来限制字段里的值在某个允许的范围内。例如员工通讯录表中的生日,其输入范围应该是1940到1990之间。
设置Check约束的方法如下:展开表选项,在约束上右键新建约束,然后在表达式中添加逻辑关系,如:(Member>10) and (Member<20),关闭,保存!
默认值约束:默认值就不用解释了,就是当没有明确的去插入数据时,默认填充的值。
设置方法如下:打开表设计,选中列,在下面的列属性中有【默认值或绑定】,填写值即可;
允许空约束:就是在设计表时,每一个项最后的是否允许为空了啦
SqlServer基础:约束的更多相关文章
- Data Base sqlServer基础知识
sqlServer 基础知识 大纲 创建数据库 1 创建表 2 备份表 3 删除表 4 修改表 5 查询出重复的数据 6 增删改查 7 添加约束 8 分页存储过程 9 排序 10 类型转换 11 ...
- sqlServer基础知识
sqlServer 基础知识 大纲 创建数据库 1 创建表 2 备份表 3 删除表 4 修改表 5 查询出重复的数据 6 增删改查 7 添加约束 8 分页存储过程 9 排序 10 类型转换 11 ...
- SqlServer基础语法
历史 有很多软件公司开发了数据库产品,其中微软公司的数据库产品命名为 SQL Server,也称 MS SQL Server. 1989年 Ashton-Tate/Microsoft SQL Serv ...
- (2.10)Mysql之SQL基础——约束及主键重复处理
(2.10)Mysql之SQL基础——约束及主键重复处理 关键词:mysql约束,批量插入数据主键冲突 [1]查看索引: show index from table_name; [2]查看有约束的列: ...
- 数据库基础——(SQLserver)约束
数据库定义:一些存储在硬盘上的数据文件 内存:计算机临时存储的一些数据 .net - ...
- SqlServer基础之(触发器)
概念: 触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触 ...
- SqlServer基础复习
一.数据类型 包括整数类型(可以用来做主键)的如bit,int ,samllint,tinyint,bigint,存储的范围不同,常用的有int,bigint等:树脂类型decimal(p, ...
- (转)SqlServer基础之(触发器)(清晰易懂)
阅读目录 一:触发器的优点 二:触发器的作用 三:触发器的分类 四:触发器的工作原理 五:创建触发器 六:管理触发器 概念: 触发器(trigger)是SQL server 提供给程序员和数据分析 ...
- SqlServer基础语句练习(一)
学了不少东西,感觉自己的sql语句还是很不好,从基础学起吧. 来一段sql脚本: create database tongji go use tongji go create table studen ...
随机推荐
- js判断鼠标位置是否在某个div中
div的onmouseout事件让div消失时,会出现这样的情况,就是当鼠标移至div中的其它内容时,此时也判定为离开div,会触发 onmouseout事件,这样div中的内容就不能操作了.解决的办 ...
- 使用Objective-C的文档生成工具:appledoc
使用Objective-C的文档生成工具:appledoc 前言 做项目的人多了,就需要文档了.今天开始尝试写一些项目文档.但是就源代码来说,文档最好和源码在一起,这样更新起来更加方便和顺手.象 Ja ...
- iOS开发中常见的问题
1.重复调用2次loadView和viewDidLoad 最好不要在UIViewController的loadView方法中改变状态栏的可视性(比如状态栏由显示变为隐藏.或者由隐藏变为显示),因为 ...
- 1. while循环(当循环) 2. do{}while()循环 3. switch cose(多选一) 例子:当选循环下求百鸡百钱 用 switch cose人机剪刀石头布
1. while循环: 当选循环下求百鸡百钱:如下: 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN ...
- 短语密码(blowfish_secret)的设置
简单的说,phpmyadmin就是一种mysql的管理工具,安装该工具后,即可以通过web形式直接管理mysql数据,而不需要通过执行系统命令来管理,非常适合对数据库操作命令不熟悉的数据库管理者,下面 ...
- Linux /etc/passwd 和 /etc/group 文件格式
passwd: /etc/passwd 文件结构 2011-04-29 16:32:54| 分类: ubuntu技巧 | 标签:passwd linux ubuntu fadero centos./e ...
- [转]C#基础回顾:Asp.net 缓存
本文转自http://www.cnblogs.com/stg609/archive/2009/03/22/1418992.html 缓存的作用 你买电脑的时候,是否会在意CPU的二级缓存?是 ...
- CentOS源列表
vi /etc/yum.repos.d/CentOS-Base.repo CentOS 5: # CentOS-Base.repo # # The mirror system uses the con ...
- Yii2.0 URL美化
1. 程序初始化注册文件,加入如下: 'urlManager' =>[ 'class' => 'yii\web\UrlManager', 'showScriptName' =>fal ...
- x86_64编译JPEG遇到Invalid configuration `x86_64-unknown-linux-gnu'
把 /usr/share/libtool/config/config.guess 覆盖到相关软件自带的config.guess 把 /usr/share/libtool/config/config ...