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 ...
随机推荐
- 使用 Code Map 理解复杂代码1 ——Visual Studio2012
第一次知道code map是在Visual Studio Ultimate 2012自带的解说上面,当时认为十分好奇,所以查了查.结果一查就是好几天.原来Visual Studio Ultimate ...
- Zend Studio如何调试?
1.安装Zend Studio之前,本机已安装Apache2.如果使用Apache2作为服务器 Window-Preferences-Php-Php Servers 配置好 URL和Server Ro ...
- HDU 4850 Wow! Such String!(欧拉道路)
HDU 4850 Wow! Such String! 题目链接 题意:求50W内的字符串.要求长度大于等于4的子串,仅仅出现一次 思路:须要推理.考虑4个字母的字符串,一共同拥有26^4种,这些由这些 ...
- HDU 5753Permutation Bo
Permutation Bo Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程
本文转载自:[Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程 1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6. ...
- 偏差(bias)和方差(variance)及其与K折交叉验证的关系
先上图: 泛化误差可表示为偏差.方差和噪声之和 偏差(bias):学习算法的期望预测与真实结果(train set)的偏离程度(平均预测值与真实值之差),刻画算法本身的拟合能力: 方差(varianc ...
- 【USACO 2017FEB】 Why Did the Cow Cross the Road III
[题目链接] 点击打开链接 [算法] 树状数组 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 100010 ...
- 面试官:聊一下你对MySQL索引实现原理?
在数据库中,如果索引太多,应用程序的性能可能会受到影响,如果索引太少,又会对查询性能产生影响.所以,我们要追求两者的一个平衡点,足够多的索引带来查询性能提高,又不因为索引过多导致修改数据等操作时负载过 ...
- swoole多进程处理产生的问题
以前用swoole的时候,没有涉及到数据库连接,碰到问题没有那么多,后来公司业务原生来写swoole多进程,问题出现很多 1.多进程之间会产生进程隔离,global无效,不能共用一个mysql,red ...
- [ZJOI2006]GameZ游戏排名系统
Description GameZ为他们最新推出的游戏开通了一个网站.世界各地的玩家都可以将自己的游戏得分上传到网站上.这样就可以看到自己在世界上的排名.得分越高,排名就越靠前.当两个玩家的名次相同时 ...