SQL逻辑运算符
SQL 逻辑运算符
运算符 | 描述 |
---|---|
ALL | 所有运算符用于比较的值到另一个值组中的所有值 |
AND | AND运算符允许多个条件的存在,在一个SQL语句中的WHERE子句 |
ANY | ANY运算符用于比较的值在列表中根据任何适用的条件 |
BETWEEN | BETWEEN 运算符用于搜索一组值的范围内的值,给定的最小值和最大值 |
EXISTS | 存在指定的表中符合特定条件的运算符用于搜索存在的一行记录 |
IN | IN操作符用来比较的文字值已指定一个值的列表 |
LIKE | LIKE运算符用于比较相似的值,使用通配符的值 |
NOT | NOT运算符的含义相反的逻辑运算符,它被使用如 NOT EXISTS, NOT BETWEEN, NOT IN 等,这是一个相反的运算符 |
OR | 使用OR运算符结合SQL语句的WHERE子句中的多个条件 |
IS NULL | NULL操作符用来比较NULL的值 |
UNIQUE | 独特的操作符搜索指定的表中的每一行的唯一性(不重复) |
逻辑运算符 ALL
ALL在英文中的意思是“所有”,ALL运算符要求比较的值需要匹配子查询中的所有值。ALL运算符同样不能单独使用,必须和比较运算符共同使用
语法:
SELECT column_name(s)
FROM table_name --表名
WHERE column_name 比较运算符 ALL (结果集)--ALL 运算符不能与固定的集合相匹配
实例
ALL 里的查询语句查询到的结果集是 1 , 2
ALL语义是 ALL运算符要求比较的值需要匹配子查询中的所有值 所以父查询中的结果集会和ALL中的子查询的结果集进行比较,当 都大于时才能输出,也就是说要同时满足大于(看使用的是什么运算符,比如说是= 则是等于)子查询中结果集的所有值
如下图,不满足同时大于子程序的 1 , 2 就没有被上面的结果集输出 只输出了满足条件的 3
逻辑运算符 AND
AND在英文中的意思是“并且”,如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
语法:
SELECT column_name(s)
FROM table_name --表名
WHERE column_name = price1 AND column_name= price2 --需要同时满足两个条件
实例 查找 StudentID小于9并且age=1的
也可以使用多个AND如下实例 查找 StudentID小于9并且age=1并且classID=2的
逻辑运算符 ANY
ANY在英文中的意思是“任何”,ANY运算符要求比较的值需要匹配子查询中的任何值 ANY必须和其他的比较运算符共同使用,而且必须将比较运算符放在ANY 关键字之前
语法
SELECT column_name(s)
FROM table_name --表名
WHERE column_name 比较运算符 ANY(结果集)--ANY 运算符不能与固定的集合相匹配
实例如下 查找
逻辑运算符 BETWEEN
BETWEEN在英文中的意思是“介于…之间”,
语法
SELECT column_name(s)
FROM table_name --表名
WHERE column_name BETWEEN price1 AND price2 --查询满足的条件是 price1~price2 (包括price1,price2 )
实例 查询studentID 为 1~3的(包括1和3)
逻辑运算符 EXISTS
EXISTS在英文中的意思是“存在”,是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字
语法
SELECT column_name(s)
FROM table_name --表名
WHERE EXISTS(SELECT column_name(s)
FROM table_name )
实例 当有studentID=1的同学时,查询所有同学信息
逻辑运算符 IN
IN在英文中的意思是“在内”,
语法
SELECT column_name(s)
FROM table_name --表名
WHERE column_name IN ( price1 ,price2 ,price3 )--price1可以有多个并且可以是任何同种类型
实例,查询studentID为1 , 2 , 3的同学
逻辑运算符 LIKE
LIKE在英文中的意思是“象”,LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。LIKE 可以当=号使用,但不建议这样使用
语法
SELECT column_name(s)
FROM table_name --表名
WHERE column_name LIKE price1 --LIKE 大多数时候是搭配通配符进行模糊筛选 如果不是进行模糊筛选,请使用 =
实例 查询studentID=1的学生 不建议这样使用LIKE
LIKE搭配通配符进行模糊筛选
实例:筛选所有姓林的
逻辑运算符 NOT
NOT在英文中的意思是“不”,否定它之后所跟的任何条件。
可以使用 NOT 操作符对 IN、BETWEEN、EXISTS子句进行取反。
语法
SELECT column_name(s)
FROM table_name --表名
WHERE column_name NOT term --NOT用于对筛选条件进行反选
实例查询出studentID不等于 1,2,3的学生信息
逻辑运算符 OR
OR在英文中的意思是“或”, OR 可在 WHERE 子语句中把多个条件结合起来。如果多个条件中有一个条件满足,则 OR 运算符显示一条记录
语法
SELECT column_name(s)
FROM table_name --表名
WHERE column_name OR (term1 ,term2 ,term3)--term条件可以有多个
实例 查询 StudentID 为1或者为2的学生的学生信息
逻辑运算符 IS NULL
IS NULL在英文中的意思是“判断为空”,
语法
SELECT column_name(s)
FROM table_name --表名
WHERE column_name IS NULL
实例 查询班级为空的学生信息