MySQL数据库(五)MySQL条件查询和排序查询

一、基础查询 https://blog.csdn.net/xy_learning/article/details/103768278

二、条件查询

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

执行顺序:表名,筛选条件,查询列表

分类:1.条件表达式 >  <  =  !=  <>  >=  <=

2.按逻辑运算符 and or not

3.模糊查询 like     between and      in      is null

示例:

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

#查询工资在10000到20000之间的员工名、薪资和奖金
SELECT first_name,salary,`commission_pct` FROM employees WHERE salary>=10000 AND salary<=20000;

#查询员工名中包含字符a的员工信息
SELECT * FROM employees WHERE last_name LIKE '%a%';
#查询员工名中第二个字符为_的员工名
SELECT last_name FROM employees WHERE last_name LIKE '_\_%';
SELECT last_name FROM employees WHERE last_name LIKE '_a_%' ESCAPE 'a';

%为通配符,可以匹配0至多个字符,_只能匹配一个字符,可以通过反斜杠进行转义,也可以使用escape指明自定义的转义字符

#查询员工编号100在120之间的员工信息
SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 120;
#等价于 >= and <=  

 #查询员工的工种编号是IT_PROG/AD_VP/AD_PRES中的一个员工名和工种编号
SELECT 
  first_name,
  job_id 
FROM
  employees 
WHERE job_id IN ('IT_PROT', 'AD_VP', 'AD_PRES');

#安全等于 <=>
SELECT last_name,commission_pct FROM employees WHERE commission_pct <=> NULL;
SELECT * FROM employees WHERE salary <=>12000;
# is null 尽可以判断是否为null值
# = 只能判断值
# <=> 都可以判断 

三、排序查询

 语法:select  查询列表  from  表 【where 筛选条件】 order by 排序列表【asc、desc】

执行顺序:表、筛选条件、查询列表、排序

asc是升序,desc降序,不写默认是asc升序

order by 支持单个字段,多个字段,表达式,函数,别名

示例:

#按姓名的长度显示员工的姓名和工资
SELECT LENGTH(last_name) 字节长度 ,last_name,salary FROM employees ORDER BY 字节长度 DESC;

#查询员工信息,先按照工资升序,再按员工编号降序
SELECT * FROM employees ORDER BY salary ASC,employee_id DESC;

ifnull(commission_pct,0)若为null则为0

发布了58 篇原创文章 · 获赞 7 · 访问量 3733

猜你喜欢

转载自blog.csdn.net/xy_learning/article/details/103783865