-- 查询结果中存在相同内容,第二个数据不要
select distinct MANAGER_ID
from t_employees;
-- 不去重
select MANAGER_ID
from t_employees;
1.1.4 字段别名
规则
效果
asc
指定条件升序
desc
指定条件降序
-- 基本格式
select fieldName from tbName order by fieldName asc/desc;
-- 在查询结果展示中,按照执行的字段作为标记完成升序和降序
1.2排序查询order by
1.2.1 单一条件排序
select EMPLOYEE_ID, FIRST_NAME, SALARY -- 查询展示的字段有哪些
from t_employees -- 从哪里查询
order by SALARY asc ; -- order by 指定字段要求排序 升序
select EMPLOYEE_ID, FIRST_NAME, SALARY -- 查询展示的字段有哪些
from t_employees -- 从哪里查询
order by SALARY desc ; -- order by 指定字段要求排序 降序
1.2.2 多字段条件排序
-- 第一条件是工资降序,当第一条件出现一致情况下,使用第二条件进行二次排序
select EMPLOYEE_ID, FIRST_NAME, SALARY -- 查询展示的字段有哪些
from t_employees -- 从哪里查询
order by SALARY desc, EMPLOYEE_ID desc; -- order by 指定字段要求排序 工资降序 ID降序
1.3 条件查询 where
1.3.1 基本格式
select fieldName from tbName where condition;
-- 从指定数据表中,按照where之后指定条件,查询对应的字段数据
-- where条件是一个是一个boolean类型结果
-- 查询在员工表内容,工资大于10000 对应的id号,名,和工资
select EMPLOYEE_ID, FIRST_NAME, SALARY
from t_employees
where SALARY > 10000;
-- 查询在员工表内容,工资大于10000 对应的id号,名,和工资
select EMPLOYEE_ID, FIRST_NAME, SALARY
from t_employees
where SALARY >= 10000;
-- 查询在员工表内容,部门ID不等于80 对应的id号,名,工资和部门ID
select EMPLOYEE_ID, FIRST_NAME, SALARY, DEPARTMENT_ID
from t_employees
where DEPARTMENT_ID <> 80;
-- 查询在员工表内容,部门ID不等于80 对应的id号,名,工资和部门ID
select EMPLOYEE_ID, FIRST_NAME, SALARY, DEPARTMENT_ID
from t_employees
where DEPARTMENT_ID != 80;
1.3.4 逻辑判断(and, or, not)
-- 查询在员工表内容,要求工资大于10000并且部门编号为80 对应的ID号,名,工资和部门ID
select EMPLOYEE_ID, FIRST_NAME, SALARY, DEPARTMENT_ID
from t_employees
where SALARY > 10000 and DEPARTMENT_ID = 80;
-- 查询在员工表内容,要求工资小于2500或者部门编号为90 对应的ID号,名,工资和部门ID
select EMPLOYEE_ID, FIRST_NAME, SALARY, DEPARTMENT_ID
from t_employees
where SALARY < 2500 or DEPARTMENT_ID = 90;
1.3.5 区间 between and
-- 要求between min and max 在min <==> max范围以内,而且要求小值之前,大值不然会报
-- 错,这里区间范围是包含指定的边界
-- 区间范围
select EMPLOYEE_ID, FIRST_NAME, SALARY
from t_employees
where SALARY between 8000 and 10000;
1.3.6 NULL值判断
-- is null 指定当前的字段是null
-- is not null 指定当前字段不是null
-- 找出所有提成为null的数据
select FIRST_NAME, COMMISSION_PCT
from t_employees
where COMMISSION_PCT is null;
-- 找出所有提成不是null的数据
select FIRST_NAME, COMMISSION_PCT
from t_employees
where COMMISSION_PCT is not null;
1.3.7 枚举查询 in
-- 查询部门编号为60, 70, 90员工名字和对应部门编号
-- in查询效率较低,推荐使用多条件拼接完成查询操作
select FIRST_NAME, DEPARTMENT_ID
from t_employees
where DEPARTMENT_ID in(70, 60, 90);
1.3.8 模糊查询 like
-- LIKE
-- _ 匹配一个字符
-- % 匹配任意长度字符
-- 查询FIRST_NAME,要求FIRST_NAME字段D字母开头后面有4个字符
select FIRST_NAME
from t_employees
where FIRST_NAME like 'D____';
-- -- 查询FIRST_NAME,要求FIRST_NAME字段带有D字母就可以,而且不区分大小写
select FIRST_NAME
from t_employees
where FIRST_NAME like '%D%';
1.3.9 分支结构查询
case
when condition1 then ret1
when condition2 then ret2
when condition3 then ret3
end
-- 从case开始,到end结束。满足条件对应一个结果,类似于Java中的switch case
-- 查询姓名,工资已经对应工资划分的等级LEVEL
select FIRST_NAME, SALARY,
case
when SALARY >= 10000 then 'A'
when SALARY >= 8000 and SALARY < 10000 then 'B'
when SALARY >= 6000 and SALARY < 8000 then 'C'
when SALARY >= 4000 and SALARY < 6000 then 'D'
else 'E'
end as 'LEVEL'
from t_employees;