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. 2016/1/6 输出菱形 while语句计算阶乘分数之和

    public class LingXing { public static void main(String[] args) { //打印菱形 for (int x=1;x<6;x++){ fo ...

  2. HTTP要点概述:十一,HTTP状态码

    一,状态码: 状态码告知从服务器返回的请求结果.用户借助状态码可以判断服务器是正常处理了请求,还是发生了错误. 状态码比如200 OK,以3位数字和原因短语组成. 数字中的第一位制定了相应的类别,后两 ...

  3. HDU 5752Sqrt Bo

    Sqrt Bo Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total S ...

  4. luogu 1901 发射站

    题目大意: 一个数列,它左边第一个比它高的人和右边第一个比它高的人要加上它的权值 思路: 单调栈维护一个单调递减的栈 正反各维护一遍 #include<iostream> #include ...

  5. Navicat for MySQL 激活方法

    Navicat for MySQL 激活方法: 首先下载 PatchNavicat.exe ,不知道在哪儿下的可以直接拿走: 链接:https://pan.baidu.com/s/1yy4M8IDx8 ...

  6. 第七周 Leetcode 466. Count The Repetitions 倍增DP (HARD)

    Leetcode 466 直接给出DP方程 dp[i][k]=dp[i][k-1]+dp[(i+dp[i][k-1])%len1][k-1]; dp[i][k]表示从字符串s1的第i位开始匹配2^k个 ...

  7. js moment.js日期操作类 datetime,日期操作,dayjs

    http://momentjs.com/ JS时间处理插件MomentJS https://juejin.im/post/5a2bdc55f265da432b4abf5e Day.js 2kB超轻量时 ...

  8. Spring的 @ExceptionHandler注解无效问题

    如果你想设置了@ExceptionHandler注解进行异常捕获返回异常信息,但是Debug调试时,代码并未进到被@ExceptionHandler注解标注的方法里,那么就检查你的配置文件是否包含 & ...

  9. [App Store Connect帮助]六、测试 Beta 版本(4.4) 管理 Beta 版构建版本:停止测试构建版本

    在首页上,点按“我的 App”,选择您的 App,然后在工具栏中点按“TestFlight”. 在左列中的“构建版本”下,点按您 App 的平台(iOS 或 Apple TVOS). 在右表中,点按该 ...

  10. [Swift通天遁地]一、超级工具-(11)使用EZLoadingActivity制作Loading加载等待动画

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...