MySQL案例——条件查询

查询回顾

SELECT * FROM departments;#部门表
SELECT * FROM employees;#员工表
SELECT * FROM jobs;#工种表
SELECT * FROM locations;#位置表

#查询语句
#起别名

#举例:查询employees员工表中员工的姓与名
SELECT last_name AS,first_name ASFROM employees;
SELECT last_name 姓,first_name 名 FROM employees;

起别名好处:
1、便于理解字段的意思
2、(表连接中)如果你要查询的字段有重名的
情况,使用别名就可以将他们区分开来

起别名的方式:
方式一:使用AS select 字段名 as 别名 from 表名;
方式二:使用空格 select 字段名 别名 from 表名;

#特殊情况
案例:查询email,显示的名称为 out put;
SELECT email AS ‘out#put’ FROM employees;
#如果别名中含有空格、#等特殊符号,最好用双引号将别名包起来

#去重 关键字 distinct

语法:select distinct 字段名 from 表名;

#案例:查询employees表中的job_id

SELECT DISTINCT job_id FROM employees;

#查询employees表中不重复的字段salary,显示名称为薪水

SELECT DISTINCT salary 薪水 FROM employees;

#条件查询 关键字 where

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

筛选条件分类:
一、按条件表达式筛选 > < = != >= <= <>(不等于)
二、按逻辑表达式筛选
&& || ! and or not
作用:用来连接条件表达式

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

三、模糊查询 关键字 like

一般和通配符搭配使用 通配符:
% 任意多个字符,包含0个字符
_ 任意单个字符
between and
in
is null

#按条件表达式筛选

#案例1:查询员工表employees中工资salary>12000的员工信息
SELECT * FROM employees WHERE salary>12000;
#案例2:查询员工表(employees)中部门编号(department_id)不等于90的员工名(first_name)和部门编号(department_id)

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

SELECT first_name 员工名,department_id 部门编号
FROM employees
WHERE department_id <> 90;

#按逻辑表达式筛选

#案例1:查询员工表(employees)中工资(salary)在10000到20000之间的员工名(first_name)、工资(salary)

SELECT first_name 员工名,salary 工资
FROM employees
WHERE salary>=10000 AND salary<=20000;

#小练习:查询员工表(employees)中部门编号(department_id)
#不是90到110之间,或者工资(salary)高于15000的员工信息

SELECT * FROM employees
WHERE department_id<90 OR department_id>110 OR salary>15000;
SELECT * FROM employees
WHERE NOT(department_id>=90 AND department_id<=110)
OR salary>15000;
department_id<90 && department_id>110

#模糊查询 关键字 like

#语法:
select 查询列表 from 表名 where 字段名 like '(a-z)%_';

#案例1:查询员工表中姓名包含’a’字符的员工名

SELECT first_name FROM employees
WHERE first_name LIKE '%a%';

#案例2:查询员工表中姓名第三个字母为’a’的员工名

SELECT first_name FROM employees 
WHERE first_name LIKE '__a%';

#小练习:查询员工表中姓名最后一个字母为’s’的员工名

SELECT first_name FROM employees
WHERE first_name LIKE '%s';

#判断范围 关键字 between and 在…之间

语法:select 查询列表 from 表名 where 字段名 between 范围1 and 范围2;

#案例1:查询员工编号在100到120之间的员工信息

SELECT * FROM employees 
WHERE employee_id>=100 AND employee_id<=120;
#--------------------------------------------
SELECT * FROM employees
WHERE employee_id BETWEEN 100 AND 120;

#小练习:查询employees表中工资在11000到18000之间的员工姓名和工资,用别名显示出来

SELECT last_name 姓名,salary 工资
FROM employees
WHERE salary BETWEEN 18000 AND 11000;

#注意:between and 包含临界值 (等同于>= <=)两个临界值不要调换

#判断是否在给定内容中 关键字 in

语法:select 查询列表 from 表名 where 字段名 in(1,2);

含义:判断某个字段的值是否属于in列表中的某一项 特点:使用in提高了语句的简洁度
in列表中的值类型必须一致或兼容

#案例:查询员工的工种编号是IT_PROG、AD_VP、FI_MGR中的一个员工名和工种编号

SELECT last_name 姓名,job_id 工种编号
FROM employees
WHERE job_id='IT_PROG' OR job_id='AD_VP' OR job_id='FI_MGR';
#-----------------------------------------------
SELECT last_name 姓名,job_id 工种编号
FROM employees
WHERE job_id IN('IT_PROG','AD_VP','FI_MGR');

小练习:查询employees表中部门编号(department_id)为90,60,100的姓名和工资

判断空值查询 关键字 is null

语法:select 查询列表 from 表名 where 字段名 is null;

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

案例:查询没有奖金的员工名和奖金率

SELECT last_name 员工名,commission_pct 奖金率
FROM employees
WHERE commission_pct IS NULL;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值