数据库的运算(三)

2018-05-30  本文已影响0人  箭头_7a49

一,空值

1.unknown ,比如1 < null 的结果不知道是什么,所以将SQL将涉及任何空值的比较定为unknown。

true or unknown 的结果是 true

true and unknown 的结果是 unknown

not unknown 的结果是 unknown

例如:找出instructor关系中salary为空值的所有教师,select name from instructor where salary is null;

是 is null 不是 = null

2.查询数据库中的数据并去重。例如:查询2018年选了至少一门选修课的学生的数量,其中有的学生选了多门课程,所以需要去掉重复的数据 。SELECT COUNT(DISTINCT `name`) FROM `student` WHERE `year` = 2018; 根据学生姓名去重。

3.having子句,having子句中的谓词在形成分组后才起作用,因此可以使用聚集函数。例如,查询平均年龄大于20的班级 SELECT className, AVG(age) FROM `student` GROUP BY className HAVING AVG(age) > 20

4.集合成员资格 in 与not in

例如:查询在2017和2018年同时开课的课程。select distinct course from table where year = 2017 and course in (select course  from table where year = 2018)

例如:查询在2017年开课但不在2018年开课的课程。select distinct course from table where year = 2017 and course not in (select course from table where year = 2018)

例如:查询名字既不叫jim 也 不叫jack 的学生的名字。select name from table where name not in ('jim','jack')

5.集合的比较 some。 =some 等价于 in

例如:找出满足下面条件的所有教师的名字,他们的工资至少比较比计算机系的某一教师的工资要高。

第一种写法,select 

上一篇 下一篇

猜你喜欢

热点阅读