尚硅谷MySQL学习笔记(Day_1)-DQL语言介绍:条件查询

DQL语言

条件查询

语法:
select
            查询列表
from
            表名
where
            筛选条件;

分类:
一、按条件表达式筛选
             简单条件运算符:> < = != <> >= <=


二、按逻辑表达式筛选 逻辑运算符:
         作用:用于连接条件表达式
            && || !

            and or not
   && 和 and:两个条件都为true,结果为true,反之false
   || 和 or:只要有一个条件为true,结果为true,反之fasle
   !和 not:如果连接的条件本身为false,结果为true,反之为false


三、模糊查询
            like
            between and
            in
            isnull

  • 按条件表达式筛选
#案例一:查询工资>12000的员工信息
SELECT 
 - 
FROM
  employees  
WHERE
  salary > 12000;

在这里插入图片描述

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

在这里插入图片描述

  • 按逻辑表达式筛选
#案例1:查询工资在10000到20000之间的员工名、工资以及奖金
SELECT
	last_name,
	salary,
	commission_pct
FROM
	employees
WHERE
	salary>=10000&&salary<=20000;

在这里插入图片描述

#案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工信息
SELECT
	*
FROM
	employees
WHERE
	#department_id < 90 or department_id > 110 or salary > 15000;
	!(department_id >= 90 AND department_id <=110) OR salary > 15000;

在这里插入图片描述

  • 模糊查询

like
特点:一般和通配符搭配使用
通配符:
%:任意多个字符,包含0个字符
_:任意单个字符

#案例1:查询员工名中包含字符a的员工信息
SELECT
	*
FROM
	employees
WHERE	
	last_name LIKE '%a%';

在这里插入图片描述

#案例2:查询员工名中第三个字符为n,第五个字符为l的员工名和工资
SELECT
	last_name,
	salary
FROM
	employees
WHERE
	last_name LIKE '__n_l%';

在这里插入图片描述

#案例3:查询员工名中第二个字符为_的员工
SELECT
	last_name
FROM
	employees
WHERE
	last_name LIKE '_\_%'#\:转义
	last_name LIKE '_$_%' ESCAPE '$';#指定字符转义

在这里插入图片描述

between and
① 使用between and 可以提高语句的简洁度
② 包含临界值
③ 两个临界值不要调换顺序

#案例一:查询员工编号在100到120之间的员工信息
SELECT
	*
FROM
	employees
WHERE
	employee_id>= 100 AND employee_id<=120;
#--------等同于----------
SELECT
	*
FROM
	employees
WHERE
	employee_id BETWEEN 100 AND 120;

在这里插入图片描述

in
含义:判断某字段的值是否属于in列表中的某一项
特点:
① 使用in提高语句简洁度
② in列表的值类型必须统一或兼容
③ 列表中的值不支持通配符

#案例1:查询员工的工种编号是IT_PROG、AD_VP、AD_PRES中的一个的员工名和工种编号
SELECT
	last_name,
	job_id
FROM 
	employees
WHERE
	job_id='IT_PROG' OR job_id='AD_VP' OR job_id='AD_PRES';
#--------等同于----------
SELECT
	last_name,
	job_id
FROM 
	employees
WHERE
	job_id IN('IT_PROG','AD_VP','AD_PRES');

在这里插入图片描述

is null
= 或 <> 不能用于判断null值
is null 或 is not null 可以判断null值

#案例1:查询没有奖金的员工名和奖金率
SELECT
	last_name,
	commission_pct
FROM
	employees
WHERE
	#commission_pct = NULL #无法判断 = NULL
	#commission_pct IS 12000; #错误 应该用=,IS只与NULL搭配使用
	commission_pct IS NULL;
	#commission_pct IS NOT NULL; #有奖金

在这里插入图片描述

也可以使用: 安全等于 :<=>

SELECT
	last_name,
	commission_pct
FROM
	employees
WHERE
	commission_pct <=> NULL;
#案例2:查询工资为12000的员工信息
SELECT
	last_name,
	salary
FROM
	employees
WHERE
	salary <=> 12000;

在这里插入图片描述

is null<=> 的比较:
    IS NULL:仅仅可以判断NULL值,可读性高,建议使用
    <=>:既可以判断NULL值,又可以判断普通的数值,可读性较低,不建议使用


练习

1.查询员工号为176的员工的姓名和部门号和年薪

SELECT
	last_name,
	department_id,
	salary*12*(1+IFNULL(commission_pct,0)) AS 年薪
FROM
	employees;

在这里插入图片描述


2.比较两串代码执行是否相同

SELECT
	commission_pct,
	last_name
FROM
	employees
WHERE 
	commission_pct LIKE '%%' AND last_name LIKE '%%';
SELECT
	*
FROM
	employees

不同,因为commission_pct 中有NULL值。LIKE ‘%%’ 过滤掉了NULL。
在这里插入图片描述

总结

一、语法 select 查询列表 from 表名 where 筛选条件

二、筛选条件的分类
1、简单条件运算符
< > = <> != >= <= <=>
2、逻辑运算符
&& and
|| or
! not
3、模糊查询
like:一般搭配通配符使用,可以判断字符型或数值型。通配符:%任意多个字符,_任意单个字符
between and
in
is null /is not null:用于判断null值\

普通类型的数值null值可读性
is null×
<=>×
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值