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. iOS 开发 公司开发者账号,在多台Mac上合作开发,共用一个账号和证书--图文详解

    参考 导出证书申请的MAC里的Xcode的开发者账号 .developerprofile 导出的开发者账号文件.developerprofile 导出PKCS12既是.p12文件 所拷贝的资料, .d ...

  2. 【POJ 3233】Matrix Power Series

    [题目链接] 点击打开链接 [算法] 要求 A^1 + A^2 + A^3 + ... + A^k 考虑通过二分来计算这个式子 : 令f(k) = A^1 + A^2 + A ^ 3 + ... + ...

  3. Code First: 五大映射模式

    映射一 Mapping the Table-Per-Hierarchy (TPH) Inheritance 模型文件 using System.Data.Entity; using System.Da ...

  4. [bzoj3073]Journeys

    https://www.zybuluo.com/ysner/note/1295471 题面 \(Seter\)建造了一个很大的星球,他准备建造\(N\)个国家和无数双向道路.\(N\)个国家很快建造好 ...

  5. CF 1042 A Benches —— 二分答案(水题)

    题目:http://codeforces.com/problemset/problem/1042/A 代码如下: #include<iostream> #include<cstdio ...

  6. Spark 二项逻辑回归__二分类

    package Spark_MLlib import org.apache.spark.ml.Pipeline import org.apache.spark.ml.classification.{B ...

  7. 16. Ext.ux.TabCloseMenu插件的使用(TabPanel右键关闭菜单) 示例

    转自:https://crabdave.iteye.com/blog/327978 Ext.ux.TabCloseMenu插件的使用(TabPanel右键关闭菜单) 示例 效果: 创建调用的HTML: ...

  8. spring-boot-configuration-processor的作用

    spring默认使用yml中的配置,但有时候要用传统的xml或properties配置,就需要使用spring-boot-configuration-processor了 先引入pom依赖 <d ...

  9. log4j日志基本配置

    Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松 ...

  10. oracle给用户授权

    1.在PLSQL里,用sys(oracle系统用户)登陆,登陆的时候一定要选择SYSDBA.普通用户登陆选择normal就可以了 2.创建用户 *也可以给普通用户授权为dba即数据库管理员.在导入导出 ...