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 ...
随机推荐
- 剑指Offer 9. 变态跳台阶 (递归)
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 题目地址 https://www.nowcoder.com/practice/ ...
- webapp js与安卓,ios怎么交互
) } } export default { callhandler (name, data, callback) { setupWebViewJavascriptBridge(function (b ...
- 【webdriver自动化】将163登录邮箱的操作封装成多个方法去执行
login_info.txt: youxiang_99@163.com,XXXX youxiang_100@163.com,XXXX main.py: #注意:编码格式 #算法: (1)定义多个方法, ...
- Windows 应用商店无法下载---启动更新
今天想在应用商店下载东西,但是以直没成功,查看原因结果是因为我的Windows自动更新关了. 百度,如何打开自动更新,要打开本地组策略编辑器,但是我是Windows家庭版,,,没有这个东西,, 最后, ...
- C程序第三次作业
6-1 输出月份英文名 PTA提交列表: 1.设计思路 (1)主要描述题目算法 第一步:将十二个月的名称分别赋值给一维数组指针,定义用于返回的数据类型. 第二步:遍历数组,满足若n在1-12范围则将m ...
- JavaBasic_12
类 抽象:对象的共性 类:产生对象的模板(对于属性来讲,类规定有没有属性以及属性类型,具体的属性值因对象的不同而不同) 数据类型:数据集及基于这个数据集的操作 类:我们自定义类型(定义成员变量,基于数 ...
- MYSQL之IFNULL
IFNULL是MYSQL中的一个判断字段值是否为null的函数,如果为null,则此查询可以变更为指定的值: 如 IFNULL(a,0) 如果a为null,则查询出0. 如果A表中没有数据 sele ...
- 面向对象+JAVA基础
泛泛的研究了面向对象的前五章,感觉没有代码的参照理解的知识看过就忘,所以又在推荐下开始了JAVA基础,希望不会鄙视我目前么有一本书能完整看完的记录... public class LeapYear { ...
- sdn的相关学习系列之一mininet的安装
Ubuntu16.04安装mininet 1.安装git命令 sudo apt-get install git 2.从Github上下载Mininet官网的源码 git clone git://git ...
- Unity在WPF中的应用
1. 本文的实现类继承于IRepository using System; using System.Linq; using System.Linq.Expressions; using Zhang. ...