MySQL查询区分大小写?3分钟搞懂匹配规则
在SQL语句中,SQL查询语句站在“C”位,通过等子句从数据库表中检索所需数据,进行数据查询、分析和提取等数据操作。在数据处理的各类场景中,我们都是通过SQL查询语句与数据库交互。所以,我们有必要对常用SQL查询语句做一个分类介绍,由于篇幅...
在SQL语句中,SQL查询语句站在“C”位,通过等子句从数据库表中检索所需数据,进行数据查询、分析和提取等数据操作。在数据处理的各类场景中,我们都是通过SQL查询语句与数据库交互。所以,我们有必要对常用SQL查询语句做一个分类介绍,由于篇幅所限,一些高阶的常用SQL查询语句就没有选入。
一、基础查询1、查询所有列
返回表中所有行的所有字段
SELECT * FROM employees; -- 从employees表查询所有列,*代表所有字段,适合快速查看表数据,生产环境尽量指定列名避免冗余
2、查询指定列
返回表中所有行的指定字段
SELECT id, name, salary FROM employees; -- 查询employees表中所有行的id、name、salary列,仅返回需要的字段,提高效率
3、列别名(AS)
为查询结果的列指定别名,增强可读性
SELECT id AS 员工编号, name AS 姓名, salary 工资 FROM employees; -- AS可省略,为列指定中文别名,适合报表展示
4、移除重复行(单列)
去除指定列的重复值,返回唯一值
SELECT DISTINCT department_id FROM employees; -- 查询所有不重复的部门ID,仅保留department_id列的唯一值
5、移除多列重复行(多列)
当多列组合重复时去重,仅保留唯一组合
SELECT DISTINCT department_id, job_id FROM employees; -- 去除department_id和job_id组合重复的行,两列同时相同才视为重复
6、常量列查询
在结果中添加固定值列,用来标识来源或分类
SELECT id, name, '正式员工' AS 员工类型 FROM employees; -- 新增"员工类型"列,所有行均为固定值"正式员工"
7、计算列(算术运算)
对数值列进行算术计算并返回结果
SELECT id, name, salary, salary * 12 AS 年薪 FROM employees; -- 计算年薪(月薪*12),作为新列返回
8、字符串拼接()
将多个字符串字段拼接为一个字段
SELECT CONCAT(first_name, ' ', last_name) AS 全名 FROM employees; -- 拼接名和姓,中间加空格,适合生成完整名称
9、条件拼接()
使用指定分隔符拼接字符串,自动忽略NULL
SELECT CONCAT_WS('-', year, month, day) AS 日期 FROM orders; -- 用"-"拼接年、月、日,若某字段为NULL则跳过,避免结果为NULL
10、字符串长度()
返回字符串的字节长度
SELECT name, LENGTH(name) AS 名称长度 FROM products; -- 计算商品名称的字节长度,适合校验名称长度是否符合规范
11、字符长度()

返回字符串的字符数量(与编码无关)
SELECT name, CHAR_LENGTH(name) AS 字符数 FROM users; -- 计算用户名的字符个数,如:"张三"返回2,适合限制字符数场景
12、字符串截取()
从指定位置截取字符串的部分内容
SELECT SUBSTRING(phone, 1, 3) AS 区号 FROM customers; -- 从phone列第1位开始,截取3个字符(如:手机号前3位区号)
13、字符串替换()
替换字符串中的指定子串
SELECT REPLACE(email, 'old.com', 'new.com') AS 新邮箱 FROM users; -- 将邮箱中的"old.com"替换为"new.com"
14、大小写转换(UPPER/LOWER)
将字符串转换为全大写或全小写
SELECT UPPER(name) AS 大写名称, LOWER(email) AS 小写邮箱 FROM users; -- 名称转大写,邮箱转小写统一格式
15、空值处理(/)
将NULL值替换为指定默认值
SELECT name, IFNULL(commission_pct, 0) AS 佣金比例 FROM employees; -- MySQL用IFNULL,将NULL佣金比例替换为0
SELECT name, COALESCE(commission_pct, 0) AS 佣金比例 FROM employees; -- 通用函数COALESCE,效果同上,支持多参数
二、条件查询(WHERE)16、等于条件(=)
筛选字段值等于指定值的行
SELECT * FROM employees WHERE department_id = 30; -- 查询部门ID为30的所有员工
17、不等于条件(!= 或 )
筛选字段值不等于指定值的行
SELECT * FROM employees WHERE department_id != 30; -- 查询部门ID不是30的员工,!=和<>功能相同
18、大于条件(>)
筛选字段值大于指定值的行
SELECT * FROM employees WHERE salary > 5000; -- 查询薪资大于5000的员工
19、小于条件(=)
筛选字段值大于或等于指定值的行
SELECT * FROM orders WHERE quantity >= 10; -- 查询订单数量大于等于10的订单
21、小于等于条件(























