数据库原理第3章关系数据库标准语言SQL(1).ppt
- 文档编号:2680058
- 上传时间:2022-11-07
- 格式:PPT
- 页数:81
- 大小:381KB
数据库原理第3章关系数据库标准语言SQL(1).ppt
《数据库原理第3章关系数据库标准语言SQL(1).ppt》由会员分享,可在线阅读,更多相关《数据库原理第3章关系数据库标准语言SQL(1).ppt(81页珍藏版)》请在冰豆网上搜索。
首都师范大学信息工程学院首都师范大学信息工程学院数据库系统原理数据库系统原理PrinciplesofDatabaseSystem第三章第三章关系数据库标准语言关系数据库标准语言SQLSQLAnIntroductiontoDatabaseSystem第三章第三章关系数据库标准语言关系数据库标准语言SQL3.1SQL概述3.2数据定义3.3查询3.4数据更新3.5视图3.6数据控制3.7嵌入式SQL3.8小结AnIntroductiontoDatabaseSystem3.1SQL概述概述nSQL的特点n1.综合统一n2.高度非过程化n3.面向集合的操作方式n4.以同一种语法结构提供两种使用方法n5.语言简洁,易学易用AnIntroductiontoDatabaseSystem5.语言简捷,易学易用语言简捷,易学易用AnIntroductiontoDatabaseSystemSQL的基本概念的基本概念SQL视图视图2视图视图1基本表基本表2基本表基本表1基本表基本表3基本表基本表4存储文件存储文件2存储文件存储文件1外模式外模式模模式式内模式内模式SQL支持关系数据库三级模式结构AnIntroductiontoDatabaseSystemSQL的基本概念(续)的基本概念(续)n基本表n本身独立存在的表nSQL中一个关系就对应一个基本表n一个(或多个)基本表对应一个存储文件n一个表可以带若干索引n存储文件n逻辑结构组成了关系数据库的内模式n物理结构是任意的,对用户透明n视图n从一个或几个基本表导出的表n数据库中只存放视图的定义而不存放视图对应的数据n视图是一个虚表n用户可以在视图上再定义视图AnIntroductiontoDatabaseSystem第三章第三章关系数据库标准语言关系数据库标准语言SQL3.1SQL概述3.2数据定义3.3查询3.4数据更新3.5视图3.6数据控制3.7嵌入式SQL3.8小结AnIntroductiontoDatabaseSystem3.2数数据据定定义义AnIntroductiontoDatabaseSystem3.2.1定义定义语句格式语句格式CREATETABLE(,);n:
所要定义的基本表的名字n:
组成该表的各个属性(列)n:
涉及相应属性列的完整性约束条件n:
涉及一个或多个属性列的完整性约束条件AnIntroductiontoDatabaseSystem例题例题例1建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。
其中学号不能为空,值是唯一的,并且姓名取值也唯一。
CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(20)UNIQUE,SsexCHAR
(1),SageINT,SdeptCHAR(15);AnIntroductiontoDatabaseSystem定义基本表(续)定义基本表(续)n常用完整性约束n主码约束:
PRIMARYKEYn唯一性约束:
UNIQUEn非空值约束:
NOTNULLn参照完整性约束AnIntroductiontoDatabaseSystem例题例题(续)(续)n例2建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno,Cno)为主码。
nCREATETABLESCn(SnoCHAR(5),nCnoCHAR(3),nGradeint,nPrimarykey(Sno,Cno);AnIntroductiontoDatabaseSystem例题例题(续)(续)AnIntroductiontoDatabaseSystem三、删除基本表三、删除基本表DROPTABLE;基本表删除数据,表上的索引都删除表上的视图往往仍然保留,但无法引用删除基本表时,系统会从数据字典中删去有关该基本表及其索引的描述(标准中没有,认为表建立后就永久存在)AnIntroductiontoDatabaseSystem例题例题例5删除Student表DROPTABLEStudent;AnIntroductiontoDatabaseSystem二、修改基本表二、修改基本表ALTERTABLEADD完整性约束DROPMODIFY;n:
要修改的基本表nADD子句:
增加新列和新的完整性约束条件nDROP子句:
删除指定的完整性约束条件nMODIFY子句:
用于修改列名和数据类型AnIntroductiontoDatabaseSystem例题例题例2向Student表增加“入学时间”列,其数据类型为日期型。
ALTERTABLEStudentADDScomeDATE;n不论基本表中原来是否已有数据,新增加的列一律为空值。
AnIntroductiontoDatabaseSystem语句格式(续)语句格式(续)n删除属性列直接/间接删除n把表中要保留的列及其内容复制到一个新表中n删除原表n再将新表重命名为原表名直接删除属性列:
(新)例:
ALTERTABLEStudentDropScome;AnIntroductiontoDatabaseSystem例3将年龄的数据类型改为半字长整数。
ALTERTABLEStudentMODIFYSageSMALLINT;n注:
修改原有的列定义有可能会破坏已有数据AnIntroductiontoDatabaseSystem例题例题例4删除学生姓名必须取唯一值的约束。
ALTERTABLEStudentDROPUNIQUE(Sname);AnIntroductiontoDatabaseSystem3.2.2建立与删除索引建立与删除索引n建立索引是加快查询速度的有效手段n建立索引nDBA或表的属主(即建立表的人)根据需要建立n维护索引nDBMS自动完成n使用索引nDBMS自动选择是否使用索引以及使用哪些索引AnIntroductiontoDatabaseSystem一、建立索引一、建立索引n语句格式CREATEUNIQUECLUSTERINDEXON(,);n用指定要建索引的基本表名字n索引可以建立在该表的一列或多列上,各列名之间用逗号分隔n用指定索引值的排列次序,升序:
ASC,降序:
DESC。
缺省值:
ASCnUNIQUE表明此索引的每一个索引值只对应唯一的数据记录nCLUSTER表示要建立的索引是聚簇索引AnIntroductiontoDatabaseSystem例题例题例6为学生-课程数据库中的Student,Course,SC三个表建立索引。
其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。
CREATEUNIQUEINDEXStusnoONStudent(Sno);CREATEUNIQUEINDEXCoucnoONCourse(Cno);CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);AnIntroductiontoDatabaseSystem建立索引建立索引(续(续)n聚簇索引n建建立立聚聚簇簇索索引引后后,基基表表中中数数据据也也需需要要按按指指定定的的聚聚簇簇属属性性值值的的升升序序或或降降序序存存放放。
也也即即聚聚簇簇索索引引的的索索引引项项顺顺序序与与表表中中记记录录的的物物理理顺序一致顺序一致例:
CREATECLUSTERINDEXStusnameONStudent(Sname);在在Student表的表的Sname(姓名)列上建立一个聚簇索引,而姓名)列上建立一个聚簇索引,而且且Student表中的记录表中的记录将按照将按照Sname值的升序存放值的升序存放AnIntroductiontoDatabaseSystem建立索引建立索引(续)(续)n在一个基本表上最多只能建立一个聚簇索引n聚簇索引的用途:
对于某些类型的查询,可以提高查询效率n聚簇索引的适用范围n很少对基表进行增删操作n很少对其中的索引列进行修改操作AnIntroductiontoDatabaseSystem二、删除索引二、删除索引DROPINDEX;n删除索引时,系统会从数据字典中删去有关该索引的描述。
例7删除Student表的Stusname索引。
DROPINDEXStusname;AnIntroductiontoDatabaseSystem3.3查查询询3.3.1概述3.3.2单表查询3.3.3连接查询3.3.4嵌套查询3.3.5集合查询3.3.6小结AnIntroductiontoDatabaseSystem3.3.1概述概述n语句格式SELECTALL|DISTINCT,FROM,WHEREGROUPBYHAVINGORDERBYASC|DESC;AnIntroductiontoDatabaseSystem语句格式语句格式nSELECT子句:
指定要显示的属性列nFROM子句:
指定查询对象(基本表或视图)nWHERE子句:
指定查询条件nGROUPBY子句:
对查询结果按指定列的值分组,该属性列值相等的元组为一个组。
通常会在每组中作用集函数。
nHAVING短语:
筛选出只有满足指定条件的组nORDERBY子句:
对查询结果表按指定列值的升序或降序排序AnIntroductiontoDatabaseSystem示例数据库示例数据库学生-课程数据库n学生表:
Student(Sno,Sname,Ssex,Sage,Sdept)n课程表:
Course(Cno,Cname,Cpno,Ccredit)n学生选课表:
SC(Sno,Cno,Grade)AnIntroductiontoDatabaseSystem3.3查查询询3.3.1概述3.3.2单表查询3.3.3连接查询3.3.4嵌套查询3.3.5集合查询3.3.6小结AnIntroductiontoDatabaseSystem3.3.2单表查询单表查询查询仅涉及一个表,是一种最简单的查询操作一、选择表中的若干列二、选择表中的若干元组三、对查询结果排序四、使用集函数五、对查询结果分组AnIntroductiontoDatabaseSystem1.查询指定列查询指定列例1查询全体学生的学号与姓名。
SELECTSno,SnameFROMStudent;例2查询全体学生的姓名、学号、所在系。
SELECTSname,Sno,SdeptFROMStudent;AnIntroductiontoDatabaseSystem2.查询全部列查询全部列例3查询全体学生的详细记录。
SELECTSno,Sname,Ssex,Sage,SdeptFROMStudent;或SELECT*FROMStudent;AnIntroductiontoDatabaseSystem3.查询经过计算的值查询经过计算的值SELECT子句的为表达式n算术表达式n字符串常量n函数n列别名AnIntroductiontoDatabaseSystem3.查询经过计算的值查询经过计算的值例4查全体学生的姓名及其出生年份。
SELECTSname,2013-SageFROMStudent;输出结果:
Sname2013-Sage-李勇1976刘晨1977王名1978张立1978AnIntroductiontoDatabaseSystem3.查询经过计算的值查询经过计算的值例5查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。
SELECTSname,YearofBirth:
,2013-Sage,LOWER(Sdept)FROMStudent;AnIntroductiontoDatabaseSystem例题(续)例题(续)输出结果:
SnameYearofBirth:
2013-SageLOWER(Sdept)-李勇YearofBirth:
1976cs刘晨YearofBirth:
1977is王名YearofBirth:
1978ma张立YearofBirth:
1977isAnInt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 关系 标准 语言 SQL