where查询条件的指定,between and,in,like

某些查询条件
确定范围 between and,not between and
确定集合 in,not in
字符匹配 like,not like
空值 is null,is not null
多重条件 and,or,not

1。确定范围

     查询年龄在(不在)21到24之间的学生姓名,年龄。

   select sn,age from s where age between 21 and 24  (select sn,age from s where age not between 21 and 24)

2.确定集合

   查询是(不是)信息系、自动化系和计算机系的学生的姓名

   select sn from s where dept in ('信息系',‘自动化系’,‘计算机系’)  ( select sn from s where dept not in ('信息系',‘自动化系’,‘计算机系’)) 

  in谓词实际上是多个or运算符的缩写

3.字符匹配

   查询名字中第二个字为“阳”字的学生的姓名。

   select sn  from where sn like '_阳%'     查询结果 :季阳,季阳春,季阳春春

  换码字符 :escape 对通配符(%,_,[],[^])进行转义

  查询d_n课程的课程名和学分

select cno,ct from c where cn like ‘d\_n’ escape '\'

escape'\'短语表示“\“为换码字符,这样匹配串中紧跟在\后面的字符”_“不再具有通配符的含义,而是取其本身字符含义,即被转义为普通的”_“字符

4.空值的查询

查询所有有(缺少)成绩的学生的学号和相应的课程号

select sno,cno from sc where score is not null  (select sno,cno from sc where score is  null)

5.多重条件查询

 and、or、not可连接多个查询条件。优先级:not>and>or。可用括号改变运算的优先顺序。

查询计算机系年龄21以下的学生姓名。

select sn from where dept='计算机系' and age<21

  查询信息系、自动化系和计算机系的学生的姓名

select sn,sex from where dept='计算机系' or dept='自动化系' or dept='信息系'

select sn,sex from where not (dept <>'计算机系' and dept<>'自动化系' and dept<>'信息系')

posted @ 2011-12-28 13:58  偶不是大叔  阅读(5575)  评论(0编辑  收藏  举报