关系数据库标准语言--SQL.pptVIP

  • 0
  • 0
  • 约1.72万字
  • 约 92页
  • 2018-03-27 发布于江苏
  • 举报
关系数据库标准语言--SQL

本例也可以用下面的EXISTS嵌套查词表示。 SELECT 学号 FROM 选课 选课1 WHERE 课程号=‘C1’ AND NOT EXISTS ( SELECT 学号 FROM 选课 选课2 WHERE 选课1.学号=选课2.学号 AND 选课2.课程号=‘C2’) 注:SQL Server中没有MINUS运算。也可以使用下面语句完成此查询: SELECT 学号 from 选课 WHERE 课程号=C1 AND 学号 NOT IN( SELECT 学号 FROM 选课 WHERE 课程号=C2) 5. 使用分组和SQL函数查询 SQL函数是综合信息的统计函数,包括计数、求最大值、最小值、平均值、和值等。SQL函数可作为列标识符出现在SELECT子句的目标列或 HAVING子句的条件中。在SQL查询语句中,如果有GROUP BY分组子句,则语句中的函数为分组统计函数;如果没有GROUP BY分组子句,则语句中的函数为全部结果集的统计函数。 基本的SQL函数及功能如下所示。 【例5-31】求学生的总人数。 SELECT COUNT (*) FROM 学生; 【例5-32】求选修了课程的学生人数。 SELECT COUNT(DISTINCT 学号) FROM 选课; 【例5-33】求课程和选修该课程的人数。 SELECT 课程号,COUNT(学号) FROM 选课 GROUP BY 课程号; 【例5-34】求选修课超过3门课的学生学号 SELECT 学号 FROM 选课 GROUP BY 学号 COUNT(*)3 说明:本例使用了HAVING子句,其语义为取组内记录大于3条的组。HAVING子句中的内容为组选择的条件,其子句的条件中必须有SQL函数。换句话讲,如果条件中有SQL函数,必须放在HAVING子句中,且HAVING子句跟在GROUP BY后。 该例不能用下面的方法表示: SELECT 学号 FROM 选课 WHERE COUNT(*)3 GROUP BY 学号; (2) FROM子句 FROM子句用于指明查询的数据源。查询操作需要的数据源指基本表(或视图表)组,表间用“,”分割。如果查询使用的基本表或视图不在当前数据库中,还需要在表或视图前加上数据库名加以说明,即使用“数据库名.表名”的形式表示。如果在查询中需要一表多用,则每种使用都需要一个表的别名标识,并在各自使用中用不同的表别名表示。 定义表别名的格式为“<表名> [as] <别名>”。 (3) WHERE子句 WHERE子句通过条件表达式描述关系中元组的选择条件。DBMS处理语句时,按元组为单位,逐个考察每个元组是否满足条件,将不满足条件的元组筛选掉。 (4) GROUP BY子句 GROUP BY子句的作用是按分组列的值对结果集分组。分组可以使同组的元组集中在一起,也使数据能够分组统计。当SELECT子句后的目标列中有统计函数,如果查询语句中有分组子句,则统计为分组统计,否则为对整个结果集统计。GROUP BY子句后可以带上HAVING子句表达组选择条件,组选择条件为带有函数的条件表达式,它决定着整个组记录的取舍条件。 (5) ORDER BY子句 ORDER BY子句的作用是对结果集进行排序。查询结果集可以按多个排序列进行排序,每个排序列后都可以跟一个排序要求:当排序要求为ASC时,元组按排序列值的升序排序;排序要求为DESC时,结果集的元组按排序列值的降序排列。 2. SELECT语句的操作符 SELECT语句中使用的操作符包括算术操作符、比较操作符、逻辑操作符、组合查询操作符和在字段中出现的其他操作符。下面介绍这5类操作符。 (1) 算术操作符 +(加)、-(减)、*(乘)、 /(除)、%(取余)。 (2) 比较操作符 比较操作符用于测试两个数据是否相等、不等、小于或大于某个值。包括: =(等于)、(大于)、(小于)、=(小于等于)、=(大于等于)、!=(不等于)、(不等于)、!(不大于)和 !(不小于),共9种操作符。 (3) 逻辑操作符 SQL Server中运算符的优先级如下:(由高到低) +(正)、-(负)、~(按位 NOT) *(乘)、/(除)、%(模) +(加)、(+ 串联)、-(减) =,? ,? ,? =,? =,? ,? !=,? !,? ! 比较运算符 ^(位异或)、(位

文档评论(0)

1亿VIP精品文档

相关文档