SQL语句(九)使用特殊关系运算符查询

时间:2023-03-10 04:22:35
SQL语句(九)使用特殊关系运算符查询

使用特殊关系运算符查询

  • 特殊关系运算符

    IN、NOT IN
    IS NULL、IS NOT NULL
    BETWEEN、NOT BETWEEN
    LIKE、NOT LIKE
  • IN , NOT IN

    • IN 在集合中

    • NOT IN 不在集合中

    • 例1 查询籍贯是陕西、河南的学生

      SELECT * FROM Student
      WHERE province IN('陕西', '河南')
       
    • 例2 查询籍贯不是是陕西和河南的学生

      SELECT * FROM Student
      WHERE province NOT IN('陕西', '河南')
      --IN(11,12,13), IN('2015-10-1','2016-10-1'), 用逗号隔开的数据类型应该和IN前面的类型相同
  • IS NULL, IS NOT NULL

    • IS NULL 是空

    • IS NOT NULL 不是空

    • 例3 查询没填电话号码的学生

      SELECT * FROM Student
      WHERE stel is NULL
    • 例4 查询填了电话号码的学生

      SELECT * FROM Student
      WHERE stel is NOT NULL
  • BETWEEN, NOT BETWEEN

    • BETWEEN AND, 在两值之间

    • NOT BETWEEN AND, 不在两值之间

      • 两值可以是数值、字符串或日期型数据

    • BETWEEN 起始值 AND 终止值

    • NOT BETWEEN 起始值 AND 终止值

    • 例5 查询年龄在18到20岁的学生信息

      SELECT * FROM Student
      where sage BETWEEN and
    • 例6 查询年龄小于18岁或大于20岁的学生信息

      SELECT * FROM Student
      WHERE sage NOT BETWEEN and
    • 注意:
      1. 区间是闭区间 
      2. 两值的类型可以是数值、字符串或日期型 
      3. 日期作终止值时,不包括终止值那天.
  • LIKE, NOT LIKE

    • 实现模糊匹配查询

      • LIKE 字符串

      • NOT LIKE 字符串

        • %,匹配0个或多个任意字符

        • _ , 匹配一个任意字符

        • [],匹配集合中的任意一个字符 [ABC]

        • [^],不匹配集合中的任何字符 [^ABC]

      • 例7 查询姓'陈'的同学信息

        SELECT * FROM Student
        WHERE sname LIKE '陈%'
      • 例8 查询名字中含有“雨”的同学的信息

        SELECT * FROM Student
        WHERE sname LIKE '%雨%'
      • 例9 查询姓“郑”的,且名字为两个字的同学的信息

        SELECT * FROM Student
        WHERE sname LIKE '郑_'
      • 例10 查询姓为赵、钱、孙、李的同学的信息

        SELECT * FROM Student
        WHERE sname LIKE '[赵钱孙李]%'
      • 例11 查询姓不是赵、钱、孙、李的同学的信息

        SELECT * FROM Student
        WHERE sname LIKE '[^赵钱孙李]%'

SQL语句(九)使用特殊关系运算符查询