欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql 基础查询、条件查询练习1

程序员文章站 2022-05-09 19:10:02
...

导入这三个sql文件,就能跟着操作啦
https://cloud.189.cn/t/NFF7NzyyEZNv (访问码:rtu8)
里面有3张表。分别一次性执行就能创建成功啦。
mysql 基础查询、条件查询练习1

一 、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;



mysql 基础查询、条件查询练习1

相关标签: mysql