快速业务通道

SQL数据库完全手册

作者 佚名技术 来源 数据库编程 浏览 发布时间 2012-03-22
个:SELECT,它可与其它语句配合完成所有的查询功能。SELECT语句的完整语法,可以有6个子句。完整的语法如下: SELECT 目标表的列名或列表达式集合 FROM 基本表或(和)视图集合 [WHERE条件表达式] [GROUP BY列名集合 [HAVING组条件表达式]] [ORDER BY列名[集合]…] 整个语句的语义如下:从FROM子句中列出的表中,选择满足WHERE子句中给出的条件表达式的元组,然后按GROUPBY子句(分组子句)中指定列的值分组,再提取满足HAVING子句中组条件表达式的那些组,按SELECT子句给出的列名或列表达式求值输出。ORDER子句(排序子句)是对输出的目标表进行重新排序,并可附加说明ASC(升序)或DESC(降序)排列。 在WHERE子句中的条件表达式F中可出现下列操作符和运算函数: 算术比较运算符:<,<=,>,>=,=,<>。 逻辑运算符:AND,OR,NOT。 集合运算符:UNION(并),INTERSECT(交),EXCEPT(差)。 集合成员资格运算符:IN,NOT IN 谓词:EXISTS(存在量词),ALL,SOME,UNIQUE。 聚合函数:AVG(平均值),MIN(最小值),MAX(最大值),SUM(和),COUNT(计数)。 F中运算对象还可以是另一个SELECT语句,即SELECT语句可以嵌套。 上面只是列出了WHERE子句中可出现的几种主要操作,由于WHERE子句中的条件表达式可以很复杂,因此SELECT句型能表达的语义远比其数学原形要复杂得多。 下面,我们以上面所建立的三个基本表为例,演示一下SELECT的应用: 1.无条件查询 例:找出所有学生的的选课情况 SELECT st_no,su_no FROM score 例:找出所有学生的情况 SELECT* FROM student “*”为通配符,表示查找FROM中所指出关系的所有属性的值。 2.条件查询 条件查询即带有WHERE子句的查询,所要查询的对象必须满足WHERE子句给出的条件。 例:找出任何一门课成绩在70以上的学生情况、课号及分数 SELECT UNIQUE student.st_class,student.st_no,student.st_name,student.st_sex,student.st_age,score.su_no,score.score FROM student,score WHERE score.score>=70 AND score.stno=student.st_no 这里使用UNIQUE是不从查询结果集中去掉重复行,如果使用DISTINCT则会去掉重复行。另外逻辑运算符的优先顺序为NOT→AND→OR。 例:找出课程号为c02的,考试成绩不及格的学生 SELECT st_no FROM score WHERE su_no=‘c02’AND score<60 3.排序查询 排序查询是指将查询结果按指定属性的升序(ASC)或降序(DESC)排列,由ORDER BY子句指明。 例:查找不及格的课程,并将结果按课程号从大到小排列 SELECT UNIQUE su_no FROM score WHERE score<60 ORDER BY su_no DESC 4.嵌套查询 嵌套查询是指WHERE子句中又包含SELECT子句,它用于较复杂的跨多个基本表查询的情况。 例:查找课程编号为c03且课程成绩在80分以上的学生的学号、姓名 SELECT st_no,st_name FROM student WHERE stno IN (SELECT st_no FROM score WHERE su_no=‘c03’ AND score>80 ) 这里需要明确的是:当查询涉及多个基本表时用嵌套查询逐次求解层次分明,具有结构程序设计特点。在嵌套查询中,IN是常用到的谓词。若用户能确切知道内层查询返回的是单值,那么也可用算术比较运算符表示用户的要求。 5.计算查询 计算查询是指通过系统提供的特定函数(聚合函数)在语句中的直接使用而获得某些只有经过计算才能得到的结果。常用的函数有: COUNT(*) 计算元组的个数 COUNT(列名) 对某一列中的值计算个数 SUM(列名) 求某一列值的总和(此列值是数值型) AVG(列名) 求某一列值的平均值(此列值是数值型) MAX(列名) 求某一列值中的最大值 MIN(列名) 求某一列值中的最小值 例:求男学生的总人数和平均年龄 SELECT COUNT(*),AVG(st_age) FROM student WHERE st_sex=‘男’ 例:统

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号