目录
零、前言
一、基础查询
1、语法:
2、查询列表分类:
3、案例:
二、条件查询
1、语法:
2、筛选条件分类:
3、案例:
三、排序查询
1、语法:
2、内容分类:
3、案例:
四、补充:
零、前言
sql语言可以分为四类:DQL、DML、DDL、DCL
本期讲的就是其中的DQL(数据查询语言:date query language)
一、基础查询
1、语法:
select 查询列表 from 表名;
2、查询列表分类:
字段,常量,表达式,函数,多个组合
3、案例:
(1)、字段
select job_id from employees;
select job_id,last_name from employees;
select * from employess;(*表示所有信息)
(2)、常量
select 100(后面可以加表名也可以不加,没什么意义)
注意:字符型和日期型的常量值必须用单引号引起来,数值型不需要
(3)、表达式
select 100%98;(后面可以加表名也可以不加,没什么意义)
(4)、函数
select version(); ---查询mysql版本
二、条件查询
1、语法:
select 查询列表
from employees
筛选条件;
2、筛选条件分类:
(1)、简单的条件运算符 >,<,>=,<=,<>,!=,<=>(安全等于)
(2)、逻辑运算符 and,or,not(&&,||,!)
(3)、模糊查询 like,in,between and,is null/is not null
3、案例:
条件运算符:
select * from employees where salary>10000;
逻辑运算符:
select * from employees where salary>10000 and job_id='AD_VP';
模糊查询:
select * from employees where last_name like '__a%';
like 一般搭配通配符使用,可以判断字符型和数值型
通配符:%表示任意多个字符(可以是0) _表示任意一个字符
select * from employees where job_id in('AD_VP','IT_PROG');
select * from employees where salary between 10000 and 12000;
between and 内容的前后顺序不可以颠倒
select last_name from employees where commission_pct is not null;
is null/is not null只能判断空值
三、排序查询
1、语法:
select 查询列表
from employees
【 where 筛选条件】(可以省略)
order by 内容
2、内容分类:
字段,表达式,函数,别名,多个字段(存在先后优先级)
3、案例:
(1)、单个字段
select salary from employees order by salary asc;
(asc表示升序,desc降序,如果不写默认是升序)
(2)、表达式
select salary*12*(1+ifnull(commission_pct,0)) as 年薪 from employees
order by salary*12*(1+ifnull(commission_pct,0)) desc;
(3)、别名
select job_id,salary*12*(1+ifnull(commission_pct,0)) as 年薪
from employees
where job_id='AD_VP'
order by 年薪 desc;
(4)、多个字段(存在优先级)+函数
select salary,last_name from employees order by salary asc,length(last_name) desc;
四、补充:
1、is null pk <=>(安全等于)
普通类型的数值 null值 可读性
is null no yes good
<=> yes yes bad
2、ifnull函数(判断是否为null,如果为null可以转换为指定的值)
案例:select ifnull(commission_pct,0),commission_pct from employees;
3、起别名
方法一:as 方法二:空格
select salary as 薪水 from employees;
4、concat函数:用于连接字段或者表达式
案例:select concat(last_name,first_name) as 姓名 from employees;
5、如果人名中含有通配符怎么办?如何使用like
呢?
方法一:默认支持的转义字符 \
SELECT last_name FROM employees WHERE last_name LIKE '_\_%';
方法二:自己定义转义字符: escape+符号
SELECT last_name FROM employees WHERE last_name LIKE '_$_%' ESCAPE '$';
6、如何去重?加distinct修饰
案例:select distinct department_id from employees ;