




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基础知识复习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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 手表收购合同协议书模板
- 八上语文检测试题及答案
- 业务面试题及答案
- 听研护肤测试题及答案
- 大班茶文化课件下载安装
- 出生缺陷试题及答案
- 医学诊断的新工具-浅析毛细管电泳仪的应用与优势
- 大数据驱动的在线教育精准教学研究
- 道路施工期间的文明施工与扬尘控制措施
- 高二年级班主任期末复习指导计划
- 肠管脱出的应急救援原则、方法
- 《解密分层教学》读书心得体会(读书心得体会30篇)
- 服务档案管理制度
- 2024年新一轮科技革命的开启
- 村委消防安全网格化管理工作制度范文
- 房屋建筑工程监理规划(范本-附带监理细则内容)
- 【选填重点题型突破】专题03-折线最短问题(解析版)
- JGT266-2011 泡沫混凝土标准规范
- 【语文】四川省成都市泡桐树小学二年级下册期末复习试卷(含答案)
- arm嵌入式系统试题及标准答案
- 停车场经营承诺书
评论
0/150
提交评论