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

news/2024/11/17 20:19:53/

文章目录

  • 一、where条件查询
    • 1.关系运算符查询
    • 2.IN关键字查询
    • 3.BETWEEN AND关键字查询
    • 4.空值查询
    • 5.AND关键字查询
    • 6.OR关键字查询
    • 7.LIKE关键字查询
      • 普通字符串
      • 含有%通配的字符串
      • 含有_通配的字符串


一、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';

在这里插入图片描述


http://www.ppmy.cn/news/300604.html

相关文章

深度学习的低秩优化:在紧凑架构和快速训练之间取得平衡(上)

论文出处&#xff1a;[2303.13635] Low Rank Optimization for Efficient Deep Learning: Making A Balance between Compact Architecture and Fast Training (arxiv.org) 由于篇幅有限&#xff0c;本篇博客仅引出问题的背景、各种张量分解方法及其分解FC/Conv层的方法&#x…

Pytest 分组测试

有时候需要针对不同的测试环境跑不同的测试用例&#xff0c;如&#xff1a;冒烟测试、sit、uat、prd&#xff0c;所以给自动化测试用例做标记分组是很有必要的&#xff0c;pytest.mark 可以轻松实现这个功能。首先需要注册自定义标记。 注册marks 有3中方法注册marks&#xf…

死锁细究!

一、死锁的定义&危害 1、死锁是什么 发生在并发中互不想让&#xff1a;当两个&#xff08;或更多&#xff09;线程&#xff08;或进程&#xff09;相互持有对方所需要的资源&#xff0c;又不主动释放&#xff0c;导致所有人都无法继续前进&#xff0c;导致程序陷入无尽的…

解决Mac OS CPU频繁发热,风扇狂暴的问题 By 降低睿频,关闭 Turbo Boost。

1 起因 之前刚买回来Mac&#xff0c;就发现有时候CPU莫名超过100%&#xff0c;风扇也会快速响起来。特征如下&#xff1a; 打开活动监视器&#xff0c;若干个进程超过100%&#xff0c;包括但不限于&#xff1a; googleChrome helper finder oneDrive weChat flash … 最近因为…

STM32F103c8t6超频

STM32F103c8t6超频 STM32F103C8T6官方说的主频为72MHz。但为了好奇&#xff0c;我决定去网上买一个STM32f103最小系统进行超频。如下图所示&#xff1a; 像上图这种最小系统&#xff0c;一般都有一个LED灯&#xff0c;接在STM32的PC13上。一开始&#xff0c;我想通过LED的闪烁…

你会CPU超频?这些CPU超频注意事项你都做到了吗?

CPU是电子计算机的主要设备之一&#xff0c;CPU 是对计算机的所有硬件资源(如存储器、输入输出单元) 进行控制调配、执行通用运算的核心硬件单元。为增进大家对CPU的认识&#xff0c;本文将对CPU超频注意事项予以介绍。如果你对CPU具有兴趣&#xff0c;不妨继续往下阅读哦。 1…

传奇怎么修改服务器启动天数,传奇服务端加入有天数会员系统方法

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 传奇服务端加入有天数会员系统方法 会员系统主要用来对一些加盟玩家的特殊控制。可以用IP地址&#xff0c;登录帐号&#xff0c;角色名&#xff0c;之类的为标志控制。 相关脚本命令 设置会员类型&#xff1a;SETMEMBERTYPE 设置会…

奇数前,偶数后排序

void move(int *arr,int sz) { int left 0; int right sz - 1; while (left < right)//left必须小于right 防止指针越界 { //从左边找偶数 while (left < right && arr[left] % 2 1) { left; } …