一、[DQL_条件查询]
### --- 条件查询 ——> 如果查询语句中没有设置条件,就会查询所有的行信息,在实际应用中, ——> 必须指定查询条件,过滤记录 ——> 语法格式 ——> select 列名 from 表名 where 条件表达式 ——> * 首先取出表中的每个数据,返回符合条件的数据,过滤掉不满意的数据 ——> 运算符
二、比较运算符
运算符 | 说明 |
> < <= >= = <> != | 大于、小于、大于等于,不等于 |
BETWEEN ...AND... |
在一定范围内显示的值
例如: 2000-10000之间: Between 2000 and 10000
|
IN(集合) |
集合表示多个值,用逗号分隔,例如: name in (悟空,八戒)
in每个数据都将作为一个条件显示,只要满足条件
|
LIKE '%张%' | 模糊查询 |
IS NULL | 查询某一列NULL的值, 注: 不能写 = NULL |
三、逻辑操作符
运算符 | 说明 |
And && | 多个条件同时成立 |
Or || | 任何条件都成立 |
Not | 不成立,取反。 |
四、需求一:
### --- 需求1: # 查询员工姓黄蓉的员工信息 # 员工信息查询工资5000 # 查询工资价格不是5000的员工信息 # 查询工资超过6000元的所有员工信息 # 在5000到10000之间查询所有员工信息 # 工资价格为3600或7200或20000
### --- 代码实现 # 查询员工姓黄蓉的员工信息 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; # 在5000到10000之间查询所有员工信息 SELECT * FROM emp WHERE salary BETWEEN 5000 AND 10000; # 工资价格为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);
五、需求二:
### --- 需求2: # 查询所有含有精字的员工信息 # 以孙开头查询所有员工信息 # 查询所有员工信息的第二个字是兔子 # 没有部门的员工信息 # 查询部门员工信息
六、模糊查询 通配符
通配符 | 说明 |
% | 表示匹配任何多个字符串, |
_ | 表示匹配 一个字符 |
# 查询所有含有精字的员工信息 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 = NULL;
# 查询有部门的员工信息
SELECT * FROM emp WHERE dept_name IS NOT NULL;
七、sql语句
1、sql语句
/*
条件查询
语法格式: select 列名 from 表名 where 条件表达式
比较运算符
> < <= >= = <> !=
BETWEEN ...AND...
IN(集合)
LIKE
IS NULL
逻辑运算符
And
Or
Not
*/
# 查询员工姓名为黄蓉的员工信息
-- 1.查哪张表 2.查哪些字段 3.查询条件
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;
# 查询薪水价格在5000到10000之间所有员工信息
SELECT * FROM emp WHERE salary BETWEEN 5000 AND 10000;
SELECT * FROM emp WHERE salary >= 5000 AND salary <= 10000;
# 查询薪水价格是3600或7200或者20000的所有员工信息
SELECT * FROM emp WHERE salary = 3600 OR salary = 7200 OR salary = 20000;
-- 方式2 使用 in() 匹配括号中的参数
SELECT * FROM emp WHERE salary IN(3600,7200,20000);
/*
like '_精'
% 通配符 ,表示匹配任意多个字符串
_ 通配符 ,表示匹配一个字符
*/
# 查询含有'精'字的所有员工信息
SELECT * FROM emp WHERE ename LIKE '%精%';
# 查询以'孙'开头的所有员工信息
SELECT * FROM emp WHERE ename LIKE '孙%';
# 查询第二个字为'兔'的所有员工信息
SELECT * FROM emp WHERE ename LIKE '_兔%';
# 查询没有部门的员工信息
-- select * from emp where dept_name = null; 错误方式
SELECT * FROM emp WHERE dept_name IS NULL;
# 查询有部门的员工信息
SELECT * FROM emp WHERE dept_name IS NOT NULL;
-- 条件查询 先取出表中的每条数据,满足条件的就返回,不满足的就过滤.