中国人民大学信息学院计算机系.ppt
《中国人民大学信息学院计算机系.ppt》由会员分享,可在线阅读,更多相关《中国人民大学信息学院计算机系.ppt(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、中国人民大学信息学院计算机系 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第三章第三章 关系数据库标准语言关系数据库标准语言SQL3.1SQL概述3.2数据定义3.3查询3.4数据更新3.5视图3.6数据控制3.7嵌入式SQL3.8小结AnIntroductiontoDatabaseSystem3.1 SQL概述概述nSQL的特点n1.综合统一n2.高度非过程化n3.面向集合的操作方式n4.以同一种语法结构提供两种使用方法n5.语言简洁,易学易用AnIntrod
2、uctiontoDatabaseSystem5.语言简捷,易学易用语言简捷,易学易用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:涉及相应属性列的完
3、整性约束条件n:涉及一个或多个属性列的完整性约束条件AnIntroductiontoDatabaseSystem例题例题 例1建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(20)UNIQUE,SsexCHAR(1),SageINT,SdeptCHAR(15);AnIntroductiontoDatabaseSystem定义基本表(续)定义基本表(续)n常用完整性约
4、束n主码约束:PRIMARYKEYn唯一性约束:UNIQUEn非空值约束:NOTNULLn参照完整性约束PRIMARYKEY与UNIQUE的区别?AnIntroductiontoDatabaseSystem例题例题(续)(续)n例2建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno,Cno)为主码。nCREATETABLESC(nSnoCHAR(5),nCnoCHAR(3),nGradeint,nPrimarykey(Sno,Cno);AnIntroductiontoDatabaseSystem例题例题(续)(续)AnIntroductiontoDa
5、tabaseSystem三、删除基本表三、删除基本表 DROPTABLE;基本表删除 数据、表上的索引都删除表上的视图往往仍然保留,但无法引用删除基本表时,系统会从数据字典中删去有关该基本表及其索引的描述(标准中没有,认为表建立后就永久存在)AnIntroductiontoDatabaseSystem例题例题例5删除Student表DROPTABLEStudent;AnIntroductiontoDatabaseSystem二、修改基本表二、修改基本表ALTERTABLEADD完整性约束DROPMODIFY;n:要修改的基本表nADD子句:增加新列和新的完整性约束条件nDROP子句:删除指定的
6、完整性约束条件nMODIFY子句:用于修改列名和数据类型AnIntroductiontoDatabaseSystem例题例题 例2向Student表增加“入学时间”列,其数据类型为日期型。ALTERTABLEStudentADDScomeDATE;n不论基本表中原来是否已有数据,新增加的列一律为空值。AnIntroductiontoDatabaseSystem语句格式(续)语句格式(续)n删除属性列直接/间接删除n把表中要保留的列及其内容复制到一个新表中n删除原表n再将新表重命名为原表名直接删除属性列:(新)例:ALTERTABLEStudentDropScome;AnIntroduction
7、toDatabaseSystem 例3将年龄的数据类型改为半字长整数。ALTERTABLEStudentMODIFYSageSMALLINT;n注:修改原有的列定义有可能会破坏已有数据AnIntroductiontoDatabaseSystem例题例题 例4删除学生姓名必须取唯一值的约束。ALTERTABLEStudentDROPUNIQUE(Sname);AnIntroductiontoDatabaseSystem3.2.2 建立与删除索引建立与删除索引 n建立索引是加快查询速度的有效手段n建立索引nDBA或表的属主(即建立表的人)根据需要建立n有些DBMS自动建立以下列上的索引nPRIMA
8、RYKEYnUNIQUEn维护索引nDBMS自动完成n使用索引nDBMS自动选择是否使用索引以及使用哪些索引AnIntroductiontoDatabaseSystem一、建立索引一、建立索引 n语句格式CREATEUNIQUECLUSTERINDEXON(,);n用指定要建索引的基本表名字n索引可以建立在该表的一列或多列上,各列名之间用逗号分隔n用指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASCnUNIQUE表明此索引的每一个索引值只对应唯一的数据记录nCLUSTER表示要建立的索引是聚簇索引AnIntroductiontoDatabaseSystem例题例题 例6为学生-
9、课程数据库中的Student,Course,SC三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。CREATEUNIQUEINDEXStusnoONStudent(Sno);CREATEUNIQUEINDEXCoucnoONCourse(Cno);CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);AnIntroductiontoDatabaseSystem建立索引建立索引(续)(续)n唯一值索引n对于已含重复值的属性列不能建UNIQUE索引n对某个列建立UNIQUE索引后,插
10、入新记录时DBMS会自动检查新记录在该列上是否取了重复值。这相当于增加了一个UNIQUE约束AnIntroductiontoDatabaseSystem建立索引建立索引(续)(续)n聚簇索引n建建立立聚聚簇簇索索引引后后,基基表表中中数数据据也也需需要要按按指指定定的的聚聚簇簇属属性性值值的的升升序序或或降降序序存存放放。也也即即聚聚簇簇索索引引的的索索引引项项顺顺序序与与表表中中记记录录的的物物理理顺序一致顺序一致例:CREATECLUSTERINDEXStusnameONStudent(Sname);在在Student表的表的Sname(姓名)列上建立一个聚簇索引,而(姓名)列上建立一个聚
11、簇索引,而且且Student表中的记录表中的记录将按照将按照Sname值的升序存放值的升序存放AnIntroductiontoDatabaseSystem建立索引建立索引(续)(续)n在一个基本表上最多只能建立一个聚簇索引n聚簇索引的用途:对于某些类型的查询,可以提高查询效率n聚簇索引的适用范围n很少对基表进行增删操作n很少对其中的变长列进行修改操作AnIntroductiontoDatabaseSystem二、删除索引二、删除索引 DROPINDEX;n删除索引时,系统会从数据字典中删去有关该索引的描述。例7删除Student表的Stusname索引。DROPINDEXStusname;An
12、IntroductiontoDatabaseSystem3.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子句:对查询
13、结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用集函数。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
14、连接查询3.3.4嵌套查询3.3.5集合查询3.3.6小结AnIntroductiontoDatabaseSystem3.3.2 单表查询单表查询 查询仅涉及一个表,是一种最简单的查询操作一、选择表中的若干列二、选择表中的若干元组三、对查询结果排序四、使用集函数五、对查询结果分组AnIntroductiontoDatabaseSystem查询指定列查询指定列例1查询全体学生的学号与姓名。SELECTSno,SnameFROMStudent;例2查询全体学生的姓名、学号、所在系。SELECTSname,Sno,SdeptFROMStudent;AnIntroductiontoDatabaseSy
15、stem查询全部列查询全部列例3查询全体学生的详细记录。SELECTSno,Sname,Ssex,Sage,SdeptFROMStudent;或SELECT*FROMStudent;AnIntroductiontoDatabaseSystem3.查询经过计算的值查询经过计算的值 SELECT子句的为表达式n算术表达式n字符串常量n函数n列别名n等AnIntroductiontoDatabaseSystem3.查询经过计算的值查询经过计算的值例4查全体学生的姓名及其出生年份。SELECTSname,2000-SageFROMStudent;输出结果:Sname2000-Sage-李勇1976刘晨
16、1977王名1978张立1978AnIntroductiontoDatabaseSystem3.查询经过计算的值查询经过计算的值例5查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。SELECTSname,YearofBirth:,2000-Sage,ISLOWER(Sdept)FROMStudent;AnIntroductiontoDatabaseSystem例题(续)例题(续)输出结果:SnameYearofBirth:2000-SageISLOWER(Sdept)-李勇YearofBirth:1976cs刘晨YearofBirth:1977is王名YearofBirth:
17、1978ma张立YearofBirth:1977isAnIntroductiontoDatabaseSystem例例5.1 使用列使用列别名别名改变查询结果的列标题改变查询结果的列标题SELECTSnameNAME,YearofBirth:BIRTH,2000-SageBIRTHDAY,ISLOWER(Sdept)DEPARTMENTFROMStudent;输出结果:NAMEBIRTHBIRTHDAYDEPARTMENT-李勇YearofBirth:1976cs刘晨YearofBirth:1977is王名YearofBirth:1978ma张立YearofBirth:1977isAnIntro
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国 人民大学 信息 学院 计算机系
限制150内