Microsoft SQL Server 完整性约束


标识 IDENTITY自动编号

CREATE TABLE table_name(

    id ,),

    NAME ) not null,

    sex ) default '男',

    note ntext null

)

主键约束 PRIMARY KEY

在表中定义一个主键来唯一确定表中一行数据的标识符,主键列的数据类型不限,但列必须唯一并且非空。一个表只允许一个主键,主键可以是单个字段或多个字段的组合。

create table tb(

    --单列主键的创建

    id int primary key

)

go

create table tb1(

    id int,

    name ),

    --多列组合的主键

    CONSTRAINT tb1_id_name_pk PRIMARY KEY(id,name)

)

Go

--为表添加主键

alter table table_name

add

constraint pk_name

primary key(column_name)

--删除主键

alter table table_name

drop

constraint pk_name

唯一性约束 UNIQUE防止非主键重复

CREATE TABLE Persons(

Id_P int NOT NULL UNIQUE,

LastName ) NOT NULL,

FirstName ),

Address ),

City )

)

--多字段

CREATE TABLE Persons(

Id_P int NOT NULL,

LastName ) NOT NULL,

FirstName ),

Address ),

City ),

CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

)

--添加

ALTER TABLE Persons

ADD UNIQUE (Id_P)

--添加

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

--删除

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

默认值约束 DEFAULT

CREATE TABLE table_name(

    id ,),

    NAME ) not null,

    sex ) default '男',

    note ntext null

)

指定列的默认值

--创建一个默认值对象

create default sdept_char

as '信息中心'

go

--为表sdept列绑定默认值

sp_bindefault sdept_char,'student.sdept'

--测试绑定的默认值

','类鳄梨','男')

'

--取消默认值绑定

sp_unbindefault 'student.sdept'

--测试取消是否成功

','雷海鸣','男')

select * from student

--删除默认值对像

drop default sdept_char

检查约束 CHECK

指定列的允许值,指定根据同一个表中其他列的值可在列中接受的数据值

--为表年龄字段添加约束

alter table student

 )

--测试约束

--删除表年龄字段约束

alter table student

drop constraint ck_sage

--测试

非空约束NOT NULL

指定是否允许为NULL字符

CREATE TABLE table_name(

    id ,),

    NAME ) not null,

    sex ) default '男',

    note ntext null

)

规则 RULE

--创建规则对象

create rule format

as

@联系电话 like '[0][1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

--修改表添加列

alter table student

)

--为列绑定规则

sp_bindrule format,'student.telephone'

--测试绑定规则

'

'

select * from student

--解除绑定规则

sp_unbindrule 'student.telephone'

--测试解除

'

select * from student

--删除规则对象

drop rule format

外键约束 FOREIGN KEY

指定必须存在值得列,定义值与同一个表或另一个表的主键值匹配的一列或多列组合

--创建表时添加外键

create table table_name(

    id int primary key,

    id1 int foreign key  )

--已有表添加约束

alter table table_name

add

constraint fk_name

foreign key(columne_name)

--删除外键

alter table table_name

drop

constraint fk_name

