DQL 查询表数据
大家好啊,我是大田。
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
# 查询一共有几个部门,使用去重关键字 distinctSELECT DISTINCT dept_name FROM emp;
(5)运算查询:查询结果参与运算
# 将所有员工的工资 +2000 元进行显示SELECTename , salary +2000FROMemp;
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 天
感谢支持,多多交流