版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基础知识复习51数据库约束52数据库约束练习数据库约束什么是数据库约束
是为了保证数据的完整性而实现的一套机制。将约束放置在列或表上,可以保证数据满足某种完整性规则。◆约束包括:检查约束(CHECK)、主键约束(PRIMARYKEY)、外键约束(FOREIGNKEY)、唯一约束(UNIQUE)和默认约束(DEFAULT)。●CHECK约束
通过数据库表里,在字段级或表级加入的检查约束,使其满足特定的要求。比如下面的表定义:例:在职员表staff中,职员的考勤分数需要大于0。
CRATETABLEstaff(
Snoint,
SNamevarchar(10),
scoreintCHECK(scrore>0));定义考勤分数不能小于等于0。●FOREIGNKEY约束
外键约束是确保数据完整性并显示表之间关系的一种方法。在一张表上添加一个外键,也就是在创建定义外部键的表参照表(referencingtable)和外部键引用表(referencedtable)之间的信赖关系。定义外键后,插入到参照表中的任何记录要么在引用表的引用列中有记录,要么将外部键列的值设置为NULL。外键的例子:在学生的成绩系统中,现有学生信息表,学生成绩表。如果学生退学了或其他原因需要删除某学生记录,同时要求删除该学生的成绩记录。建立的三个表如下:CREATETABLEstudent(snointprimarykeyidentity(20050301,1),snamevarchar(20)notnull,ssexchar(2)check(ssex=‘男’orssex=‘女’),sagesmallintcheck(sage>=16),sdepvarchar(20)default‘计算机系’)CREATETABLEcourse( cnochar(4)primarykey,cnamevarchar(50)uniquenotnull, ccreditsmallintcheck(ccredit>0));CREATETABLESC(
snointreferencesstudent(sno),
cnochar(4)referencescourse(cno),
gradesmallintCHECK(gradebetween0and100));CREATETABLEsc(
snointreferencesstudentONUPDATECASCADEONDELETECASCADE,//希望在学生记录改变时自动改变分数记录,在删除学生时,级联删除分数记录。
cnochar(4)referencescourseONUPDATECASCADE,//希望在改变课程时自动改变分数记录表里关于课程的引用,但是不希望删除课程时级联删除分数。
gradesmallintCHECK(gradebetween0and100));例1:创建一个表SC,同时使用CONSTRANT子句将sno,cno字段定义为主键,主键名为:PK_Student1。方法一:CREATETABLESC
(snointNOTNULL,cnochar(4)NOTNULL,gradeintNULL,CONSTRANTPK_Student1PRIMARYKEY(sno,cno))注意:如果不指定主键名,系统将自动分配名称。●增加外键约束基本语法:ALTERTABLE表名ADDCONSTRAINT
外键约束名FOREIGNKEY(列名1【,列名2,…列名n)】
REFERENCES
关联表(关联列名1,【关联列名2,…,关联列名n】●增加检查约束基本表达式:ALTERTABLE表名ADDCONSTRAINT约束名CHECK[NOTFORREPLICATION]—用于指定从其他表中复制数据时,不检查约束条件。(逻辑表达式)例:使用CREATETABLE语句建表SC
,同时创建检查约束,定义列grade的值大于等于0。CREATETABLESC(snointNOTNULL,cnochar(4)NOTNULL,gradesmallint,
CONSTRAINTFK_student1FOREIGNKEY(sno)referencesstudent(sno),
CONSTRAINTFK_courseforeignkey(cno)referencescourse(cno),CONSTRAINTCK_gradeCHECK(grade>=0))例:使用CREATETABLE语句创建表course,同时创建检查约束,定义列cno只能以大写的两个字母开始,其余几位只能是数字。CREATETABLEcourse(cnochar(4)NOTNULL,cnamevarchar(40)NOTNULL,ccreditsmallint,CONSTRAINTFK_coursePRIMARYKEY(cno),CONSTRAINTCK_courseCHECK(cnoLIKE‘[A-Z][A-Z][0-9][0-9]’))例:给SC表增加一个检查约束,要求成绩grade>0.altertablescaddconstraintck_sccheck(grade>=0)●增加唯一性约束基本语法:ALTERTABLEADDCONSTRAINT
约束名UNIQUE[CLUSTERED|NONCLUSTERED]—指定创建聚集或非聚集索引(列名1【,列名2,…列名n】)方法二:1.CREATETABLEstudent(Snointnotnull,Snamevarchar(10))2.altertablestudentaddCONSTRAINTIX_student1UNIQUE(sname)增加默认约束基本语法:ALTER
TABLE
table_name
ADD
CONSTRAINT
constraint_name
DEFAULT
default_val
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自然资源地质灾害应急预案(23篇)
- 课外书《卖火柴的小女孩》读后感
- 节约用水的演讲稿(15篇)
- 劳动主题课程设计
- 古文阅读理解课程设计
- 声光控路灯控制课程设计
- u形弯曲模具课程设计
- 命题简报技巧课程设计
- 2024年度山西省安全员之B证(项目负责人)模考预测题库(夺冠系列)
- 2024年度山西省安全员之A证(企业负责人)题库综合试卷B卷附答案
- 2019北师大版高中英语必修一单词默写表
- 两段式冷煤气发生炉方案
- ONVIF2.0中文协议原版-
- 医院护理部主任绩效考核指标
- huawei ar2200系列企业路由器配置指南v200r001c01-基础v200r001c
- 现代工程设计制图习题集(第四版)参考答案(章节课程)
- 2017年版《购物中心设计安全技术标准》万达
- 食品经营操作流程图
- 拖拉管监理细则
- “萌芽杯”全国青少年语文知识素养竞赛
- 人教版八年级上册生物2.3社会行为说课稿
评论
0/150
提交评论