第4章关系数据库语言sql4查询_第1页
第4章关系数据库语言sql4查询_第2页
第4章关系数据库语言sql4查询_第3页
第4章关系数据库语言sql4查询_第4页
第4章关系数据库语言sql4查询_第5页
免费预览已结束,剩余25页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章关系数据库标准语言SQLSQL语言的9个动词SQL语言的9个动词选课系统数据库学生表:Student(Sno,Sname,Ssex,Sage,Sdept)课程表:Course(Cno,Cname,Ccredit)学生选课表:SC(Sno,Cno,Grade)SnoSnameSsexSageSdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19ISStudent学生-课程数据库CourseCnoCnameCcredit1数据库42数学

23信息系统44操作系统35数据结构46数据处理

27PASCAL语言4学生-课程数据库SCSnoCnoGrade95001192950012859500138895002290950023807SQL中查询的分类单表查询连接查询嵌套查询集合查询

Select命令的基本结构:Select

[All|Distinct][TopnExpr[Percent]][Alias.]Select_Item[AsColumn_Name][,[Alias.]Select_Item[AsColumn_Name]...]From

[DatabaseName!]Table[[As]Local_Alias][[Inner|Left[Outer]|Right[Outer]|Full

[Outer]]

JoinDatabaseName!]Table[[As]Local_Alias][OnJoinCondition…][Where

JoinCondition[AndJoinCondition...][And|OrFilterCondition[And|OrFilterCondition...]]][GroupByGroupColumn[,GroupColumn...]][Having

FilterCondition][OrderByOrder_Item[Asc|Desc][,Order_Item[Asc|Desc]...]]

Select命令的基本结构:Select

[All|Distinct][TopnExpr[Percent]][Alias.]Select_Item[AsColumn_Name][,[Alias.]Select_Item[AsColumn_Name]...]From

[DatabaseName!]Table[[As]Local_Alias][[Inner|Left[Outer]|Right[Outer]|Full

[Outer]]

JoinDatabaseName!]Table[[As]Local_Alias][OnJoinCondition…][Where

JoinCondition[AndJoinCondition...][And|OrFilterCondition[And|OrFilterCondition...]]][GroupByGroupColumn[,GroupColumn...]][Having

FilterCondition][OrderByOrder_Item[Asc|Desc][,Order_Item[Asc|Desc]...]]

对查询结果进行排序Select

[All|Distinct][TopnExpr[Percent]][Alias.]Select_Item[AsColumn_Name][,[Alias.]Select_Item[AsColumn_Name]...]From

[DatabaseName!]Table[[As]Local_Alias][[Inner|Left[Outer]|Right[Outer]|Full

[Outer]]

JoinDatabaseName!]Table[[As]Local_Alias][OnJoinCondition…][Where

JoinCondition[AndJoinCondition...][And|OrFilterCondition[And|OrFilterCondition...]]][GroupByGroupColumn[,GroupColumn...]][Having

FilterCondition][OrderByOrder_Item[Asc|Desc][,Order_Item[Asc|Desc]...]]11单表查询-对查询结果排序1使用ORDERBY子句当排序列含空值时ASC:排序列为空值的元组最先显示;DESC:排序列为空值的元组最后显示。[例24]查询选修了2号课程的学生的学号及其成绩,查询结果按分数降序排列。SELECTSno,GradeFROMSCWHERECno='c2'ORDERBYGradeDESC;可以按一个或多个属性列排序,多个属性列时,写在前面的优先排序。升序:ASC;降序:DESC;缺省值为ASC.12单表查询-对查询结果排序2[例25]查询全体学生情况,查询结果按所在系的系名字母升序排列,同一系中的学生按年龄降序排列。SELECT*FROMStudentORDERBYSdeptASC,SageDESC;13对数据进行排序使用ORDERBY子句为结果集中的行排序时,有升序和降序两种。在安装SQLServer时,排序规则已指定“在MicrosoftSQLServer

中,排序规则指定表示每个字符的位模式以及存储和比较字符所使用的规则。”服务器---属性---常规14对数据进行排序除非使用ORDERBY指定顺序,SQLServer并不主动为结果集中的行排序SQLServer缺省地按升序排列ORDERBY子句中指定的列并不一定要出现在选择列表中ORDERBY子句指定的列不能超过8060字节可以按照字段名、计算出的值或表达式进行排序ORDERBY子句不能用于数据类型text或image字段15单表查询-对指定列使用统计函数15类主要集函数计数(计非空字段)COUNT([DISTINCT|ALL]*):统计元组的个数COUNT([DISTINCT|ALL]<列名>):统计一列中值的个数ALL为默认值。

计算一列值的平均值:数值型AVG([DISTINCT|ALL]<列名>)计算一列值的总和:数值型SUM([DISTINCT|ALL]<列名>)求一列值中的最小值

MIN([DISTINCT|ALL]<列名>) 求一列值中的最大值

MAX([DISTINCT|ALL]<列名>)16单表查询-使用集函数2[例26]查询选修课程的学生总人次DISTINCT短语:在计算时要取消指定列中的重复值

ALL短语:不取消重复值

