在 WHERE 子句中,你可以使用任何条件对记录进行过滤。
准备 users 表,并插入数据
# 创建用户表 users
create table users (
id int AUTO_INCREMENT not null primary key ,
name varchar(255) ,
age int ,
job varchar(255) ,
address varchar(255)
);
# 插入数据
insert into users (id, name, age, job, address)
VALUES
(null, '小赵', 18, '高中生', '广州' ),
(null, '小钱', 19, '大学生', '广州' ),
(null, '小孙', 20, '大学生', '广州' ),
(null, '小李', 21, '大学生', '深圳' ),
(null, '小张', 22, '大学生', '深圳' ),
(null, '小吴', 23, '销售', '深圳' ),
(null, '小赵', 24, '商务', '惠州' ),
(null, '小王', 25, '程序员', '惠州' ),
(null, '小冯', 26, '程序员', '惠州' );
符号 | 描述 |
---|---|
AND | 两个条件都成立 |
OR | 两个条件中只要有一个成立 |
NOT | 对条件进行取反操作 |
select * from users where age > 21 and address = '惠州'
select * from users where age > 21 or address = '惠州'
select * from users where not age > 21 and not address = '深圳'
符号 | 描述 |
---|---|
= | 等于 |
<> | 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 != |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
我们以 age 举例
select * from users where age = 21 ;
select * from users where age <> 21 ;
select * from users where age > 21 ;
select * from users where age < 21 ;
select * from users where age >= 21 ;
select * from users where age<= 21 ;
符号 | 描述 |
---|---|
IN | 指定针对某个列的多个可能值 |
NOT IN | 指定针对某个列的多个不可能值 |
select * from users where address in ('广州','惠州')
select * from users where address not in ('广州','惠州')
结果自行练习这里就不做截图了
符号 | 描述 |
---|---|
LIKE | 搜索某种模式 |
NOT LIKE | 搜索某种模式,但不是该模式 |
REGEXP | 满足匹配正则 |
NOT REGEXP | 不满足正则条件 |
like
取address 列中值 包含 广州的数据
select * from users where address like '%广州%'
select * from users where address not like '%广州%'
regexp 正则语法后面单独讲
取address 列中值 包含 广州的数据
select * from users where address regexp '广州'
符号 | 描述 |
---|---|
BETWEEN AND | 指定一个范围,包括两个值 |
NOT BETWEEN AND | 指定一个范围,不包括两个值 |
between and
取 age 列中值 在 20 到 25 之间的数据
select * from users where age between 20 and 25 ;
select * from users where age not between 20 and 25 ;
符号 | 描述 |
---|---|
IS NULL | 指定某个列的值为 NULL |
IS NOT NULL | 指定某个列的值不为 NULL |
再次插入数据
insert into users (id, name, age, job, address)
VALUES
(null, '小陈', 27, '程序员', null );
is null
取address 列中值为 null 的数据
select * from users where address is null ;
is not null
取address 列中值不为 null 的数据
select * from users where address is not null ;
|