06Microsoft SQL Server 完整性约束
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 完整性约束的更多相关文章
- sql server 2008 数据库的完整性约束
一.数据库完整性概述 1.数据库的完整性: ①数据库的完整性是指数据的正确性和相容性 ②数据库完整性是防止不合语义或不正确的数据进入数据库 ③完整性体现了是否真实地反映现实世界 例: 学 ...
- SQL Server 表的管理_关于完整性约束的详解(案例代码)
SQL Server 表的管理之_关于完整性约束的详解 一.概述: ●约束是SQL Server提供的自动保持数据库完整性的一种方法, 它通过限制字段中数据.记录中数据和表之间的数据来保证数据的完整性 ...
- SQL Server 导入excel时“该值违反了该列的完整性约束”错误
SQL Server 导入excel时“该值违反了该列的完整性约束”错误 这个问题看似高大上,仔细分析了一下,ID列怎么会有重复呢? 原来是有很多空行呀!!! 所以导入excel时一定要注意空行的问题 ...
- SQL Server 进阶 01 数据库的设计
SQL Server 进阶 01 数据库的设计 本篇目录 课程内容回顾及介绍 为什么需要规范的数据库设计 设计数据库的步骤 绘制E-R(实体-关系)图 实体-关系模型 如何将E-R图转换为表 数据规范 ...
- SQL Server数据库设计规范
数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求.数据库设计过程中命名规范很是重要,命名规范合理的 ...
- 数据库(SQL Server)管理数据库表~新奇之处
说到“数据库”,我总有一种莫名的感觉,在刚刚接触到的数据库中就让我似懂非懂渡过着,于是思考着.于是在冷静的时空中让我回想到了很多的知识,不知你们是怎样过来的,真心希望我的这篇数据库总结能够让我们都有一 ...
- SQL Server 触发器
触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程.触发器主要是通过事件进行触发被自动调用执行的.而存储过程可以通过存储过程的名称被调用. Ø 什么是触发器 触发器对表进行插入.更新.删 ...
- SQL Server 数据库设计规范
数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求.数据库设计过程中命名规范很是重要,命名规范合理的 ...
- SQL Server:触发器详解
1. 概述 触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活. 所以触发器可以用来实现对表实施复杂的完整性约束. 2. 触发器的分类 SQL S ...
随机推荐
- MySQL系列:innodb源代码分析之内存管理
在innodb中实现了自己的内存池系统和内存堆分配系统,在innodb的内存管理系统中,大致分为三个部分:基础的内存块分配管理.内存伙伴分配器和内存堆分配器.innodb定义和实现内存池的主要目的是提 ...
- regulator_get 调用过程【转】
本文转载自:http://blog.csdn.net/u012719256/article/details/52083961 Touch panel DTS 分析(MSM8994平台,Atmel 芯片 ...
- how to modify vs2017
https://docs.microsoft.com/en-us/visualstudio/install/modify-visual-studio 直接用everything搜索vs_install ...
- sql%found sql%notfound sql%rowcount sql%isopen
原文引入:http://blog.csdn.net/mh942408056/article/details/6949325 sql%found sql%notfound sql%rowcount sq ...
- ASP.NET和C#的区别/
1..NET是一个平台,一个抽象的平台的概念. .NET平台其本身实现的方式其实还是库,抽象层面上来看是一个平台. 个人理解.NET核心就只是.NET Framework. .NET Framewor ...
- Nginx配置try_files实践二
本文内容承接<Nginx配置try_files实践一> 1. 环境: OS:Ubuntu 15.10 nginx:nginx/1.9.3 (Ubuntu) 假设有三台虚拟机db1(IP:1 ...
- bzoj 1599: [Usaco2008 Oct]笨重的石子【枚举】
--我为什么要写这种题解-- 枚举投掷情况即可 #include<iostream> #include<cstdio> using namespace std; int s1, ...
- PostgreSQL逻辑复制之pglogical篇
PostgreSQL逻辑复制之slony篇 一.pglogical介绍 pglogical 是 PostgreSQL 的拓展模块, 为 PostgreSQL 数据库提供了逻辑流复制发布和订阅的功能. ...
- ViewPager(3)用viewpager实现tabhost
1.示例 2.代码 2.1 TabViewPagerMain.java import android.graphics.drawable.Drawable; import android.os.Bun ...
- 存储过程中高性能安全式SQL拼接
不少开发人员在进行SQL拼接时头痛之极,不知道如何进行拼接操作才会更安全又不影响性能,下面我以存储过程为例与大家分享一个相对比较安全高效的方法 简介:存储过程(Stored Procedure)是在大 ...