




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章关系数据库,1关系数据结构及形式化定义2数据的定义(SQL语言)关系的完整性关系操作,关系数据的定义,SQL语言数据的定义,SQL概述,SQL(StructuredQueryLanguage)结构化查询语言,是关系数据库的标准语言SQL是一个通用的、功能极强的关系数据库语言,SQL语言功能概述,四部分:数据定义功能、数据控制功能、数据查询功能和数据操纵功能。,二、数据类型,SQL中域的概念用数据类型来实现定义表的属性时需要指明其数据类型及长度选用哪种数据类型取值范围要做哪些运算,二、数据类型,数据定义,SQL的数据定义功能:模式定义、表定义、视图和索引的定义,数据库的定义,数据库定义的语法格式:CREATEDATABASE,例:创建一个学生选课数据库,取名为StudentInfo,关键字,CREATEDATABASEStudentInfo,数据库的删除,数据库删除的语法格式:DROPDATABASE,例:将数据库StudentInfo删除,关键字,DROPDATABASEStudentInfo,定义基本表,使用SQL语言中的CREATETABLE语句实现,其一般格式为:CREATETABLE(列级完整性约束定义,列级完整性约束定义,表级完整性约束定义),关系模式,关系模式,学生(学号,姓名,性别,年龄,所在系)课程(课程号,课程名,学分)选课(学号,课程号,成绩),关系,Courses表,students表,SC表,学生表Student,例5建立“学生”表Student,学号是主码。CREATETABLEStudent(SnoCHAR(10)PRIMARYKEY,/*列级完整性约束条件*/SnameCHAR(8),SsexCHAR(2),SageSMALLINT,SdeptCHAR(15);,主码,课程表Course,例6建立一个“课程”表CourseCREATETABLECourse(CnoCHAR(6)PRIMARYKEY,CnameCHAR(20),CcreditSMALLINT,);,学生选课表SC,例7建立一个“学生选课”表SCCREATETABLESC(SnoCHAR(10),CnoCHAR(6),GradeSMALLINT,PRIMARYKEY(Sno,Cno),);,如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。,在列级完整性约束定义处可以定义的约束,NOTNULL:限制列取值非空。PRIMARYKEY:指定本列为主码。FOREIGNKEY:定义本列为引用其他表的外码。使用形式为:FOREIGNKEY()REFERENCES()UNIQUE:限制列取值不重复。CHECK:限制列的取值范围。DEFAULT:给定列的默认值。,约束定义,列取值非空约束NOTNULL例:snamechar(10)NOTNULL,约束定义(续),表主码约束在定义列时定义主码(仅用于单列主码)列定义PRIMARYKEY例:SNOchar(7)PRIMARYKEY在定义完列时定义主码(用于单列或多列主码,表级约束)PRIMARYKEY()例:PRIMARYKEY(SNO)PRIMARYKEY(SNO,CNO),约束定义(续),外码引用约束,指明本表外码列引用的表及表中的主码列。,FOREIGNKEY()REFERENCES(),例:FOREIGNKEY(sno)REFERENCES学生表(sno),约束定义(续),默认值约束格式:DEFAULT默认值例:定义系的默认值为“计算机系”。DEFAULT计算机系,约束定义(续),CHECK约束格式:CHECK(约束表达式)例:定义成绩大于等于0。CHECK(grade=0),约束定义(续),UNIQUE约束在列级约束定义(仅用于单列约束)列定义UNIQUE例:SNAMEchar(7)UNIQUE在表级约束定义(用于单列或多列组合约束)UNIQUE()例:UNIQUE(SNO,CNO),关系,Courses表,students表,SC表,主键为(Sno,Cno),创建学生表,CREATETABLEStudent(Snochar(7)PRIMARYKEY,Snamechar(10)NOTNULL,Ssexchar(2)CHECK(Ssex=男ORSsex=女),SagetinyintCHECK(Sage=15ANDSage0),SemesterintCHECK(Semester0),PeriodintCHECK(Period0),PRIMARYKEY(Cno),练习,P745,删除表,当确信不再需要某个表时,可以将其删除删除表时会将与表有关的所有对象一起删掉,包括表中的数据。删除表的语句格式为:DROPTABLE例:删除test表的语句为:DROPTABLEtest,数据的定义,基本表的定义与删除修改表结构,修改表结构,在定义完表之后,如果需求有变化,比如添加列、删除列或修改列定义,可以使用ALTERTABLE语句实现。ALTERTABLE语句可以对表添加列、删除列、修改列的定义、定义主码、外码,也可以添加和删除约束。,修改表结构语法,ALTERTABLEALTERCOLUMN|ADD|DROPCOLUMN|ADDPRIMARYKEY(列名,n)|ADDFOREIGNKEY(列名)REFERNECES表名(列名)、|ADDDEFAULT默认值FOR(列名)|ADDCHECK(约束表达式),示例,例为SC表添加“修课类别”列,此列的定义为:XKLBchar(4),只能为空,或默认,不能为NOTNULL,ALTERTABLESCADDXKLBchar(4)NULL,示例,例3将新添加的XKLB的类型改为char(6)。,ALTERTABLESCALTERCOLUMNXKLBchar(6),示例,例4删除Course表的XKLB列。,ALTERTABLECourseDROPCOLUMNXKLB,例题,将SC表中的Cno设置为course表中Cno列的外码,练习,按下面要求用SQL语句修改表结构在Students表中插入学生宿舍号一列,定义为:Roomchar(6)为Students表中Sage列添加检查约束,要求Sage的取值范围为(15,45)将Courses表中的Cname的字符串长度改为16将Courses表中的Cname的取只设置为唯一取值删除Students表中学生宿舍号列为SC表中Grade列添加检查约束,要求Grade的取值范围为0,100,数据完整性约束,数据完整性是指数据库中存储的数据是有意义的或正确的。,主要包括三大类:,实体完整性参照完整性用户定义的完整性,实体完整性,实体完整性是保证关系中的每个元组都是可识别的和惟一的。而且表中不允许存在如下的记录:无主码值的记录主码值相同的记录,参照完整性,用于描述实体之间的联系。参照完整性一般是指多个实体(表)之间的关联关系。一般用外码实现。外码:取作本表(子表)属性之一的外表(父表,主表)主码。主码值先在主表中生成,后在子表中引用,外码引用例,学生,课程,修课,(学号,姓名,),(课程号,课程名,),(学号,课程号,成绩,),参照完整性规则,参照
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 菏泽学院招聘笔试真题2024
- 2025版餐饮企业食堂承包协议
- 二零二五年度柴油零售连锁经营合同协议
- 2025版建筑劳务分包企业信用档案管理合同
- 二零二五年度文化创意产业合伙投资合同
- 2025版建筑垃圾资源化利用设备采购合同
- 光合作用光反应过程
- 二零二五年车库购置与车位租赁及产权登记服务一体化合同样本
- 2025版青岛农村宅基地买卖合同乡村振兴合作协议
- 二零二五年度高空设备拆除吊车租赁合同范本
- 香港上市公司分拆上市指引 2024
- 孕优项目培训
- 二零二五版OEM代工项目知识产权保护合同3篇
- 生态农业开发授权委托书样本
- 安全风险评估合同范例
- 烟草行业保证金协议书
- 急危重症患者抢救制度
- 2024年度商业秘密许可合同:企业授权合作伙伴使用其商业秘密协议
- 慢性阻塞性肺疾病急性加重围出院期管理与随访指南(2024年版)解读
- 2024-2030年中国装配式装修行业发展分析及发展前景与趋势预测研究报告
- 报案材料范文模板
评论
0/150
提交评论