约束:此部分内容在此做一简短介绍,详细内容会放入到数据库实践课中介绍
如何在现有表上增加主键
alter table 表名 add constraint 主键名 primary key(字段)
alter table testkey add constraint pk_id primary key(id)
如何删除主键:
alter table 表名 drop constraint 主键名
alter table testkey drop constraint pk_id

check 约束: 限定数据必须在指定的范围内,此范围以外不能存放到表中。
通过企业管理器和SQL两种方式来管理
企业管理器:略。。。
SQL 命令:
如何在新建表时创建一个CHECK约束:
create table testkey
(id int  not null,
name varchar(10),
sex char(2),
age int
constraint ck_sex check (age>=18 and age<=60)
)
drop table testkey;
如何在现有表上创建CHECK约束:
alter table 表名 add constraint 约束名 check (约束条件)
对testkey的性别作一个约束,只能是男或女
alter table testkey add constraint ck_性别 check (sex='男' or sex='女')
select * from testkey
insert into testkey values (2,'狗剩','中',30)
如何删除CHECK约束:
alter table 表名 drop constraint 约束名
alter table testkey drop constraint ck_sex
UNIQUE 约束: 限制某些字段值不允许出现重复,但为主键不同,一个表只能有一个主键,但可以有多个UNIQUE约束
企业管理器:略
SQL命令: 
如何在现有表上创建 UNIQUE 约束
alter table  表名 add constraint 约束名 unique (约束条件)
对yuangong表的姓名作一个UNIQUE  约束
alter table yuangong add constraint uk_name unique (姓名)
insert into yuangong (编号,姓名,性别) values ('0020','刘满','男')
如何在新建表时创建UNIQUE约束,参考CHECK约束.
如何删除UNIQUE约束
alter table 表名 drop constraint 约束名
alter table yuangong drop constraint uk_name

