[24年单独笔记] MySQL 中的简单查询搜索示例

Work with MySQL < Search_WHERE

WHERE 范围限定在 MySQL 属于核心部分,数据量基本上以万为单位计算,足够任何教程单独开一个专题章节!后面的查询内容基本围绕此展开。

在进行此部分内容学习时,我们推荐你先了解 Linux/Shell 命令是如何运行的,以及它的参数分割(传参)原理!

存入数据库的数据不意味着完全理想、安全,在正式生产环境你必须根据需求确定采用其他安全措施!

请注意,从此开始。我们将对 MySQL 关键词采用二级标题、应用环境采用三级标题的方式进行深入介绍!

sql 复制代码
-- where_init.sql
-- 初始化示例环境
USE maic;
DROP TABLE IF EXISTS info;
CREATE TABLE info
(
    name varchar(32) DEFAULT NULL,
    id_number char(18) NOT NULL,
    tel char(11) DEFAULT NULL
);
INSERT INTO info
VALUES
('小A','020104198008070432','13612312368'),
('小B','020104198002230756','15712312375'),
('小C','010455198912080431','15712312312'),
('小D','030455198912080421',NULL),
('小E','040455198912080421',NULL);
SELECT * FROM info;

-- 注意,这里 maic_user 表已经被更名为 profile
-- 如果忘记如何对表结构更名,请查阅 Frame_Table_MySQL

TRUNCATE profile;
INSERT INTO profile(id,uid,email,pwd,nick)
VALUES
(1,0,'h@maichc.club','xsadw','zomaii'),
(2,1,'he@maichc.club','xsadw','liubin'),
(3,2,'hel@maichc.club','xsadw',NULL),
(4,3,'hell@maichc.club','xsadw',NULL),
(5,4,'hello@maichc.club','xsadw',NULL);

WHERE 拓展介绍

使用 WHERE 意味着装载了一个应用环境,即WHERE关键词后均是应用环境。同时需要引入一个编程概念:任何关键词和应用环境都要附加参数,参数可以是程序返回值、变量或常量!

WHERE 的表达式如下:

sql 复制代码
SELECT ... FROM ... WHERE 范围内的查询条件 {[命令] 命令参数}

无论你是否规定了WHERE范围,以下代码在特定条件下的选择效果等同!

sql 复制代码
-- 提醒 tel 类型 CHAR(11) DEFAULT NULL
SELECT * FROM info WHERE tel;

SELECT * FROM info WHERE tel IS NOT NULL;

WHERE支持的部分运算符如下,你应该能明白科学性编程和业务性编程在指导上的一些大区别:

值得注意的是,逻辑符 必须出现在 常量关键词 前!如 NOT NULLBETWEEN ... AND ...NOT BETWEEN 等诸如此类的例子!
...
AND - [输出]与判断要求的并集`A∪B` OR - [输出]与判断要求的交集`A∩B` NOT - [输出]基于上面取反、补集`∁uA` XOR - [输出]如果结果包含一真、一假返回真,输出。
`+,−,∗,/,=` !=
逻辑运算符
数学运算符
关系运算符

完全查询

sql 复制代码
--- WHERE 实际是一个循环取值的过程
--- 后面表达,运算结果为 True 才会输出 
SELECT * FROM `profile`;

SELECT * FROM `profile`
WHERE TRUE;

SELECT * FROM `profile`
WHERE 1=1;

查询指定字段(列,填写表结构作为命令参数)

sql 复制代码
SELECT nick "昵称 NULL为不可见",email "邮件地址"
FROM profile;

通过数学运算符方式查询

sql 复制代码
SELECT * FROM profile WHERE nick="zomaii";
SELECT * FROM profile WHERE uid=1;

复合式查询

sql 复制代码
--- 限制uid范围
SELECT 
nick AS '用户昵称',
email AS '邮箱地址'
FROM maic.profile
WHERE uid >= 0 AND uid < 4;
--- 多条件限制
SELECT 
nick AS '用户昵称',
email AS '邮箱地址'
FROM maic.profile
WHERE uid >= 0 AND nick IS NOT NULL;

多表查询

反单引号代表将关键词与表结构相分割,单引号或双引号代表字符串别名!

sql 复制代码
-- DISTINCT代表去重复内容
SELECT DISTINCT
info.`name` AS 'info 表格的 name 数据',
`profile`.email AS 邮件
FROM 
maic.info,
maic.`profile`;

最简单的查询学习以及完成,接下来是业务查询内容。

包括但不限于 ORDER BY 的排序 LIMIT x,x的取名次 AVG() 的求平均

以及 LIKE '_','%' 的模糊搜索 和 IN() OR 的选项匹配。

你将会处理 时间、价格-浮点(整数)、字符串、邮箱、电话等,你需要明白匹配这些类型(需求)的表达方式!

相关推荐
Oll Correct2 小时前
实验十六:路由环路问题
网络·笔记
我登哥MVP2 小时前
【Spring6笔记】 - 12 - 代理模式
java·spring boot·笔记·spring·代理模式·aop
我命由我123453 小时前
U 盘里出现的文件 BOOTEX.LOG
运维·服务器·经验分享·笔记·学习·硬件工程·学习方法
九成宫3 小时前
IT项目管理期末复习——Chapter 5 项目范围管理
笔记·项目管理·软件工程
水痕013 小时前
使用sqlSugar来操作mysql数据库
数据库·mysql
呱呱巨基3 小时前
网络基础概念
linux·网络·c++·笔记·学习
fly spider3 小时前
MySQL日志篇
数据库·mysql
一叶飘零_sweeeet3 小时前
MySQL 生产级备份与恢复全攻略:全量 / 增量 / 逻辑 / 物理备份深度拆解 + 误删数据秒级恢复实战
数据库·mysql·数据安全·数据备份
The_Second_Coming3 小时前
MySQL 5.7 学习笔记
笔记·学习·mysql