




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基础知识复习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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年音频切换台项目资金筹措计划书代可行性研究报告
- 革命文化资源融入初中历史教学探究-以百色市M中学为例
- 汽车传感器与检测技术电子教案:液位传感器
- Brand KPIs for neobanking Freetrade in the United Kingdom-英文培训课件2025.4
- 汽车传感器与检测技术电子教案:检测的作用与意义
- 几种类型小鼠缺氧实验报告范本
- 关+于儒学的现代转化问题-评现代新儒家的儒学转化观
- 介绍学院特色活动方案
- 物理中考一轮复习教案 十五讲 摩擦力 二力平衡
- 从江工会相亲活动方案
- 【语文】四川省成都市泡桐树小学二年级下册期末复习试卷(含答案)
- 配电网技术标准(施工验收分册)
- arm嵌入式系统试题及标准答案
- 麻醉科PDCA持续改进麻醉术后镇痛
- 火字旁教学讲解课件
- 租车公司疫情防控应急预案
- 2023-2025年初中学业水平考试体育与健康考试体育中考理论考试题库
- 补缴社保转移需法律文书(社保法律文书怎么写有效)-靓文网
- SMT失效模式分析PFMEA
- 融媒体中心安全播出管理相关各项制度
- JJF 1105-2018触针式表面粗糙度测量仪校准规范
评论
0/150
提交评论