create table 员工表
(
员工编号 int not null identity constraint PK_编号 primary key,
姓名 nvarchar(10) not null,
性别 bit constraint DF_性别 default 1,
年龄 tinyint constraint CK_性别 check(年龄 between 15 and 40),
籍贯 nvarchar(15) constraint CK_籍贯 check(籍贯 in('北京','南京','东京','西京')),
联系电话 varchar(20) constraint CK__联系电话 check(联系电话 like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' or 联系电话 like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]' or 联系电话 like '0[0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' or 联系电话 like '0[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9]' or 联系电话 like '0[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
省份 nvarchar(2),
通讯地址 nvarchar(20),
工作日期 datetime  constraint df_工作日期 default getdate()
)
规则:作用和CHECK约束相同:用于限制数据的合法性.
约束必须依赖于表的某一列才能创建.但是规则不用,规则作为一个对象单独存在.但是必须要绑定到列上
才能起作用.而且可以同时绑定到多个表的多个列上.

创建一个规则:
企业管理器:

SQL命令:
创建规则:
create rule 规则名
as 
  语句
如:限制年龄只能在18--60
create rule age
as
  @age between  18 and 60  
实现绑定:
sp_bindrule '规则名','表名.列名'
如:
sp_bindrule 'age','yuangong.年龄'
测试:插入一条记录年龄为70,则不成功
解除绑定:
sp_unbindrule '表名.列名'
如:
sp_unbindrule 'yuangong.年龄'
删除规定:
drop rule 规则名
如:  drop rule age
默认值: 某字段最有可能出现的情况,如果没有手动指定值,则系统自动填入默认值.
企业管理器创建,绑定,解除绑定,删除默认值
利用SQL命令来管理默认值:
创建:  create default 默认值名
       as
         值
create default bumen
as
'技术部'
绑定:
sp_bindefault '默认值名','表名.列名'
如:
sp_bindefault 'bumen','yuangong.部门'
测试:...
解除绑定:
sp_unbindefault '表名.列名'
如:
sp_unbindefault 'yuangong.部门'
删除默认值:
drop default 默认值名
如:
drop default bumen
本文转自 dufei 51CTO博客,原文链接:http://blog.51cto.com/dufei/80761,如需转载请自行联系原作者

SQL Server 2005系列教学(11) 约束相关推荐

  1. SQL Server 2005系列教学(11) 约束

    约束:此部分内容在此做一简短介绍,详细内容会放入到数据库实践课中介绍 如何在现有表上增加主键 alter table 表名 add constraint 主键名 primary key(字段) alt ...

  2. SQL Server 2005系列教学(2) SQL 服务及创建数据库

    SQL SERVER 2005的服务介绍: 核心服务 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office ...

  3. SQL Server 2005系列教学(14) 用户管理

    用户管理: 哪些用户可以使用: 一种是WINDWOS 一种是SQL SERVER用户 身份验证方式:     windows验证:  安全,但不灵活     混合验证(WINDOWS SQL SERV ...

  4. SQL Server 2005系列教学_用户管理

    用户管理: 哪些用户可以使用: 一种是WINDWOS 一种是SQL SERVER用户 身份验证方式:     windows验证:  安全,但不灵活     混合验证(WINDOWS SQL SERV ...

  5. SQL Server 2005系列教学(1) SQL SERVER2005介绍及安装

    重点在于SQL Server 2005各个版本的安装及测试! 大纲如下: 信息与数据的区别 信息:是现实世界事物的存在方式或运动状态的反映. 数据:数据是信息的载体和具体表现形式,是信息的表现形式. ...

  6. SQL Server 2005系列教学(9) SQL 存储过程

    声明变量,SQL规定变量在使用之前先声明,以便以后的程序中用到 格式:   declare 变量名 变量类型[,变量名 变量类型--] 一次可声明多个变量,它们之间用,分隔.用户变量以一个@开头,全局 ...

  7. SQL Server 2005系列教学(6) 多表操作及子查询

    多表查询:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 人事 ...

  8. SQL Server 2005系列教学(13) 游标

    定义一个标准游标: declare mycursor cursor for select * from yuangong  定义一个只读游标: declare mycursor cursor for ...

  9. [学习SQL SERVER 2005系列]图解SQL SERVER2005的安装

    [学习SQL SERVER 2005系列]图解SQL SERVER2005的安装 前言: [学习SQL SERVER 2005系列]准备把学习2005的一些心得整理出来,和大家分享,共同学习一起提高. ...

最新文章

  1. 报错解决方法1:‘A GDAL API version must be specified.’
  2. Go线程安全:我们不用考虑同步的问题 不用考虑数据污染的情况
  3. Mybatis select元素返回List
  4. java排序算法原理_排序算法原理与实现(java)
  5. 信息学奥赛一本通 1924:【03NOIP普及组】栈 | 洛谷 P1044 [NOIP2003 普及组] 栈
  6. 前端跨域请求get_解决前端跨域问题方案汇总
  7. 二级c语言考试改卷标准,计算机二级C语言笔试试卷
  8. 20140711 set
  9. oracle中的游标的原理和使用详解
  10. Springboot+CAS下Session过期无效,页面请求302问题解决
  11. 常见端口号服务用途及查看端口
  12. 蓝桥杯试题及答案分享(Python版)
  13. 携程2017 校招编程题
  14. QT visual assist x不能稳定工作
  15. 第一个RSF自动化测试用例-启动打开百度页面,搜索【月饼】关键字,关闭浏览器...
  16. 快速阶乘算法python_python实现N阶乘的算法
  17. 利用canvas开发一个绘图板
  18. mysql中phpmyadmin安装教程_怎么安装phpMyAdmin?
  19. 小学生护眼灯怎么选?护眼学生用台灯品牌排行
  20. Jenkins Pipeline中的自定义环境变量

热门文章

  1. C++在linux环境下获取毫秒、微妙级别时间
  2. 百度登陆协议分析!!!用libcurl来模拟百度登陆
  3. U盘格式化后数据能恢复吗?U盘格式化怎么恢复数据
  4. Nanopore牛津纳米孔测16S学习笔记
  5. linux 进程调度cfg,选择Linux I / O调度程序
  6. China's Appetite for Nickel Drives a Symbiotic Alliance
  7. Log slf4j+logback配置
  8. 上岸美团,我为何放弃算法转开发
  9. 解决小程序自定义底部菜单切换闪动
  10. matlab极性电容叫什么,有极性电容和无极性电容原理区别