目录

零、前言

一、基础查询

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 ;