DQL语言的学习
一、基础查询
语法
select 查询列表 from 表名;
类似于:System.out.println(打印东西);
特点
1、查询列表可以是:表中的字段、常量值、表达式、函数
2、查询的结果是一个虚拟的表格
起别名
好处
①便于理解
②如果要查询的字段有重名的情况,使用别名可以区分开来
用法
方式一:使用as
SELECT 100%98 AS 结果;
SELECT last_name AS 姓,first_name AS 名 FROM employees;
方式二:使用空格
SELECT last_name 姓,first_name 名 FROM employees;
+号的作用
java中的+号:
①运算符,两个操作数都为数值型
②连接符,只要有一个操作数为字符串
mysql中的+号:
仅仅只有一个功能:运算符
select 100+90; 两个操作数都为数值型,则做加法运算
select ‘123’+90;只要其中一方为字符型,试图将字符型数值转换成数值型
如果转换成功,则继续做加法运算
select ‘john’+90; 如果转换失败,则将字符型数值转换成0
select null+10; 只要其中一方为null,则结果肯定为null
去重
#案例:查询员工表中涉及到的所有的部门编号
SELECT DISTINCT department_id FROM employees;
连接字符串
SELECT
CONCAT(last_name,first_name) AS 姓名
二、条件查询
语法
select
查询列表
from
表名
where
筛选条件;
分类
1.按条件表达式筛选
简单条件运算符:> < = != <> >= <=
2.按逻辑表达式筛选
逻辑运算符:用于连接条件表达式
&& || !
and or not
3.模糊查询
like:
①一般和通配符搭配使用
通配符:
% 任意多个字符,包含0个字符
_ 任意单个字符
SELECT
last_name
FROM
employees
WHERE
last_name LIKE ‘_KaTeX parse error: Expected group after '_' at position 1: _̲%' ESCAPE '’;
between a and b:
①使用between and 可以提高语句的简洁度
②包含临界值
③两个临界值不要调换顺序
in:
含义:判断某字段的值是否属于in列表中的某一项
特点:
①使用in提高语句简洁度
②in列表的值类型必须一致或兼容
③in列表中不支持通配符
#案例:查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
SELECT first_name,job_id FROM employees
WHERE job_id IN(‘IT_PROG’,‘AD_VP’,‘AD_PRES’);
is null:
=或<>不能用于判断null值
is null或is not null 可以判断null值
补充:
IS NULL:仅仅可以判断NULL值,可读性较高,建议使用
安全等与<=> :既可以判断NULL值,又可以判断普通的数值,可读性较低
三、排序查询
语法
select 查询列表
from 表名
where 筛选条件
order by 排序的字段或表达式;
特点
1、asc代表的是升序,可以省略
desc代表的是降序
2、order by子句可以支持 单个字段、别名、表达式、函数、多个字段
3、order by子句在查询语句的最后面,除了limit子句
排序方式
按单个字段排序
SELECT * FROM employees ORDER BY salary DESC;
添加筛选条件再排序
SELECT *
FROM employees
WHERE department_id>=90
ORDER BY employee_id DESC;
按表达式排序
SELECT ,