【 Python 全栈开发 - WEB开发篇 - 31 】where条件查询


一、where条件查询

MySQL 的 where 条件查询是指在查询数据时,通过 where 关键字指定一个条件来限制查询结果的范围。where 条件查询可以根据一个或多个条件来过滤数据,常用的条件包括等于、大于、小于、不等于、范围、模糊查询等。

例如,查询表中 age 大于 18 的数据:

SELECT * FROM table_name WHERE age > 18;

这条语句会查询表 table_name 中所有 age 大于 18 的数据。

另外,where 条件查询还可以使用逻辑运算符ANDOR来组合多个条件,例如:

SELECT * FROM table_name WHERE age > 18 AND gender = 'male';

这条语句会查询表 table_name 中所有 age 大于 18 且 gender 为 male 的数据。

在 where 条件查询中还可以使用通配符%,表示匹配任意字符,例如:

SELECT * FROM table_name WHERE name LIKE '%张%';

这条语句会查询表 table_name 中所有名字中包含 “张” 的数据。

在开始之前,我们先准备一下:
Windows + R 调出运行框,输入 cmd 回车。
输入mysql -u root -p登录,输入密码。

创建数据库:

DROP DATABASE IF EXISTS mydb;
CREATE DATABASE mydb;
USE mydb;

创建 student 表:

CREATE TABLE student (
    id CHAR(6),
    name VARCHAR(50),
    age INT,
    gender VARCHAR(50) DEFAULT 'male'
);

向 student 表插入数据:

INSERT INTO student (id,name,age,gender) VALUES ('01', 'lili', 14, 'male');
INSERT INTO student (id,name,age,gender) VALUES ('02', 'wang', 15, 'female');
INSERT INTO student (id,name,age,gender) VALUES ('03', 'tywd', 16, 'male');
INSERT INTO student (id,name,age,gender) VALUES ('04', 'hfgs', 17, 'female');
INSERT INTO student (id,name,age,gender) VALUES ('05', 'qwer', 18, 'male');
INSERT INTO student (id,name,age,gender) VALUES ('06', 'zxsd', 19, 'female');
INSERT INTO student (id,name,age,gender) VALUES ('07', 'hjop', 16, 'male');
INSERT INTO student (id,name,age,gender) VALUES ('08', 'tyop', 15, 'female');
INSERT INTO student (id,name,age,gender) VALUES ('09', 'nhmk', 13, 'male');
INSERT INTO student (id,name,age,gender) VALUES ('10', 'xdfv', 17, 'female');
INSERT INTO student (id,name,age,gender) VALUES ('12', 'lili', 14, 'male');
INSERT INTO student (id,name,age,gender) VALUES ('13', 'wang', 15, 'female');

1.关系运算符查询

常用的关系运算符如下所示:

关系运算符说明
=等于
<>不等于
!=不等于
<小于
<=小于等于
>大于
>=大于等于

查询年龄大于 15 的学生:

select * from student where age>15;

在这里插入图片描述

2.IN关键字查询

IN关键字用于判断某个字段的值是否在指定集合中。如果字段的值恰好在指定的集合中,则将字段所在的记录将査询出来。

查询 id 为 01、02 的学生:

select * from student where id in ('01','02');

在这里插入图片描述
查询 id 为 01、02 以外的学生:

select * from student where id not in ('01','02');

在这里插入图片描述

3.BETWEEN AND关键字查询

BETWEEN AND用于判断某个字段的值是否在指定的范围之内。如果字段的值在指定范围内,则将所在的记录将查询出来.

查询 14 到 16 岁的学生:

select * from student where age BETWEEN 14 AND 16;

在这里插入图片描述
查询 15 岁到 18 岁以外的学生:

select * from student where age not BETWEEN 15 AND 18;

在这里插入图片描述

4.空值查询

在 MySQL 中,使用 IS NULL 关键字判断字段的值是否为空值。请注意:空值 NULL 不同于0,也不同于空字符串。

查询没有名字的学生(???):

select * from student where name is null;

在这里插入图片描述
(每个学生都有名字)。

查询有名字的学生(???):

select * from student where name is not null;

在这里插入图片描述

5.AND关键字查询

使用AND关键字可以连接两个或者多个查询条件。

查询 15 岁到 18 岁的男同(学):

select * from student where age BETWEEN 15 AND 18 and gender='male';

在这里插入图片描述

6.OR关键字查询

使用OR关键字连接多个査询条件。在使用OR关键字时,只要记录满足其中任意一个条件就会被查询出来。

查询大于 15 岁或是女性的同学:

select * from student where age>15 or gender='female';

在这里插入图片描述

7.LIKE关键字查询

使用LIKE关键字可以判断两个字符串是否相匹配。

普通字符串

查询名字叫 “wang” 的学生:

select * from student where name like 'wang';

在这里插入图片描述

含有%通配的字符串

%用于匹配任意长度的字符串。例如,字符串 “a%” 匹配以字符 a 开始任意长度的字符串。

查询姓 “li” 的学生:

select * from student where name like 'li%';

在这里插入图片描述
查询名字以 “g” 结尾的学生:

select * from student where name like '%g';

在这里插入图片描述

含有_通配的字符串

_通配符只匹配单个字符,如果要匹配多个字符,需要连续使用多个下划线通配符。例如,字符串 “ab_” 匹配以字符串 “ab” 开始长度为 3 的字符串,如 abc、abp 等等;字符串 “a__d” 匹配在字符 “a” 和 “d” 之间包含两个字符的字符串,如 “abcd”、“atud” 等等。

查询名字以 zx 开头且长度为 4 的学生:

select * from student where name like 'zx__';

在这里插入图片描述
查询名字以 g 结尾且长度为 4 的学生:

select * from student where name like '___g';

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值