国开《数据库基础与应用》第四章 4-6-6:ANY格式
4-6-6:ANY格式
使用ANY格式的专门比较式。
使用关键字ANY的专门比较式的语法格式如下:
<列名> <比较符> ANY ( <子查询> )
此 <比较符> 可以是>、>=、<、<=、=、<>等之中的任何一种。此格式中的关键字ANY还可以用SOME代替。另外,还可以省略ANY关键字,或者换为关键字ALL,表示全部和所有的意思。
例9:从教学库中查询出选修了课程名为“C++语言”的所有学生的姓名和成绩。
分析:此查询可以通过单重查询语句处理,只要把学生、课程、选课三个表按对应的主属性等值连接起来,从中选择出课程名为“C++语言”的元组,并从中投影出姓名和成绩字段即可。
此查询还可以采用双重查询语句处理,在外查询中需投影出“学生.姓名”和“选课.成绩”,所以需要对学生和选课关系按照学生号进行等值连接,该查询的筛选条件是选课关系的课程号必须等于“C++语言”课程的课程号,而“C++语言”课程的课程号可以通过对课程关系的子查询求出。
select 姓名,成绩
from 学生 x inner join 选课 y on x.学生号=y.学生号
where 课程号=any(select 课程号 from 课程 where 课程名='C++语言')
由于在此例的子查询中,只有一个值,即'C++语言'课程的课程号,所以,省略关键字ANY,或者换成关键字ALL,都是正确的。
执行此语句后的显示结果如下:
姓名 | 成绩 |
---|---|
王明 | 78 |
张鲁 | 94 |
赵红 | 76 |