06Microsoft SQL Server 完整性约束的更多相关文章

  1. sql server 2008 数据库的完整性约束

    一.数据库完整性概述   1.数据库的完整性:   ①数据库的完整性是指数据的正确性和相容性 ②数据库完整性是防止不合语义或不正确的数据进入数据库 ③完整性体现了是否真实地反映现实世界   例:  学 ...

  2. SQL Server 表的管理_关于完整性约束的详解(案例代码)

    SQL Server 表的管理之_关于完整性约束的详解 一.概述: ●约束是SQL Server提供的自动保持数据库完整性的一种方法, 它通过限制字段中数据.记录中数据和表之间的数据来保证数据的完整性 ...

  3. SQL Server 导入excel时“该值违反了该列的完整性约束”错误

    SQL Server 导入excel时“该值违反了该列的完整性约束”错误 这个问题看似高大上,仔细分析了一下,ID列怎么会有重复呢? 原来是有很多空行呀!!! 所以导入excel时一定要注意空行的问题 ...

  4. SQL Server 进阶 01 数据库的设计

    SQL Server 进阶 01 数据库的设计 本篇目录 课程内容回顾及介绍 为什么需要规范的数据库设计 设计数据库的步骤 绘制E-R(实体-关系)图 实体-关系模型 如何将E-R图转换为表 数据规范 ...

  5. SQL Server数据库设计规范

    数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求.数据库设计过程中命名规范很是重要,命名规范合理的 ...

  6. 数据库(SQL Server)管理数据库表~新奇之处

    说到“数据库”,我总有一种莫名的感觉,在刚刚接触到的数据库中就让我似懂非懂渡过着,于是思考着.于是在冷静的时空中让我回想到了很多的知识,不知你们是怎样过来的,真心希望我的这篇数据库总结能够让我们都有一 ...

  7. SQL Server 触发器

    触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程.触发器主要是通过事件进行触发被自动调用执行的.而存储过程可以通过存储过程的名称被调用. Ø 什么是触发器 触发器对表进行插入.更新.删 ...

  8. SQL Server 数据库设计规范

    数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求.数据库设计过程中命名规范很是重要,命名规范合理的 ...

  9. SQL Server:触发器详解

    1. 概述 触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活. 所以触发器可以用来实现对表实施复杂的完整性约束. 2. 触发器的分类 SQL S ...

随机推荐

  1. Python正則表達式小结(1)

    学习一段python正則表達式了, 对match.search.findall.finditer等函数作一小结  以下以一段网页为例,用python正則表達式作一个范例: strHtml = '''& ...

  2. Eclipse Import别人的源代码,出错解决过程

    1.从APKBus上下载了一个源码,想研究一下,结果出错了,经过各种百度,实验,终于解决了,现在记录一下.. File-Import 导入源文件.

  3. oracle存储过程和游标的使用

    oracle存储过程和游标的使用 (2011-04-19 14:52:47) 转载▼ 游标: 用来查询数据库,获取记录集合(结果集)的指针,我们所说的游标通常是指显式游标,因此从现在起没有特别指明的情 ...

  4. 实现SpringBoot登录

    SpringBoot登录 https://www.cnblogs.com/jiekzou/p/9303871.html 通过前面10篇文章的学习,相信我们对SpringBoot已经有了一些了解,那么如 ...

  5. BZOJ_4753_[Jsoi2016]最佳团体_树形背包+01分数规划

    BZOJ_4753_[Jsoi2016]最佳团体_树形背包+01分数规划 Description JSOI信息学代表队一共有N名候选人,这些候选人从1到N编号.方便起见,JYY的编号是0号.每个候选人 ...

  6. 基于JWT机制的单点登录

    使用JWT实现单点登录时,需要注意token时效性.token是保存在客户端的令牌数据,如果永久有效,则有被劫持的可能.token在设计的时候,可以考虑一次性有效或一段时间内有效.如果设置有效时长,则 ...

  7. KeepAlived的介绍

    KeepAlived介绍 keepalived keepalived是一个类似于layer3, 4 & 7交换机制的软件,也就是我们平时说的第3层.第4层和第7层交换. Keepalived的 ...

  8. E20170603-ts

    sanitize vt. 净化; 进行消毒; 使清洁; 审查; omission  n. 遗漏; 疏忽; 省略,删节; [法] 不履行法律责任; separator   n. 分离器,分离装置; 防胀 ...

  9. map的遍历方式(使用Junit测试)

    package cn.sdut.lah; import java.util.HashMap; import java.util.Iterator; import java.util.Map; impo ...

  10. MongoDB的用户权限管理

    1.创建用户并授权语法:db.createUser({user:"UserName",pwd:"Password",roles:[{role:"Rol ...