《标准语言SQL》PPT课件.ppt
《《标准语言SQL》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《标准语言SQL》PPT课件.ppt(46页珍藏版)》请在装配图网上搜索。
1,3.1SQL概述(了解)3.2SQL数据定义(掌握)3.3SQL数据查询(掌握重点)3.4SQL数据更新(掌握)3.5SQL视图(掌握),第三章关系数据库标准语言SQL,2,一、SQL的发展SQL是StructuredQueryLanguage的缩写,即结构化查询语言,是关系数据库的标准语言。1974年Boyce,在定义基本表时要考虑充分,10,3、删除基本表DROPTABLE表名CASCADE|RESTRICT;,注意:删除基本表时,表中的数据、建立在表上的索引和视图将一并被删除,因此应格外小心。,11,查询是数据库的核心操作。SQL仅提供了唯一的语句SELECT,其使用方式灵活,功能非常丰富。,3.3SQL数据查询,单表查询连接查询嵌套查询集合查询,12,一般格式,SELECTALL|DISTINCT*|目标列FROM基本表(或视图)WHERE条件表达式GROUPBY列名1HAVING内部函数表达式ORDERBY列名2;,3.3SQL数据查询,13,SELECT子句:指定要显示的属性列FROM子句:指定查询对象(基本表或视图)WHERE子句:指定查询条件GROUPBY子句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用集函数。HAVING短语:筛选出只有满足指定条件的组ORDERBY子句:对查询结果表按指定列值的升序或降序排序,14,单表查询仅涉及一个表,是一种最简单的查询操作,有以下五种形式:1、选择表中的若干列(相当于投影运算)2、选择表中的若干元组(相当于选择运算)3、对查询结果排序(运算结果的处理)4、使用集函数(运算结果的处理)5、对查询结果分组(运算结果的处理),一、单表查询,15,1、选择表中的若干列,查询单列查询多列、全部列查询经过计算的值,16,查询指定列(投影),例:查询全体学生的姓名、学号、所在系。SELECTSname,Sno,SdeptFROMStudent;,查询全部列,例:查询全体学生的详细记录。SELECTSno,Sname,Ssex,Sage,SdeptFROMStudent;或SELECT*FROMStudent;,17,查询经过计算的值,SELECT子句的可以为算术表达式、字符串常量、函数、列别名、其他,例:查全体学生的姓名及其出生年份。SELECTSname,2010-SageFROMStudent;,18,消除取值重复的行,相当于投影运算用DISTINCT查询满足条件的元组,相当于选择运算,2、选择表中的若干元组,19,消除取值重复的行,例:假设SC表中有下列数据SnoCnoGrade-9500119295001285950013889500229095002380,(1)SELECTSnoFROMSC;结果:Sno-9500195001950019500295002,(2)SELECTDISTINCTSnoFROMSC;结果:Sno-9500195002,在SELECT子句中使用DISTINCT短语,20,查询满足条件的元组,WHERE子句常用的查询条件,常用的查询条件,21,(1)比较大小,在WHERE子句的中使用比较运算符=,=,!,!=20;,22,(2)确定范围,使用谓词BETWEENANDNOTBETWEENAND例:查询年龄在2023岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;,23,(3)确定集合,使用谓词IN,NOTIN:用逗号分隔的一组取值例12查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。SELECTSname,SsexFROMStudentWHERESdeptIN(IS,MA,CS);,24,(4)字符串匹配,使用谓词NOTLIKEESCAPE:指定匹配模板匹配模板:固定字符串或含通配符的字符串当匹配模板为固定字符串时:可以用=运算符取代LIKE谓词,用!=或运算符取代NOTLIKE谓词。,25,通配符,%(百分号)代表任意长度(长度可以为0)的字符串例:a%b表示以a开头,以b结尾的任意长度的字符串。如acb,addgb,ab等都满足该匹配串。_(下横线)代表任意单个字符例:a_b表示以a开头,以b结尾的长度为3的任意字符串。如acb,afb等都满足该匹配串,26,ESCAPE短语:,当用户要查询的字符串本身就含有%或_时,要使用ESCAPE短语对通配符进行转义。,27,例:查询所有姓刘学生的姓名、学号和性别。SELECTSname,Sno,SsexFROMStudentWHERESnameLIKE刘%;,例:查询姓欧阳且全名为三个汉字的学生的姓名。SELECTSnameFROMStudentWHERESnameLIKE欧阳_;,28,3、对查询结果排序,使用ORDERBY子句可以按一个或多个属性列排序升序:ASC;降序:DESC;缺省值为升序当排序列含空值时ASC:排序列为空值的元组最后显示DESC:排序列为空值的元组最先显示,29,例:查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。SELECTSno,GradeFROMSCWHERECno=3ORDERBYGradeDESC;,结果:SnoGrade-9501095024950079295003829501082950097595014619500255,30,4、使用集函数,六类主要集函数,COUNT统计一列中的(NOTNULL)值的个数COUNT(*)统计元组个数SUM对一列求和(数值型)AVG对一列求平均值(数值型)MAX对一列求最大值MIN对一列求最小值,31,例:查询学生总人数。SELECTCOUNT(*)FROMStudent;例:查询选修了课程的学生人数。SELECTCOUNT(DISTINCTSno)FROMSC;注:用DISTINCT以避免重复计算学生人数。,32,例:计算1号课程的学生平均成绩。SELECTAVG(Grade)FROMSCWHERECno=1;例:查询选修1号课程的学生最高分数。SELECTMAX(Grade)FROMSCWHERCno=1;,33,5、对查询结果分组,使用GROUPBY子句分组细化集函数的作用对象未对查询结果分组,集函数将作用于整个查询结果对查询结果分组后,集函数将分别作用于每个组,34,例:求各个课程号及相应的选课人数。SELECTCno,COUNT(Sno)FROMSCGROUPBYCno;结果可能为:CnoCOUNT(Sno)122234344433548,35,说明:GROUPBY子句的作用对象是查询的中间结果表分组方法:按指定的一列或多列值分组,值相等的为一组使用GROUPBY子句后,SELECT子句的列名列表中只能出现分组属性和集函数,36,使用HAVING短语筛选最终输出结果,例:查询选修了3门以上课程的学生学号。SELECTSnoFROMSCGROUPBYSnoHAVINGCOUNT(*)3;,对于SC中每个Sno的统计值,37,例:查询有3门以上课程是90分以上的学生的学号及(90分以上的)课程数SELECTSno,COUNT(*)FROMSCWHEREGrade=90GROUPBYSnoHAVINGCOUNT(*)=3;,作用范围是整个SC表,作用范围是分组后的统计值,38,只有满足HAVING短语指定条件的组才输出HAVING是选择分组的条件且必须和GROUPBY一起使用库函数只能作用于HAVING和目标列,而不能用于WHERE。HAVING短语与WHERE子句的区别:作用对象不同WHERE子句作用于基本表或视图,从中选择满足条件的元组。HAVING短语作用于组,从中选择满足条件的组。,39,一、插入数据两种插入数据方式1、插入元组2、插入子查询结果,3.4SQL数据更新,40,1、插入单个元组格式:INSERTINTO表名(字段名1,字段名2)VALUES(常量1,常量2);功能:将新元组插入指定表中。,INTO子句指定要插入数据的表名及属性列属性列的顺序可与表定义中的顺序不一致没有指定属性列:表示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致指定部分属性列:插入的元组在其余属性列上取空值VALUES子句提供的值必须与INTO子句匹配值的个数值的类型,41,例:插入一条选课记录(S1,C5)。INSERTINTOSC(S#,C#)VALUES(S1,C5);,42,二、修改数据格式:UPDATE表名SET列名1=表达式1,列名2=表达式2WHERE条件;功能:修改指定表中满足WHERE子句条件的元组,说明:当省略WHERE子句时,修改表中所有记录,否则仅修改满足条件的记录;条件也可以使用子查询。,三种修改方式1、修改某一个元组的值2、修改多个元组的值3、带子查询的修改语句,43,1、修改某一个元组的值,例:将学生95001的年龄改为22岁。UPDATEStudentSETSage=22WHERESno=95001;,44,2、修改多个元组的值,例:将所有学生的年龄增加1岁。UPDATEStudentSETSage=Sage+1;例:将信息系所有学生的年龄增加1岁。UPDATEStudentSETSage=Sage+1WHERESdept=IS;,45,三、删除数据:,DELETEFROM表名WHERE条件;,注意:只能删除表记录,不删除表结构。无条件时,删除全部记录,仅剩一个空表;有条件时删除满足条件的记录。,删除表结构用DROPTABLE,功能:删除指定表中满足WHERE子句条件的元组。WHERE子句:指定要删除的元组;缺省表示要删除表中的所有元组,46,例:删除不及格的学生记录。DELETEFROMSCWHEREG60;,例:删除物理课的全部选课单。DELETEFROMSCWHEREC#=(SELECTC#FROMCWHERECN=物理);,WHERE物理=(SELECTCNFROMCWHEREC.C#=SC.C#);,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 标准语言SQL 标准 语言 SQL PPT 课件
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文