- 1、本文档共60页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
QA 通过ORDER BY子句可以实现查询结果的排序输出,允许按一列或多列排序。 格式: ORDER BY 排序选项1[ASC|DESC][, 排序选项2[ASC|DESC]…] 其中,ASC表示升序排序(缺省方式),DESC表示降序排序。 将列名用含义更明确的别名输出,便于理解,可以通过AS关键字实现。 格式: AS 列别名 功能:将查询输出的列名以列别名输出。其中,列别名若为常字串,则无须加定界符 选课表中按照成绩降序排列。 select 学号,成绩 from 选课 order by 2 desc select 学号,成绩 from 选课 order by 成绩 desc select 学号,成绩 as 考试成绩 from 选课 order by 考试成绩 desc 通过GROUP BY子句可以实现分组查询。 格式: GROUP BY 分组字段名1[,分组字段名2…] [HAVING 过滤条件] 其中,分组字段名可以是表的字段名、字段函数名或标识列的数值型表达式;[HAVING 过滤条件]子句进一步限定分组的条件。 1.group by分组后显示的数据是按同类别中最后一条记录显示(前面total on命令汇总的数据是按同类别中第一条记录进行汇总)。 2.having必须与group by连用 3.先执行where子句,再执行group by,最后执行having 选课表中按照学生平均成绩降序排列 select 学号,avg(成绩) as 平均成绩 from score group by 学号 order by 2 desc select 学号,avg(成绩) as 平均成绩 from score group by 学号 order by 平均成绩 desc select 学号,avg(成绩) as 平均成绩 from score group by 学号 order by 成绩 desc QA SELECT语句可以实现对Visual FoxPro 6.0的4种联接类型的查询: 内部联接(Inner Join) 左联接(Left Outer Join) 右联接(Right Outer Join) 完全联接(Full Join) QA 【例】求选修课程的最高成绩和最低成绩。 select MAX(入学成绩) as 最高分,MIN(入学成绩) as 最低分 from 学生 八、用别名输出列标题(字段名) 按列号排序 按别名排序 九、分组查询(汇总) 在select语句中,where子句是对记录的限定,而Having短语是对分组的限定,where、group by及Having可以同时出现在一个select语句中。三者在select中出现的顺序为:Where—Group by---Having。 记录1 记录2 记录3 记录4 记录5 记录6 记录2 记录4 记录5 记录6 记录2 记录5 记录4 记录6 记录2 记录5 where 限定 Group by 分组 Having 限定 【例】求各门课程的平均成绩。 select 课程号,avg(成绩) from 选课 group by 课程号 结果见下一张幻灯片 【例】求至少选修了2门课程的学生的信息。 select 学生.学号,学生.姓名,选课.课程号 from 学生,选课; where 学生.学号=选课.学号 group by 选课.学号 having count(*)=2 十、多表联接查询 通常有3种方法实现多表联接查询,一是在查询命令中显示地指定联接类型;二是在查询命令中使用WHERE子句;三是使用嵌套查询。 (1)指定联接类型实现多表间的联接查询(能读懂) 格式:SELECT … FROM 表或视图 INNER|LEFT|RIGHT|FULL JOIN 表或视图 ON 联接条件 WHERE … 功能:通过指定的联接类型建立多表间的联接 注意:若SELECT后要查询的列名(字段名)在2个表中都有,则必须采用“表名.字段名”,若字段名唯一,则可仅写出字段名。 【例】显示学生表和选课表中成绩在90分以上的学生姓名、学号、课程号及成绩。 SELECT 学生.学号,姓名,课程号,成绩; FROM 学生 INNER JOIN 选课 ON 学生.学号=选课.学号; WHERE 成绩=90 或 SELECT 学生.学号,姓名,课程号,成绩; FROM 学生 JOIN 选课 ON
文档评论(0)