3. 查询中使用表达式运算符
  (1) SQL中使用的表达式运算符包括:
 ◆ 算术运算符:+,-,*,/
 ◆ 比较运算符:=,<>,>=,>,<,<=
 ◆ 逻辑运算符:NOT,AND,OR
 ◆ 测试空值:IS NULL,IS NOT NULL
 ◆ 集合运算符:IN,NOT IN,ANY,ALL
 ◆ 模糊查询: LIKE(_ 或 %), NOT LIKE
 ◆ 判断列值是否在指定的区间内:
  BETWEEN … AND …
  NOT BETWEEN … AND …
  (2) 算术运算符和比较运算符的例子
例题  例1:搜索pubs数据库中的title表,返回书的价格打了8折后仍然大于12美元的书名、书的类型和价格。
  USE pubs
  Go
  SELECT title_id , type , price
  FROM titles
  WHERE price * 0.8 >12
  Go

  (3) 使用集合运算符的例子灵活的使用IN,NOT IN,ANY,ALL这些关键字,可以用简洁的语言实现较为复杂的查询,同时整个程序的可读性也会变得更好。
例题  例2:
  Use pubs
  Go
  SELECT au_id, au_lname, au_fname
  FROM authors
  WHERE state IN ('CA','KS','MI','IN')
  Go
例题  例3,查询籍贯是北京、天津和上海来的学生:
  SELECT *FROM student
  WHERE 籍贯 IN ('北京','天津','上海')ORDER BY 籍贯
例题
 例4,查询年龄大于35岁的学生:
  SELECT *FROM student
  WHERE 年龄 >= 35

  (4) 测试空值的查询的例子使用IS操作符测试空值的例子,例如,从STUDENT表中查找学生电话是空值的学生名字和班级号码: SELECT sname, sclass
    FROM STUDENT
    WHERE sphno IS NULL;
  输出结果如下:
   sname sclass
   王 者 JS2001
   赵 良 DZ2001

  (5) 使用逻辑运算符的例子查询所有在美国加利福尼亚州的出版社
   Use pubs
   Go
   SELECT pub_id, pub_name, city, state, country
   FROM publishers
   WHERE country='USA' and state='CA'
   Go
  (6) 进行模糊查询的例子
  在实际的应用中,如果无法给出精确的例子,只能根据较为模糊的情况来查询数据,比如:只知道数据中含有某几个特定的字符,在这种情况下,SQL提供了LIKE子句和通配符进行模糊查询。
  通配符的使用:
 %:表示从0到n个任意字符。
 _:表示单个的任意字符。
 [ ]:表示方括号里面列出的任意一个字符。
 [^]:表示任意一个没有在方括号里面列出的字符

例题例1,查询所有以D开头的作家的名字,如图4-20:

  图4-20查询所有以D开头的作家名字

例题   例2,查询电话号码本中含有5737的电话号码:
   SELECT *FROM calltable
   WHERE callno LIKE '%5735%' ;
例题
  例3,查询电话号码本中最后一位数是8的电话号码:
   SELECT *FROM calltable
   WHERE callno LIKE '%8' ;
例题
  例4,查询所有满足au_id的前两个字母为'72',第四个字母为'-'的作家的姓名和电话号码:
   Use pubs
   Go
   SELECT au_lname ,au_fname, phone, au_id
   FROM authors
   WHERE au_id LIKE'72_-%'
   Go
  如果在LIKE表达式中包含字符%或_,可以采用加上换码字符的方法解决。
例题
  例5,下面的例子将匹配所有以'%'开始并以'%'结束的任意字符串:
  s LIKE 'x%%x%' ESCAPE 'x'ESCAPE 'x' 声明:x作为'x%%x%'的换码字符,x%指的是单独的字符%,x只起标记作用,不再表示字符。
例题
  例6,在SQL中用两个连续的单引号"'"表示一个单独的单引号,下面的例子表示电影名中含有's的电影。
  Title LIKE '%''s%'(7) 指定范围查询的例子例1,查询年龄在20至30之间的学生:
   SELECT *FROM student
   WHERE 年龄 BETWEEN 20 AND 30 ;
例题
  例2,查询年龄不在20至30之间的学生:
   SELECT *FROM student
   WHERE 年龄 NOT BETWEEN 20 AND 30 ;