mysql 基础查询、条件查询练习1
程序员文章站
2022-05-09 19:10:02
...
导入这三个sql文件,就能跟着操作啦
https://cloud.189.cn/t/NFF7NzyyEZNv (访问码:rtu8)
里面有3张表。分别一次性执行就能创建成功啦。
一 、mysql 基础查询、条件查询
# 1.1.1基础查询
-- 1.下面的语句是否可以执行成功
SELECT last_name,job_id,salary AS sal FROM employees;
-- 2. 下面的语句是否可以执行成功
SELECT * FROM employees;
-- 3.显示departments的结构,并查询其中的全部数据
DESC departments;
SELECT * FROM departments
-- 4.显示出表employees中的全部job_id(不能重复)
SELECT DISTINCT job_id from employees;
-- 5. 查询员工名和姓连接成一个字段,并显示为姓名
SELECT CONCAT(last_name,first_name) as 姓名
FROM employees;
# 1.1.2条件查询
/*
语法:
select
查询列表
from
表名
where
筛选条件;
分类:
一)、按条件表达式筛选
简单条件运算符:> < = != <> >= <=
二)、按逻辑表达式筛选
逻辑运算符:
作用:用于连接条件表达式
&& || !
and or not
&&和and:两个条件都为true,结果为true,反之为false
||或or: 只要有一个条件为true,结果为true,反之为false
!或not: 如果连接的条件本身为false,结果为true,反之为false
三)、模糊查询
like
between and
in
is null
*/
# 一)、按条件表达式筛选
-- 1.查询工资>12000 的员工信息
SELECT * from employees where salary>12000;
-- 2.查询部门编号不等于90号的员工名和部门编号
SELECT last_name,department_id from employees
WHERE department_id != 90
SELECT last_name,department_id from employees
WHERE department_id <> 90
# 二)、按逻辑表达式筛选
-- 3.查询工资z在10000到20000之间的员工名、工资以及奖金
SELECT last_name, salary,commission_pct from employees
WHERE salary BETWEEN 10000 AND 20000
-- 4.查询部门编号不是在90到110之间,或者工资高于15000的员工信息
SELECT * FROM employees
WHERE NOT(department_id BETWEEN 90 AND 110)
or salary>15000
# 三)、模糊查询
/*
like
特点:
①一般和通配符搭配使用
通配符:
% 任意多个字符,包含0个字符
_ 任意单个字符
between and
in
is null|is not null
*/
-- 5.查询员工名中包含字符a的员工信息
SELECT * FROM employees
WHERE last_name LIKE '%a%'
-- 6.查询员工名中第三个字符为n,第五个字符为l的员工名和工资
SELECT last_name,salary from employees
WHERE last_name LIKE '__n_l%' -- Hunold
-- 7.查询员工名中第二个字符为_的员工名
SELECT last_name from employees
WHERE last_name LIKE '_$_%' ESCAPE '$'; -- K_ing
-- BETWEEN and 的使用
/*
①使用between and 可以提高语句的简洁度
②包含临界值
③两个临界值不要调换顺序
*/
-- 8.查询员工编号在100到120之间的员工信息
SELECT * FROM employees
WHERE employee_id >= 120 AND employee_id<=100;
#----------------------
SELECT * FROM employees
WHERE employee_id BETWEEN 120 AND 100;
-- in
/*
含义:判断某字段的值是否属于in列表中的某一项
特点:
①使用in提高语句简洁度
②in列表的值类型必须一致或兼容
③in列表中不支持通配符
*/
-- 9.查询员工的工种编号是IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
SELECT last_name,job_id FROM employees
WHERE job_id ='IT_PROT' OR job_id='AD_VP' OR job_id='AD_PRES'
SELECT
last_name,
job_id
FROM
employees
WHERE
job_id IN( 'IT_PROT' ,'AD_VP','AD_PRES');
-- is null
/*
=或<>不能用于判断null值
is null或is not null 可以判断null值
*/
-- 10.查询没有奖金的员工名和奖金率
SELECT last_name,commission_pct FROM employees
WHERE commission_pct is NULL;
-- 11.查询有奖金的员工名和奖金率
SELECT last_name,commission_pct FROM employees
WHERE commission_pct is not NULL;
下一篇: 【数据库学习总结】 —— 基础sql语句