- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库应用基础剖析
查询 * * SELECT[ALL|DISTINCT]目标列FROM表(或查询) [WHERE条件表达式] [GROUP BY 列名1 HAVING 过滤表达式] [ORDER BY 列名2[ASC|DESC] ] 语法 根据WHERE子句中的表达式,从FROM子句指定的基本表或视图中找出满足条件的记录,再按SELECT子句中的目标列显示数据。如果有GROUP子句,则按列名1的值进行分组,列名1值相等的记录分在一组,每一组产生一条记录。如果GROUP子句再带有HAVING短语,则只有满足过滤表达式的组才予以输出。如果有ORDER BY 子句,则查询结果按列名2的值进行排序 功能 查询语句基本部分 * SELECT [ALL|DISTINCT] 目标列FROM表(或查询) 构成 1 FROM子句指明了从何处查询数据,是必需的,不能省。 2 ALL表示查询结果中可以包含重复的记录,是默认值 3 若FROM子句指定了多个基本表或视图,且列名有相同时,则列名之前应加前缀,格式为:“表名.列名”或“视图名.列名” 4 目标列是“*”表示输出所有的字段 5 目标列中的列名可以是一个使用SQL库函数的表达式 6 目标列格式:列名1[AS列名1],…,列名n [AS列名n] 例:查询所有学生的基本情况 SELECT 学号, 姓名, 性别, 党员, 专业, 出生年月, 照片 FROM students; 因为“*”可以表示所有的字段,所以上述语句可以改为 SELECT * FROM Students 例:查询学生人数、最早出生、最晚出生和系统日期 * * SELECT COUNT(*) AS 总人数, MIN(出生年月) AS 最早出生, MAX(出生年月) AS 最晚出生, DATE() AS 系统日期 FROM students; 查询结果不出现重复记录 * * 查询结果出现重复记录: SELECT专业 FROM Students。 查询结果不出现重复记录: SELECT DISTINCT专业 FROM Students。 查询学生人数和平均年龄 * * SELECT count(学号) AS 总人数, year(date())-year(MIN(出生年月)) AS 最大年龄, year(date())-year(MAX(出生年月)) AS 最小年龄, avg(year(date())-year(出生年月)) AS 平均年龄, date() AS 系统日期 FROM students; where子句 * * 一是选择记录,输出满足条件的记录; 二是建立多个表或查询之间的连接 作用 查询计算机专业学生的学号、姓名和专业 例1 SELECT 学号,姓名,专业 FROM Students WHERE专业=″计算机科学与技术″ 显示所有非计算机专业学生的学号、姓名和年龄 例2 SELECT学号,姓名,Year(Date())—Year(出生年月))AS年龄 FROM Students WHERE专业 ″计算机科学与技术″ order by子句 指定查询结果的排列顺序。ASC表示升序,DESC表示降序。ORDER BY可以指定多个列作为关键字 作用 查询所有党员学生的学号和姓名,并按出生年月从小到大排序。 例 SELECT 学号,姓名 ROM Students WHERE 党员 = True ORDER BY 出生年月 group by和having子句 * * Group by对查询结果进行分组,把某一列的值相同的记录分在一组,一组产生一条记录。没有GROUP BY子句时,HAVING的作用等同于WHERE子句。HAVING后的过滤条件一般都要使用合计函数。 作用 查询选修了2门(包括2门)以上课程的学生的学号和课程数。 例1 SELECT学号,Count(*)AS课程数FROM Scores GROUP BY学号 HAVING Count(*)=2 查询所有课程的成绩在70分以上的学生的学号 例2 SELECT学号FROM Scores GROUP BY学号 HAVING Min(成绩)=70 连接查询 有时需要的数据分布在几个基本表或视图中,此时需要按照某个条件将这些表或视图连接起来,形成一个临时的查询表,然后再对该临时表
文档评论(0)