二、DQL之查询

DQL(Data Query Language):数据查询语言

一、基础查询

1、查询表中的单个字段

SELECT last_name FROM employee;

2、查询表中的多个字段

SELECT last_name, salary, email FROM emploees;

3、查询表中的所有字段

SELECT * FROM employees;

# 4. 查询函数
SELECT VERSION();

# 5. 起别名
/*
	1⃣️、便于理解
	2⃣️、AS 可以省略
*/
SELECT 100%98 AS 结果;
SELECT last_name AS, first_name ASFROM employees;

# 6. 去重
# 栗子:查询员工表中涉及到的所有的部门编号
SELECT DISTINCT department_id FROM employees;

# 7. + 号的作用
/*
	java 中 + 号:
		1⃣️ 运算符,两个操作数都为数值型
		2⃣️ 连接符,只要有一个操作数为字符串
	mysql 中的 + 号:仅仅只有一个功能:运算符
		// 当两个数都为数值型,则做加法运算
		SELECT 100 + 90;  
		// 当其中一方为数值型,试图将字符型数值转换数值型
		// 如果转换成功,则继续做加法,否则将字符型数值转换为 0
		SELECT '123' + 90;   
		SELECT 'john' + 90;
		// 只要有一方为 null ,则结果一定为 null
		SELECT null + 10;
*/
# 栗子:查询员工名和姓连接成一个字段,并显示为姓名
SELECT 
	CONCAT(last_name, first_name) AS 姓名
FROM 
	employees;

二、条件查询

2.1、按条件表达式筛选

条件运算符:> < = != <> >= <=

# 栗子:查询工资 > 12000 的员工信息
SELECT 
	*
FROM 
	employees
WHERE 
	salary > 12000;

# 栗子:查询部门编号不等于 90 号的员工名和部门编号
SELECT 
	last_name,
	department_id
FROM
	employees
WHERE
	department_id <> 90;

2.2、按逻辑表达式筛选

逻辑运算符:and or not

# 栗子:查询工资在 10000 到 20000 之间的员工名、工资以及奖金
SELECT 
	last_name,
	salary,
	commission_pct
FROM 
	employees
WHERE 
	salary >= 10000
AND
	salary <= 20000;
	
# 栗子:查询部门编号不是在 90 到 110 之间,或者工资高于 15000 的员工信息
SELECT 
	*
FROM
	employees
WHERE
	department_id < 90 OR department_id > 110 OR salary > 15000;
	# NOT(department_id >= 90 AND department_id <= 110) OR salary > 15000;

三、模糊查询

  1. like 关键字:
    特点:
    一般和通配符搭配使用:
    %:任意多个字符
    _:任意单个字符
# 栗子:查询员工名中包含字符 a 的员工信息
SELECT
	*
FROM 
	employees
WHERE
	last_name LIKE '%a%';

# 栗子:查询员工名中第三个字符为 e, 第五个字符为 a 的员工名和工资
SELECT
	last_name,
	salary
FROM
	employees
WHERE
	last_name LIKE '__e_a%';
	
# 栗子:查询员工名中第二个字符为 _ 的员工名
SELECT
	last_name
FROM
	employees
WHERE
	last_name LIKE '_\_%';
  1. between and 关键字:
    注意事项:
    1、包含临界值
    2、两个临界值不要调换顺序
栗子:查询员工编号在 100200 之间的员工信息
SELECT 
	*
FROM
	emplyees
WHERE
	employee_id BETWEEN 100 AND 200;
  1. in 关键字:
# 栗子:查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES 中的其中一个的员工名
SELECT 
	last_name
FROM
	employees
WHERE
	job_id in (`IT_PROG`,`AD_VP`,`AD_PRES`);
  1. is null 关键字
/*
= 或 <> 不能用于判断 null 值
is null 或 is not null 可以判断 null 值
*/
# 栗子:查询没有奖金的员工名和奖金率
SELECT 
	last_name,
	commission_pct
FROM
	employees
WHERE
	commission_pct IS NULL;
	# commission_pct IS NOT NUll;

四、排序查询

语法:

SELECT 
	查询列表
FROMORDER BY 排序列表 [ASC|DESC]
/*
	特点:asc 代表的是升序,desc 代表的是降序;如果不写,默认是升序
*/

栗子:

# 查询员工信息,要求工资从高到底排序(降序)
SELECT * FROM employees ORDER BY salary DESC;

# 查询员工信息,要求工资从低到高排序(升序)
SELECT * FROM employees ORDER BY salary ASC;

# 查询员工信息,要求先按工资升序,再按员工编号将序(按多个字段排序)
SELECT 
	*
FROM
	employees
ORDER BY salary ASC, employee_id DESC;
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:设计师小姐姐 返回首页