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中定义类的方法
JS中定义类的方式有很多种: 1.工厂方式 function Car(){ var ocar = new Object; ocar.color = "blue" ...
- 命令行编译运行Java
首先要安装JDK,然后设置环境变量Path,添加C:\Program Files (x86)\Java\jdk1.8.0_66\bin 然后建立一个名为j.java的文件,里面加入如下代码: publ ...
- MySQL 服务器的加快运行速度有哪些方法?
关于 MySQL 调优 有 3 种方法可以加快 MySQL 服务器的运行速度,效率从低到高依次为: 替换有问题的硬件.对 MySQL 进程的设置进行调优. 对查询进行优化. 替换有问题的硬件通常是我们 ...
- Ubuntu彻底删除MySQL重装MySQL
1.删除 mysql sudo apt-get autoremove --purge mysql-server-5.0 sudo apt-get remove mysq ...
- nodejs:grunt使用合并压缩的基本使用
一.模块化历史 1,nodejs出现:主要解决后端js规范 2,commonjs:这个组织出来一些服务器规范 3,后端规范commonjs应用升级到前端commonjs2:cmd规范(seajs)和完 ...
- Eclipse报错:java.lang.ClassNotFoundException: ContextLoaderListener
Eclipse中tomcat部署工程启动后报错: 严重: Error configuring application listener of class org.springframework.web ...
- spring aop中的propagation的7种配置的意思
1.前言. 在声明式的事务处理中,要配置一个切面,即一组方法,如 <tx:advice id="txAdvice" transaction-manager="txM ...
- xampp默认mysql密码设置,修改mysql的默认空密码
xampp默认mysql密码设置,修改mysql的默认空密码 分类: xampp2012-09-12 11:24 30264人阅读 评论(5) 收藏 举报 mysqlphpmyadminauthent ...
- razor 添加html5属性
在 HTML5 中, 可以使用 data- 属性来表示用户数据,这些数据甚至可以是 JSON 格式的数据,对 Web 前端开发带来很大的方便. 在 MVC 的 Razor 中,可以使用匿名对象来生成定 ...
- 21335592 ROWS
CREATE TABLE w_big SELECT * FROM ( SEELCT * FROM w_tab UNION ALL SELECT * FROM w_tab_copy_modify ) ...