约束-保证数据完整性
先用设计器创建约束,再用代码创建约束。
数据库约束是为了保证数据的完整性(正确性)而实现的一套机制
非空约束 (选择复选框)not null
主键约束(PK)primary key constraint唯一且不为空(选中列,右键,设为主键)
唯一约束(UQ)unique constraint唯一,允许为空,但只能出现一次(右键,索引/键,添加)
默认约束(DF)default constraint 默人值(选中列,设置列的默认绑定值)
检查约束(CK)check constraint 范围以及格式限制(右键check约束,添加)
外键约束(FK)foreign key constraint表关系(在外键表,右键,关系,增加一个主外键关系)
增加外键约束时,设置级联更新、级联删除:

on delete cascade
on update cascade

--通过t-sql语句来创建约束

--新建一张表:员工信息表

create table Employees

(

EmpId int identity(1,1),

EmpName varchar(50),

EmpGender char(2),

EmpAge int,

EmpEmail varchar(100),

EmpAddress varchar(500)

)

create table Department

(

DepId int identity(1,1) ,

DepName varchar(50)

)

--=====手动增加约束==========

--手动删除一列(删除EmpAddress列)

alter table Employees drop column EmpAddress

--手动增加一列(增加一列EmpAddr varchar(1000))

alter table Employees add EmpAddr nvarchar(1000)

--手动修改一下EmpEmail的数据类型(varchar(200))

alter table Employees alter column EmpEmail varchar(200)

--为EmpId增加一个主键约束

alter table Employees add constraint PK_Employees_EmpId primary key(EmpId)

--非空约束,为EmpName增加一个非空约束 not null(修改列)

alter table Employees alter column EmpName varchar(50) not null

--为EmpName增加一个唯一约束

alter table Employees add constraint UQ_Employees_EmpName unique(EmpName)

--为性别增加一个默认约束,默认为'男'

alter table Employees add constraint DF_Employees_EmpGender default('男') for EmpGender

--为性别增加一个检查约束,要求性别只能是:'男' or '女'

alter table Employees add constraint CK_Employees_EmpGender check(EmpGender='男' or EmpGender='女')

--为年龄增加一个检查约束:年龄必须在-120岁之间,含岁与岁。

alter table Employees add constraint CK_Employees_EmpAge check(EmpAge>=0 and EmpAge<=120)

--创建一个部门表,然后为Employee表增加一个DepId列。

alter table Employees add EmpDepId int not null

--为Department表设置主键。主键列是:DepId

alter table Department add constraint PK_Department_DepId primary key(DepId)

--增加外键约束

alter table Employees add constraint FK_Employees_Department foreign key(EmpDepId) references Department(DepId) -- on delete cascade

--删除约束

alter table Employees drop constraint

FK_Employees_Department,

CK_Employees_EmpAge,

CK_Employees_EmpGender,

DF_Employees_EmpGender,

UQ_Employees_EmpName

--通过一条代码来增加多个约束

alter table Employees add

constraint FK_Employees_Department foreign key(EmpDepId) references Department(DepId),

constraint CK_Employees_EmpAge check(EmpAge>=0 and EmpAge<=120),

constraint CK_Employees_EmpGender check(EmpGender='男' or EmpGender='女')

---创建表的同时就为表增加约束

create table Employees

(

EmpId int identity(1,1) primary key,

EmpName varchar(50) not null unique check(len(EmpName)>2),

EmpGender char(2) default('男'),

EmpAge int check(EmpAge>0 and EmpAge<120),

EmpEmail varchar(100) unique,

EmpAddress varchar(500) not null,

EmpDepId int foreign key references Department(DepId) on delete cascade

)

create table Department

(

DepId int identity(1,1) primary key,

DepName varchar(50) not null unique

)

