一.约束的分类
实体约束:关于行的约束,比如某一行出现的值就不允许别的行出现,如主键
域约束:关于列的约束,对表中所有行的某些列进行约束,如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 ...
随机推荐
-
gerrit docker运行失败 chown: /var/gerrit/review_site: Permission denied 【已解决】
Docker Volume 之权限管理(转) - jackluo - 博客园 http://www.cnblogs.com/jackluo/p/5783116.html 为什么在公司电脑没有问题,但在 ...
-
makefile 分析 -- 内置变量及自动变量
makefile 分析1 -p 选项,可以打印出make过程中的数据库, 下面研究一下内置的变量和规则. -n 选项, 只运行,不执行, -d 选项,相当于--debug=a, b(basic), ...
-
windwos异地备份Mysql数据库
@echo off@title Mysqlbackup echo MySQL数据库备份 echo ***********************echo Today %date%echo Time % ...
-
GNU MAKE指南
GNU make 指南 翻译: 哈少 译者按: 本文是一篇介绍 GNU Make 的文章,读完后读者应该基本掌握了 make 的用法.而 make 是所有想在 Unix (当然也包括 Linux )系 ...
-
SQL点滴8—the account is currently locked out. The system administrator can unlock it.
原文:SQL点滴8-the account is currently locked out. The system administrator can unlock it. 今天遇到的问题比较有意思. ...
-
POJ 2488 A Knight's Journey(深搜+回溯)
A Knight's Journey Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other) ...
-
第三章 霍夫变换(Hough Transform)
主要内容: 霍夫变换的作用 霍夫变换检测直线的原理 霍夫变换检测圆的原理 OpenCV中的霍夫变换 1.霍夫变换检测直线原理 霍夫变换,英文名称Hough Transform,作用是用来检测图像中的直 ...
-
mysql 基本命令操作
1. 查看存储引擎 show engines; 2. 查看数据存储位置 show variables like 'datadir': 3. 存储引擎 create table mytest engin ...
-
shell编程企业级实战
如何才能学好Shell编程 为什么要学习shell编程 Shell是Linux底层核心 Linux运维工作常用工具 自动化运维必备基础课程 学好shell编程所需Linux基础 熟练使用vim编辑器 ...
-
[LeetCode]2. 两数相加
题目链接:https://leetcode-cn.com/problems/add-two-numbers/ 题目描述: 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 ...