大家好啊,我是大田。
SQL 中的 DQL 用于查询表中数据,平常最常使用的也是这类语句,今天来做下简单的梳理汇总。
1、简单查询
(1)查询所有数据
# 查询 emp 表中的所有数据
SELECT * FROM emp;
(2)查询指定列数据
# 查询 emp 表中的所有记录,仅显示 id 和 name 字段
SELECT eid,ename FROM emp;
(3)别名查询,使用关键字 as ,可省略 as
# 将所有的员工信息查询出来,并将列名改为中文
SELECT
eid AS '编号',
ename AS '姓名' ,
sex AS '性别',
salary AS '薪资',
hire_date '入职时间',
dept_name '部门名称'
FROM emp;
(4)去重查询 distinct
# 查询一共有几个部门,使用去重关键字 distinct
SELECT DISTINCT dept_name FROM emp;
(5)运算查询:查询结果参与运算
# 将所有员工的工资 +2000 元进行显示
SELECT ename , salary + 2000 FROM emp;
2、条件查询
语法格式:
select 列名 from 表名 where 条件表达式;
(1)比较运算符查询:
-
> 、<、>=、<= 、 <> 、!=
举🌰:
# 查询员工姓名为黄蓉的员工信息
SELECT * FROM emp WHERE ename = '黄蓉';
# 查询薪水价格为5000的员工信息
SELECT * FROM emp WHERE salary = 5000;
# 查询薪水价格不是5000的所有员工信息
SELECT * FROM emp WHERE salary != 5000;
SELECT * FROM emp WHERE salary <> 5000;
# 查询薪水价格大于6000元的所有员工信息
SELECT * FROM emp WHERE salary > 6000;
-
BETWEEN ...AND:显示在某一区间的值
举🌰:
# 查询薪水价格在5000到10000之间所有员工信息
SELECT * FROM emp WHERE salary BETWEEN 5000 AND 10000;
-
IN(集合):集合表示多个值,使用逗号分隔。in中的每个数据都会作为一次条件,只要满足条件就会显示。
举🌰:
# 查询薪水价格是3600或7200或者20000的所有员工信息
SELECT * FROM emp WHERE salary IN(3600,7200,20000);
(2)逻辑运算符查询:
And、&& | 多个条件同时成立 |
Or、|| | 多个条件任一成立 |
Not | 不成立,取反 |
举🌰:
# 查询薪水价格是3600或7200或者20000的所有员工信息
-- 方式1: or
SELECT * FROM emp WHERE salary = 3600 OR salary = 7200 OR salary = 20000;
-- 方式2: in() 匹配括号中指定的参数
SELECT * FROM emp WHERE salary IN(3600,7200,20000);
(3)模糊查询——使用通配符:
% | 表示匹配任意多个字符串 |
_ | 表示匹配一个字符 |
举🌰:
# 查询含有'精'字的所有员工信息
SELECT * FROM emp WHERE ename LIKE '%精%';
# 查询以'孙'开头的所有员工信息
SELECT * FROM emp WHERE ename LIKE '孙%';
# 查询第二个字为'兔'的所有员工信息
SELECT * FROM emp WHERE ename LIKE '_兔%';
# 查询没有部门的员工信息
SELECT * FROM emp WHERE dept_name IS NULL;
# 查询有部门的员工信息
SELECT * FROM emp WHERE dept_name IS NOT NULL;
MySQL 系列往期推荐:
数据库基本概念及MySQL安装
END~
如果大田的文章能给你带来一点点的价值,那就值了,接下来的路一起走吧,静待花开🌹
文 / 大田
2022.03.01,日更的 24/365 天
感谢支持,多多交流