ALL为缺省值SELECTCOUNT(DISTINCTSno)FROMSC;注:用DISTINCT以避免重复计算学生人数SELECTCOUNT(*)FROMSC;[例27]查询选修了课程的学生人数17单表查询-使用集函数3[例28]计算1号课程的学生平均成绩[例29]查询选修1号课程的学生最高分数SELECTAVG(Grade)FROMSCWHERECno='c1';SELECTMAX(Grade)FROMSCWHERECno='c1';

对查询结果进行分组Select

[All|Distinct][TopnExpr[Percent]][Alias.]Select_Item[AsColumn_Name][,[Alias.]Select_Item[AsColumn_Name]...]From

[DatabaseName!]Table[[As]Local_Alias][[Inner|Left[Outer]|Right[Outer]|Full

[Outer]]

JoinDatabaseName!]Table[[As]Local_Alias][OnJoinCondition…][Where

JoinCondition[AndJoinCondition...][And|OrFilterCondition[And|OrFilterCondition...]]][GroupByGroupColumn[,GroupColumn...]][Having

FilterCondition][OrderByOrder_Item[Asc|Desc][,Order_Item[Asc|Desc]...]]19单表查询-对查询结果分组1使用GROUPBY子句分组:将查询结果表按某一列或多列值进行分组,值相等的为一组。作用:细化统计函数的作用对象。未对查询结果分组,统计函数将作用于整个查询结果;对查询结果分组后,统计函数将分别作用于每个组;[例30.1]求各个课程号及相应的选课人数。SELECTCno,COUNT(Sno)FROMSCGROUPBYCno;分组方法:值相等的为一组使用GROUPBY子句后,SELECT子句的列名列表中只能出现分组属性(cno)和集函数。20单表查询-对查询结果分组2SELECTCno,COUNT(Sno)FROMSCGROUPBYCnoHAVINGCOUNT(Sno)>3;

HAVING短语[例30.2]查询选课人数大于3的课程号和选课人数。只有满足HAVING短语指定条件的组才输出21单表查询-对查询结果分组3SELECTSnoFROMSCGROUPBYSnoHAVINGCOUNT(*)>=3;[例30.3]查询选修了3门以上课程的学生的学号或SELECTSnoFROMSCGROUPBYSnoHAVINGCOUNT(sno)>=3;22单表查询-对查询结果分组3SELECTSno,COUNT(*)FROMSCWHEREGrade>=90GROUPBYSnoHAVINGCOUNT(*)>=3;[例31]查询有3门以上课程是90分以上的学生的学号及相应的90分以上的课程数。HAVING短语与WHERE子句的区别:作用对象不同WHERE子句作用于基表或视图,从中选择满足条件的元组。HAVING短语作用于组,从中选择满足条件的组。注意:select语句的执行过程

Select命令的基本结构:Select

[All|Distinct][TopnExpr[Percent]][Alias.]Select_Item[AsColumn_Name][,[Alias.]Select_Item[AsColumn_Name]...]From

[DatabaseName!]Table[[As]Local_Alias][[Inner|Left[Outer]|Right[Outer]|Full

[Outer]]

JoinDatabaseName!]Table[[As]Local_Alias][OnJoinCondition…][Where

JoinCondition[AndJoinCondition...][And|OrFilterCondition[And|OrFilterCondition...]]][GroupByGroupColumn[,GroupColumn...]][Having

FilterCondition][OrderByOrder_Item[Asc|Desc][,Order_Item[Asc|Desc]...]]查询结果的输出以文本格式显示结果;以网格显示结果;将结果保存到文件;查询结果的输出---将结果保存到文件使用into子句将查询后的结果保存到一个新的表中。新表中的列按照查询语句指定的顺序创建。格式:intonew_table1、存储到基本表中例:查询工商系所有学生的信息,并存储到gs_student表中Select*intogs_studentfromstudentWheresdept=‘工商系’说明:在选课系统数据库中,可以看到新建的表:gs_student.2、存储到临时表中例:查询学分为3的所有课程信息,并存储到course3临时表中Select*into#course3fromcoursewherecredit=3说明:在系统数据库tempdb中,可以看到临时表course326SQL查询语句-完整句法Select

[All|Distinct][TopnExpr[Percent]][Alias.]Select_Item[AsColumn_Name][,[Alias.]Select_Item[AsColumn_Name]...]From

[DatabaseName!]Table[[As]Local_Alias][[Inner|Left[Outer]|Right[Outer]|Full

[Outer]]

JoinDatabaseName!]Table[[As]Local_Alias][OnJoinCondition…][Where

JoinCondition[AndJoinCondition...][And|OrFilterCondition[And|OrFilterCondition...]]][GroupByGroupColumn[,GroupColumn...]][Having

FilterCondition][OrderByOrder_Item[Asc|Desc][,Order_Item[Asc|Desc]...]]SELECT子句:指定要显示的属性列;FROM子句:指定查询对象(基本表或视图);WHERE子句:指定查询条件GROUPBY子句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用集函数。HAVING短语:筛选出只有满足指定条件的组ORDERBY子句:对查询结果表按指定列值的升序或降序排序27SQL查询语句-完整句法-执行过程整个语句的执行过程如下:1、读取FROM子句中基本表、视图的数据,执行笛卡尔积操作;2、选取满足WHERE子句中给出的条件表达

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论