Sql Server数据库之约束
一.约束的分类
实体约束:关于行的约束,比如某一行出现的值就不允许别的行出现,如主键
域约束:关于列的约束,对表中所有行的某些列进行约束,如check约束
参照完整性约束:如果某列的值必须与其他列的值匹配,那就意味着需要一个参照完整性约束,如外键约束
二.约束的命名
主键约束命名实例:
pk_Student ; (pk_表名)
check约束命名实例:
ck_Student_Name;(ck_表名_字段名)
三.键约束
1.主键约束
①.在创建表的时候创建约束:
create table student ( ID int identity not null primary key, --创建表的时候添加约束 Name ) not null )
②.在已存在的表上创建主键约束:
--在已存在的表上创建主键约束 alter table teacher add constraint pk_teacher_ID primary key(ID)
上面的语句告诉了Sql Server以下信息:
a.添加了一个约束到表中
b.约束的名称
c.什么约束(约束类型)
d.约束作用域那一列
③.创建复合主键
--创建符合约束 alter table emp add constraint [PK_emp] primary key nonclustered ( ID, Code )
2.外键约束
①.对外键的理解
两个表中存在相同的字段(如学生表和成绩表中都存在学号字段),该字段在其中一张表中能够主键(如学生表),在另一张表中不能作为主键(如成绩表),则在不能作为主键的表中称为外键
如果一个表中的若干个字段是来自另外若干个表的主键或唯一键,则这若干个字段就是外键
②.示例
新建一个班级表,字段有班级编号,班级名称
新建一个学生表,字段有学生编号,班级编号,学生姓名,将表中的班级编号字段设置为外键
代码:
--键班级表 create table class ( classid int primary key, classname ) ) --见学生表 create table students ( studentid int primary key, classid int, stuname ), foreign key(classid) references class(classid) )
向学生表中插入一行记录,此时班级表中没有内容:
,,'小明');
提示报错,因为此时班级表中没有对应的班级
先向班级表中插入一行记录,在向学生表中插入属于该班级的学生信息
,'一班'); ,,'小明');
③.在创建表时添加外键约束
--在创建表时创建外键约束 create table customer ( customerId int identity not null primary key, customerName ) not null ) create table orders ( orderId int identity not null primary key, customerId int not null foreign key references customer(customerId) --约束类型-外键-引用表(列名) )
④.在已经存在的表中添加外键约束
⑤.级联动作
⑥.外键约束的其他考虑
Sql Server数据库之约束的更多相关文章
- 关于SQL SERVER数据库学习总结
对于SQL SERFVER数据库也学了有一阵子了,自己也对自己所学做了一些总结. 我们首先学习数据库设计的一些知识点和用SQL语句建库. 设计数据库步骤:需求分析阶段,概要设计阶段,详细设计阶段, 建 ...
- 清空SQL Server数据库中所有表数据的方法(转)
清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...
- 5、SQL Server数据库、T-SQL
SQL Server数据库基础 一.安装SQL Server数据库 setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步- ...
- SQL Server - 数据库初识
在互联网笔试中,常遇到数据库的问题,遂来简单总结,注意,以 Sql Server 数据库为例. 数据库 数据库系统,Database System,由数据库和数据库管理系统组成. 数据库,Data ...
- 转:SQL SERVER数据库中实现快速的数据提取和数据分页
探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页.以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构: CREATE TABLE [dbo]. ...
- (火炬)MS SQL Server数据库案例教程
(火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引 ...
- SQL Server数据库学习总结
经过一段时间的学习,也对数据库有了一些认识,数据库基本是由表,关系,操作组成:对于初学者首先要学的 一图胜“十”言:SQL Server 数据库总结 一个大概的总结 经过一段时间的学习,也对数 ...
- SQL Server缺省约束、列约束和表约束
SQL Server缺省约束是SQL Server数据库中的一种约束,下面就为您介绍SQL Server缺省约束.列约束和表约束的定义方法啊,供您参考. SQL Server缺省约束 SQL Serv ...
- 使用PowerDesigner 设计SQL Server 数据库
工具: Sybase PowerDesigner 12.5 Microsoft SQL Server 2005 第一步:概念数据模型 打开PowerDesigner 软件,设计“概念数据模型”(Co ...
随机推荐
- 网易2018校招内推编程题-堆棋子-C++实现
链接:https://www.nowcoder.com/questionTerminal/27f3672f17f94a289f3de86b69f8a25b来源:牛客网 [编程题]堆棋子 热度指数:14 ...
- 神州数码广域网PPP封装CHAP认证配置
实验要求:掌握PPP封装协议下的CHAP认证 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface s0/1 进入端口 ip a ...
- 【转载】 TensorflowOnSpark:1)Standalone集群初体验
原文地址: https://blog.csdn.net/jiangpeng59/article/details/72867368 作者:PJ-Javis 来源:CSDN --------------- ...
- lombok安装
今天学习spring boot 时候发现的lombok挺好用的,我这个使用的是spring boot 管理的版本,如果其他的可能需要你们自己去添加版本了,开发工具使用的是idea. maven: &l ...
- Python全栈之路----类型转换
显式转换 int(x [,base]) ⇒ 将x转换为一个十进制的整数 long(x [,base]) ⇒ 将x转换为一个十进制的长整数 float(x) ⇒ 将x转换为一个浮点数 str(objec ...
- day05 None类型
None:空类型 表示该值是一个空对象,既不是0也不是" ",判断时候都为False
- windows下python虚拟环境virtualenv安装和使用
前面介绍了python在ubuntu16.04环境下,python的虚拟环境virtualenv的安装,下面介绍在windows环境下的安装和使用. 环境信息 操作系统:windows10 pytho ...
- 用turtle画图
turtle是python自带一个寓教于乐的小乌龟,可以控制乌龟移动(机器人),可以留下足迹. turtledemo里有许多官方例子.刚才随性而发做,看了介绍随手画了一个,有点像自动原包机,通过简单的 ...
- Java_IO异常处理方式_入门小笔记
package IO; import java.io.FileWriter; import java.io.IOException; /** * IO异常处理方式 */ class FileWrite ...
- 怎样使用PL/SQL在不安装oracle 客户端的情况下使用oracle数据库
在网上查了好多这方面的例子,但是似乎说的都不准确,在咨询朋友后终于实现了本机不安装oracle 的情况下,在windows系统上实现连接服务器上的数据库,现在贴出来与大家共享. 首先,我们需要一个PL ...