数据库的运算(三)

一,空值

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 

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,481评论 0 10
  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 9,831评论 0 44
  • 01 ​大前天,下班比较早,就去新华书店借书(本市书店和图书馆的活动,可以在书店借新书,看完还到图书馆),先拿的四...
    职场小能手Sara阅读 558评论 0 3
  • 生活总是会在不经意间,带给你意想不到的惊喜。当然,有些时候可能真的只有惊。。。。 1 昨天晚上网不行,那我说也没关...
    明媚小女子阅读 218评论 0 0
  • 张楚的<<孤独的人是可耻的>>很多年前就听过,没有特别的感觉,但看电视剧<<春风十里不如你>>时候,剧情里出现这首...
    royhsu阅读 419评论 0 0