SqlServer--代码创建约束的更多相关文章

  1. SQL Server 数据表代码创建约束

    约束 非空约束 --NN,ont null constraint 必须填写数据不能为空 --指定表 Student 添加名为NN_Student_sClassId非空约束(指定列名sClassId), ...

  2. iOS 使用代码创建约束,实现自动布局

    ///与下面约束对象属性截图相对应//使用Auto Layout约束,禁止将Autoresizing Mask转换为约束 [self.funcView setTranslatesAutoresizin ...

  3. 使用代码创建AutoLayout约束

    使用代码创建AutoLayout约束 1.代码创建约束的步骤 2.代码创建约束的常用方法 3.代码创建约束的原则 4.禁用Autoresizing的原因 5. 设置相对状态栏的约束,使用self.to ...

  4. Sql Server——运用代码创建数据库及约束

    在没有学习运用代码创建数据库.表和约束之前,我们只能用鼠标点击操作,这样看起来就不那么直观(高大上)了. 在写代码前要知道在哪里写和怎么运行: 点击新建查询,然后中间的白色空白地方就是写代码的地方了. ...

  5. 【转】iOS6中的Auto Layout:通过代码添加约束

        最近做的项目用到了Auto Layout,于是经过了一番大量的google,这是我看到的讲用代码创建约束最清晰的一篇教程,于是想跟更多的人分享一下.原文也比较简单,可以直接过去看,如果我翻译的 ...

  6. 代码创建数据库_表--SqlServer数据库

    /*1.创建数据库的时候需要设置的基本属性: 数据库名称 逻辑名称 初始大小 文件增长 路径*/ --语法: -- create database 数据库名称 -- on [primary]--创建数 ...

  7. ios xib和代码的frame布局 iOSXib布局后代码修改约束的值

    如何修改autolayout 约束的值? 1 2 3 4 5 6 目前我已知的方法有5种 1.修改frame(有时候可能会不起作用,但可以做动画) 2.修改约束的float值 3.使用VisualFo ...

  8. iOSXib布局后代码修改约束的值

      如何修改autolayout 约束的值? 目前我已知的方法有5种 1.修改frame(有时候可能会不起作用,但可以做动画) 2.修改约束的float值 3.使用VisualFormat 语言 4. ...

  9. 【转】SQL Server 创建约束图解 唯一 主键-界面操作

    SQL Server 创建约束图解 唯一 主键-界面操作 SQLServer中有五种约束,Primary Key约束.Foreign Key约束.Unique约束.Default约束和Check约束, ...

随机推荐

  1. 探秘Tomcat——连接器和容器的优雅启动

    前言: 上篇<探秘Tomcat——启动篇>粗线条的介绍了在tomcat在启动过程中如何初始化Bootstrap类,加载并执行server,从而启动整个tomcat服务,一直到我们看到控制台 ...

  2. 根据起止日期构建指定查询条件:第N周(yyyy-MM-dd/yyyy-MM-dd)

    项目中有个查询模块中用到查询条件: 年和周. 以往我直接指定是第几周,后来测试反映如果直接选择周的话并不知道所选周代表的年月日,而无法最快查询数据,后更改查询条件如下: 指定一个起始年月,根据起始年月 ...

  3. vue-lazy-render: 延迟渲染大组件,增强页面切换流畅度

    最近用element来做项目,在开发的过程中,突然发现页面的操作和切换在数据量大的时候相当卡,后来提了个issue,在furybean解答后才知道,我每个单元格都加了tooltip,会生成大量的节点, ...

  4. 使用webstom或者idea上传代码到github或coding

    鉴于github网络速度太慢,建议用coding.先介绍github上传方式,因为webstom或idea集成了github,方法简单. git是一个版本控制器,他的作用是管理代码.比如你修改了代码, ...

  5. 【原创】kafka server源代码分析(二)

    十四.AbstractFetcherManager.scala 该scala定义了两个case类和一个抽象类.两个case类很简单: 1. BrokerAndFectherId:封装了一个broker ...

  6. JSON帮助类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. CSS3和jQuery实现的自定义美化Checkbox

    效果图: 是不是比默认的好看多了,个人的审美观应该还是可以的. 当然我们可以在这里查看DEMO演示. 接下来我们一起来看看实现这款美化版Checkbox的源代码.主要思路是利用隐藏原来的checkbo ...

  8. Java程序员必须掌握的8大排序算法

    分类: 1)插入排序(直接插入排序.希尔排序)2)交换排序(冒泡排序.快速排序)3)选择排序(直接选择排序.堆排序)4)归并排序5)分配排序(基数排序) 所需辅助空间最多:归并排序所需辅助空间最少:堆 ...

  9. 数三角形 bzoj 1201

    数三角形(1s 128MB)triangle [题目描述] 小苏看到一个这样的等边三角形:该等边三角形每边的长度为n且被分成n等份,于是每条边就有n-1个等分点.而整个三角形被连接两个不同边的等分点且 ...

  10. php基础知识

    PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言[脚本在服务器上执行]. PHP 文件能够包含文本.HTML.CSS 以及 PHP 代码,在服务器上的执行结果以纯文本返回浏览器. php可以 ...