MySQL - 数据查询语言DQL

目录

 

一、基础查询

二、条件查询

(1)条件表达式

(2)逻辑表达式

(3)模糊查询

  Δ1、like

  Δ2、between and

  Δ3、in

  Δ4、is null/ is not null

三、排序查询        

四、常见函数

1、单行函数

(1)字符函数

(2)数学函数

(3)日期函数

(4)流程控制函数

(5)其他函数

2、分组函数

五、分组查询

六、多表连接查询

七、子查询


一、基础查询

1、语法:SELECT 要查询的东西 【FROM 表名】;

 

2、特点:

(1)通过select查询完的结果 ,是一个虚拟的表格,不是真实存在

(2)要查询的东西 可以是常量值、可以是表达式、可以是字段、可以是函数

 

二、条件查询

1、根据条件过滤原始表的数据,查询到想要的数据

2、语法:select  要查询的东西  from  表  where  条件 ;

 

3、分类:

(1)条件表达式

示例:salary>10000

条件运算符:

>   <   >=   <=   =   !=   <>

 

(2)逻辑表达式

  示例:salary>10000 && salary<20000

  逻辑运算符:and(&&):两个条件如果同时成立,结果为true,否则为false

           or(||):两个条件只要有一个成立,结果为true,否则为false

           not(!):如果条件成立,则not后为false,否则为true

 

 

(3)模糊查询

     关键词:like    between and     in    is null/ is not null

 

  Δ1、like

     一般和通配符搭配使用

% 任意多个字符,包含0个字符

_ 任意单个字符

 

  Δ2、between and

     两个临界值不要调换顺序

 

  Δ3、in

     含义:判断某字段的值是否属于in列表中的某一项

     特点:①使用in提高语句简洁度

        ②in列表的值类型必须一致或兼容

        ③in列表中不支持通配符: % _等

 

  Δ4、is null/ is not null

     =或<>不能用于判断null值

     is null或is not null 可以判断null值

 

 

三、排序查询        

1、语法:

select 要查询的东西 from  where 条件】 order by 排序的东西 asc/desc】;

 

2、特点:

(1)asc代表的是升序,可以省略     desc代表的是降序

(2)order by子句可以支持 单个字段、别名、表达式、函数、多个字段

(3)order by子句查询语句的最后面,除了limit子句

 

 

四、常见函数

    select 函数名(实参列表from 表】;

 

1、单行函数

(1)字符函数

concat  拼接

substr  截取子串

upper  转换成大写

lower  转换成小写

trim   去前后指定的空格和字符

ltrim  去左边空格

rtrim  去右边空格

replace 替换

lpad    左填充

rpad    右填充

instr   返回子串第一次出现的索引

length  获取字节个数

 

(2)数学函数

round     四舍五入

rand      随机数

floor     向下取整

ceil      向上取整

mod       取余

truncate  截断

 

(3)日期函数

now当前系统日期+时间

 

curdate当前系统日期

 

curtime当前系统时间

 

str_to_date

将字符转换成日期

 

date_format

将日期转换成字符

 

(4)流程控制函数

case - end 就相当于一个表达式

 

(5)其他函数

SELECT VERSION();

SELECT DATABASE();

SELECT USER();

 

 

2、分组函数

功能:用作统计使用,又称为聚合函数 / 统计函数 / 组函数

 

分类:

sum 求和、avg 平均值、max 最大值 min 最小值 count 计算个数

 

特点:

1sumavg一般用于处理数值型

   maxmincount可以处理任何类型

2、以上分组函数都忽略null

3、可以 distinct 搭配实现去重的运算

4count函数的单独介绍

   一般使用count(*)用作统计行数

5、和分组函数一同查询的字段要求是group by后的字段

 

 

五、分组查询

语法: select 查询列表 from  where 筛选条件】 group by 分组的字段 order by 排序的字段】;

 

特点:

1、和分组函数一同查询的字段必须是group by后出现的字段

2、筛选分为两类:分组前筛选和分组后筛选

 

 针对的表

位置

连接的关键字

分组前筛选

原始表 

group by

 where

分组后筛选

group by后的结果集 

 group by

 having

问题1:分组函数做筛选能不能放在where后面

答:不能

 

问题2where——group by——having

一般来讲,能用分组前筛选的,尽量使用分组前筛选,提高效率

 

3、分组可以按单个字段也可以按多个字段

4、可以搭配着排序使用

 

六、多表连接查询

 

 

七、子查询

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值