在sql语言中有很多命令需要或者可以通过where关键字来筛选符合条件的数据
例如修改数据用到的命令——
【update 表名 set 字段名1=值1, 字段名2=值2,...where 条件;】
例如删除数据用到的命令——
【delete from 表名 where 条件;】
例如查询数据用到的命令——
【select 字段名1, 字段名2... from 表名 where 条件;】
本篇就来归纳一下where关键字之后的条件有哪些类型
条件的逻辑运算符
对于条件可以通过逻辑运算符连接(都是编程基础)
- and:并且,要求连接的条件同时成立,其等价符号是&&
- or:或者,要求连接的条件任意一个成立,其等价符号是||
- not:取反,对条件取相反结果,其等价符号是!
比较运算型
描述:用于筛选某字段在数值上满足的比较条件
特殊的,如果要判断某字段的数据为空,不能写成【where 字段名=NULL】而应写成【where 字段名 is NULL】,即在判断数据为空时应采用【is】关键字而不是【=】符号
符号 | 描述 | 命令样例 |
> | 大于 | select name from users where age>18; |
>= | 大于等于 | select name from users where age>=18; |
< | 小于 | select name from users where age<18; |
<= | 小于等于 | select name from users where age<=18; |
= | 等于 | select name from users where age=18; |
!= | 不等于(等价符号<>) | select name from users where age!=18; |
范围筛选型
描述:本质上和通过逻辑运算符连接的多个比较运算型条件是相同的
例如要写判断范围在[0, 60)的整数的条件,既可以使用条件【where number between 0 and 59】,也可以使用条件【where number >= 0 && number < 60】,但显然后者会比较灵活更容易控制范围
但是这个【in】关键字在筛选多个无规律条件值的情况下确实挺不错的
模糊匹配型
描述:在需要查找数据是否含有指定字符时,通过模糊匹配能够很好完成工作
例如身份证号末尾是X的数据,可以使用模糊匹配条件【where idcard like %X】
模糊匹配的关键字是【like】
它有两个相关匹配符号,分别是【_】(下划线)和【%】(百分号)
一个下划线匹配一个字符,一个百分号匹配任意个字符
例如需要查询姓名为两个字符的数据,可以使用条件【where name like "__"】(用两个下划线匹配两个字符)
例如需要查询身份证号中含有511的数据,可以使用条件【where idcard like "%511%"】(%匹配任意个字符)