结构化查询语言精选课件.ppt
《结构化查询语言精选课件.ppt》由会员分享,可在线阅读,更多相关《结构化查询语言精选课件.ppt(91页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于结构化查询语言第一页,本课件共有91页5.1 SQL简介简介SQL是Sturctured Query Language(结构化查询语言)的缩写。SQL包含数据查询、数据定义、数据操纵和数据控制等功能。其中查询是SQL语言的重要组成部分。SQL是关系数据库的标准语言,所有的关系数据库管理系统都支持SQL。第二页,本课件共有91页5.1 SQL简介简介SQL语言主要特点:一体化语言高度非过程化语言简洁,易学易用统一的语法格式,不同的工作方式视图数据结构SQL操作的两个基本数据结构对象是:表和视图第三页,本课件共有91页5.2 数据查询数据查询格式:格式:SELECT ALL|DISTINCT,
2、FROM ,WHERE AND 连接条件连接条件 AND|OR AND|OR GROUP By ,分组列分组列HAVING UNION ALL ORDER By ASCENDING|DESCENDING,ASCENDING|DESCENDING 第四页,本课件共有91页5.2 数据查询数据查询INTO|TO FILE ADDITIVE|TO PRINTER|TO SCREEN|into cursor|into table建议:多多操作!来加深印象!第五页,本课件共有91页5.2 数据查询数据查询ALL:在查询结果中包含所有的行(包括重复值)。它是在查询结果中包含所有的行(包括重复值)。它是系统
3、的默认设置。系统的默认设置。DISTINCT:在查询结果中删除重复行在查询结果中删除重复行:当涉及到多表查询时,需要通过别名来区分不同当涉及到多表查询时,需要通过别名来区分不同表文件中的字段。表文件中的字段。:检索项主要是检索项主要是FROM子句中所给出的表文件中的子句中所给出的表文件中的字段名。选中的字段名可以和字段名。选中的字段名可以和SQL函数一起使用。函数一起使用。常用到的函数有:常用到的函数有:平均值函数平均值函数AVG():求一列数据的平均值求一列数据的平均值最小值函数最小值函数MIN():求一列数的最小值求一列数的最小值最大值函数最大值函数MAX():求一列数的最大值求一列数的最
4、大值计数函数计数函数COUNT():求一列中该字段的个数求一列中该字段的个数求和函数求和函数SUM():求一列数的总和求一列数的总和第六页,本课件共有91页5.2 数据查询数据查询FROM:form子句也是命令中不可缺少的成分,用于指定数子句也是命令中不可缺少的成分,用于指定数据来源,其后列出所有要查询的表文件名,可以加上相应的据来源,其后列出所有要查询的表文件名,可以加上相应的别名。别名。WHERE:WHERE是命令可选项,其后各子句含义为:是命令可选项,其后各子句含义为:是指多表文件查询的条件;是指多表文件查询的条件;是指单表是指单表文件的查询条件文件的查询条件.第七页,本课件共有91页5
5、.2 数据查询数据查询GRONP By短语:短语:将查询结果按某一列将查询结果按某一列(或多个列或多个列)的值进行的值进行分组;分组;HAVING子句:子句:HAVING子句,只与子句,只与GROUP By配合使用,配合使用,用于说明分组条件;用于说明分组条件;UNION ALL :说明将两个查询结果合并在一说明将两个查询结果合并在一起输出;若无起输出;若无ALL,重复记录将被自动取消,若有,重复记录将被自动取消,若有ALL表示表示结果全部合并;结果全部合并;第八页,本课件共有91页5.2 数据查询数据查询ORDER By ASC|DESC:ORDER BY子句指定子句指定按哪个字段对查询结果
6、排序按哪个字段对查询结果排序,ASC为升序,为升序,DESC为降序;为降序;第九页,本课件共有91页5.2 数据查询数据查询INTO Destination:指定在何处保存查询结果。如果在同指定在何处保存查询结果。如果在同一个查询中同时包含了一个查询中同时包含了INTO子句和子句和TO子句,则子句,则TO子句不起子句不起作用。如果没有包含作用。如果没有包含INTO子句,查询结果显示在子句,查询结果显示在“浏览浏览”窗窗口中。口中。Destination可以是下列三种子句之一可以是下列三种子句之一DBF TableName|TABLE TableName:将查询结果保存到一个表中,如果指定将查询
7、结果保存到一个表中,如果指定的表已经打开,并且的表已经打开,并且SET SAFETY设置设置为为OFF,则,则VFP在不给出任何警告信息在不给出任何警告信息的情况下改写该表。执行完的情况下改写该表。执行完SELECT语语句后,该表仍然保持打开活动状态。句后,该表仍然保持打开活动状态。CURSOR CursorName:将查询结:将查询结果保存到临时表中。如果指定了一果保存到临时表中。如果指定了一个已打开表的名称,则个已打开表的名称,则VFP产生错产生错误信息。执行完误信息。执行完SELECT语句后,语句后,临时表仍然保持打开,但只读。一临时表仍然保持打开,但只读。一旦关闭临时表,则自动删除它。
8、旦关闭临时表,则自动删除它。ARRAY ArrayName:将查询结果保存到数组中。如果查询将查询结果保存到数组中。如果查询结果中不包含任何记录,则不创建这结果中不包含任何记录,则不创建这个数组。个数组。第十页,本课件共有91页5.2 数据查询数据查询TO FILE FileName ADDITIVE|TO PRINTER PROMPT|TO SCREEN:如果命令中包含了如果命令中包含了TO子句,但没有包括子句,但没有包括INTO子句,则查询结果定向输出到名为子句,则查询结果定向输出到名为FileName的的ASCII码文件、打印机或主窗口。包含码文件、打印机或主窗口。包含ADDITIVE子
9、句使查询结果子句使查询结果追加到所指定的文本文件的内容后面。追加到所指定的文本文件的内容后面。第十一页,本课件共有91页5.2.1 简单查询简单查询简单查询基于单个表,由简单查询基于单个表,由select-from构成无条件查询,构成无条件查询,select-from-where构成条件查询构成条件查询无条件查询无条件查询:select-from构成构成1.查询表中部分字段查询表中部分字段例例5.1查询查询student表中学生的学号和姓名表中学生的学号和姓名select 学号学号,姓名姓名 from student例例5.2 查询查询department表中所有的系名表中所有的系名Selec
10、t 系名系名 from department第十二页,本课件共有91页5.2.1 简单查询简单查询2.使用使用distinct短语短语例例5.3 列出学生表中的班级名称列出学生表中的班级名称(无重复行无重复行)select distinct 班级班级 from student3.查询表中全部字段查询表中全部字段例例5.4 查询学生表中全部字段查询学生表中全部字段select*from student例例5.5 查询查询course表中的所有元组表中的所有元组Select*from courseDistinct:去掉查询结果中去掉查询结果中的重复值的重复值“*”是通配符是通配符,表示所有字段表示
11、所有字段第十三页,本课件共有91页5.2.1 简单查询简单查询条件查询:条件查询:select-from-where结构结构4.简单的条件查询简单的条件查询例例5.6 查询查询1992年年9月月1日以后出生的学生名单日以后出生的学生名单Select 姓名姓名 from student where 出生日期出生日期ctod(“09/01/92”)例例5.7 列出选修课的课程名称和课程号列出选修课的课程名称和课程号Select 课程名课程名,课程号课程号 from course where 课程性质课程性质=“选修选修”例例5.8 查询课程号是查询课程号是0600101,成绩大于成绩大于80分的学
12、生学号及成绩分的学生学号及成绩,且将成绩由高到低列出且将成绩由高到低列出Select 学号学号,成绩成绩 from grade where 课程号课程号=“0600101”and 成绩成绩80 order by 成绩成绩 desc第十四页,本课件共有91页5.2.1 简单查询简单查询4.简单的条件查询简单的条件查询例例5.9 查询查询teacher表中工资多于表中工资多于2200元的职工所在的系号元的职工所在的系号Select distinct 系号 from teacher where 工资2200例例5.10 给出在系号给出在系号“01”或或“02”工作并且工资少于工作并且工资少于3000
13、元的教师编号元的教师编号select 教师编号 from teacher where 工资2200)and(teacher.系号=department.系号)例例5.12找出成绩大于找出成绩大于90分的学生的学号、姓名及成绩。分的学生的学号、姓名及成绩。select student.学号,姓名,成绩 from student,grade where 成绩90 and student.学号=grade.学号或者select s.学号,姓名,成绩 from student s,grade g where 成绩90 and s.学号=g.学号在连接查询中引用两个表的公共字在连接查询中引用两个表的公共
14、字段时,须在公共字段名前添加表名段时,须在公共字段名前添加表名或表别名作为前缀,否则系统会提或表别名作为前缀,否则系统会提示出错。对于只在一个数据表中出示出错。对于只在一个数据表中出现的字段,则无须指定前缀。现的字段,则无须指定前缀。在在select查询的查询的from子句中,可以对子句中,可以对数据表指定别名,数据表指定别名,格式为格式为.,指定别名后,在引用该数据表指定别名后,在引用该数据表的字段时,应以别名作为数据表的前缀。的字段时,应以别名作为数据表的前缀。第十七页,本课件共有91页5.2.2 简单连接查询简单连接查询1.等值连接等值连接例例5.13 查询上官小梅所学课程的课程名及其对
15、应的成绩查询上官小梅所学课程的课程名及其对应的成绩select 姓名,课程名,成绩 from student s,course c,grade g where 姓名=上官小梅 and s.学号=g.学号 and g.课程号=c.课程号对于对于3个表的连接查询,使用个表的连接查询,使用where子句子句指定查询条件时,其形式为指定查询条件时,其形式为:from,where and 第十八页,本课件共有91页5.2.2 简单连接查询简单连接查询2.自连接查询:自连接查询:同一关系与自身进行连接同一关系与自身进行连接例例5.14 找出至少选修找出至少选修0200101号课和号课和0600201号课学
16、生的学号课学生的学号号select x.学号学号 from grade x,grade y where x.学号学号=y.学号学号 and x.课程号课程号=0200101 and y.课程号课程号=0600201第十九页,本课件共有91页5.2.3 嵌套查询嵌套查询在一个select命令的where子句中,如果还出现了另一个select命令,则这种查询称为嵌套查询嵌套查询。Vfp只支持只支持单层单层嵌套查询。嵌套查询。嵌套查询所要求的结果出自一个关系,但相关的条件却涉及多个关系:一般外层查询的条件依赖内层查询的结果,而内层查询与外层查询无关。第二十页,本课件共有91页5.2.3 嵌套查询嵌套
17、查询例例5.15 查询哪些系至少有一个教师的工资为查询哪些系至少有一个教师的工资为2200元。元。select 系名 from department where 系号 in(select 系号 from teacher where 工资=2200)例例5.16 查询所有教师的工资都多于查询所有教师的工资都多于2200元的系的信息。元的系的信息。select*from department where 系号 not in(select 系号 from teacher where 工资=80 and 成绩成绩1992-01-01As的作用是在查询结果中将的作用是在查询结果中将指定列命名为一个新的名
18、称指定列命名为一个新的名称Count(*)是是count()函数的一种特函数的一种特殊形式,用来统计查询结果的记殊形式,用来统计查询结果的记录个数录个数第二十九页,本课件共有91页5.2.6 简单的计算查询(库函数查询)简单的计算查询(库函数查询)例例5.32 查询查询grade表中成绩的最高分、最低分及平均分。表中成绩的最高分、最低分及平均分。select max(成绩成绩)as 最高分最高分,min(成绩成绩)as 最低分最低分,avg(成成绩绩)as 平均分平均分 from grade例例5.33 查询查询grade表中所有选修课的成绩总和表中所有选修课的成绩总和select sum(成
19、绩成绩)from grade where 课程号课程号 in(select 课课程号程号 from course where 课程性质课程性质=选修选修)第三十页,本课件共有91页5.2.7 分组与计算查询分组与计算查询GRONP By短语:短语:将查询结果按某一列将查询结果按某一列(或多个列或多个列)的值进行的值进行分组;分组;HAVING子句:子句:HAVING子句,只与子句,只与GROUP By配合使用,配合使用,用于说明分组条件;用于说明分组条件;第三十一页,本课件共有91页5.2.7 分组与计算查询分组与计算查询例例5.34 查询男女生人数查询男女生人数Select 性别性别,cou
20、nt(*)from student group by 性别性别或或Select 性别性别,count(性别性别)from student group by 性别性别例例5.35 求每个系的教师的平均工资求每个系的教师的平均工资select 系号系号,avg(工资工资)from teacher group by 系号系号例例5.36 求至少有两名教师的每个系的平均工资求至少有两名教师的每个系的平均工资select 系号系号,count(*),avg(工资工资)from teacher group by 系号系号 having count(*)=2Count(*)为每一组的记录个为每一组的记录个数
21、数第三十二页,本课件共有91页5.2.7 分组与计算查询分组与计算查询例例5.37 列出各门课的平均成绩、最高成绩、最低成绩和选课列出各门课的平均成绩、最高成绩、最低成绩和选课人数人数select 课程号课程号,AVG(成绩成绩)AS 平均成绩平均成绩,MAX(成绩成绩)AS 最最高分高分,MIN(成绩成绩)AS 最低分最低分,COUNT(学号学号)AS 选课人数选课人数 from grade group by 课程号课程号例例5.38 列出最少选修二门课程的学生姓名列出最少选修二门课程的学生姓名select 姓名姓名 from student where 学号学号 in(select 学号学
22、号 from grade group by 学号学号 having count(*)=2)第三十三页,本课件共有91页5.2.7 分组与计算查询分组与计算查询例例5.39 求出总分大于求出总分大于180的学生的学号的学生的学号,姓名及总成绩姓名及总成绩select s.学号学号,姓名姓名,sum(成绩成绩)as 总成绩总成绩 from student s,grade g where s.学号学号=g.学号学号 group by g.学号学号 having sum(成绩成绩)180第三十四页,本课件共有91页5.2.8 排序排序ORDER By ASC|DESC:指定将查询结果按哪个指定将查询结
23、果按哪个字段排序字段排序,ASC为升序,为升序,DESC为降序;为降序;例例5.40 对学生表按姓名排序对学生表按姓名排序 Select*from student order by 姓名姓名例例5.41 对对teacher表按工资升序检索出全部教师的信息。表按工资升序检索出全部教师的信息。select*from teacher order by 工资工资例例5.42 先按系号排序,再按工资降序排序输出全部教师信息先按系号排序,再按工资降序排序输出全部教师信息select*from teacher order by 系号系号,工资工资 desc第三十五页,本课件共有91页5.2.8 排序排序显示
24、前几项记录:显示前几项记录:有时只需要查找满足条件的前几个记录,这时可使用top短语格式:TOP nExpr PERCENT说明:nExpr为数字表达式,当不使用PERCENT时,nExpr为1至32767间的整数,说明显示前几个记录;当使用PERCENT时,nExpr是0.01至99.99间的实数,说明显示结果中前百分之几的记录。第三十六页,本课件共有91页5.2.8 排序排序例例5.43 显示显示teacher表工资最高的表工资最高的3位教师的信息位教师的信息select*top 3 from teacher order by 工资 desc例例5.44 显示显示teacher表工资最低的
25、那表工资最低的那20%教师的信息教师的信息select*top 20 percent from teacher order by 工资例例5.45 在grade表中查询成绩最高的5位学生的得分情况。select*top 5 from grade order by 成绩 desc例例5.46 在grade表中查询成绩最低的30%学生的得分情况select*top 30 percent from grade order by 成绩top短语必须和短语必须和order by短语配短语配合起来使用才有效,它不能合起来使用才有效,它不能单独使用单独使用第三十七页,本课件共有91页5.2.9 超连接查询超
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 查询 语言 精选 课件
限制150内