一:
回顾一天所学知识,延续第一天内容
1、str_to_date(‘日期字符串’,‘日期格式’)
序号 格式符 功能 格式符 功能
====================================================================
1%Y 代表四位的年份 %y 代表两位的年份
====================================================================
2 %m 代表月,格式(01...12) %c 代表月 格式(1...12)
====================================================================
3 %d 代表日
====================================================================
4%H 代表24小时制 %h 代表12小时制
====================================================================
5%i 代表分钟 格式(00..59)
====================================================================
6%S或%s 代表秒,格式(00...59)
2、date_format
作用:将‘日期类型’转换为特定格式的‘日期字符串’类型
用法:date_format(日期类型数据,‘日期格式’)
二、
分组函数/聚合函数/多行处理函数
1、常用
=======================
sum求和
=======================
avg平均值
=======================
max 取最大值
=======================
min 取最小值
=======================
=======================
2、注意点
分组函数自动忽略空值,不需要手动增加where条件排除空值
分组函数不能直接使用在where关键字后面
3、去重distinct
作用:将查询结果中某一字段的重复记录去除掉
用法:distinct 字段名或distinct 字段名1,字段名2....
distinct 字段名A:去除与字段名A相同的记录
distinct字段名A,字段名B:去除与字段名A和字段名B同时相同的记录
注意:distinct只能出现在所有字段最前面,后面如果有多个字段及为多字段联合去重
4分组查询(group by)
1、作用:通过哪个或哪些字段进行分组
用法:group by 字段名
select
分组字段或分组函数(只允许出现这两种语句)
from
表名
group by
字段名
having过滤条件 ,必须配合group by 才可使用
where用在group by 之前,having用在group by 之后
总结select
一个完整的sql语句如下:
select
xxx
from
xxx
where
xxx
group by
xxx
having
xxx
order by
xxx
连接方式分类:
内连接:省略关键字:inner
等值连接
查询出员工所对应得部门名称
select
e.ename,d.dname
from
emp e
inner join
dept d
on
e.deptno = d.deptno
非等值连接
查询出员工薪水所对应的薪水等级:显示员工名称,薪水,薪水等级
select
e.ename,e.sal,s.grade
from
emp e
join
salgrade s
on
s.sal between s.losal and s.hisal;
自连接:
我们可以把一张表看成两张表使用
外连接:定义:A表和B表能够完全匹配的记录查询出来之外(内连接),将其中一张表的记录无条件的完全 查询出来,对方表没有匹配的记录时,会自动模拟出null值与之匹配;
注意:外连接的查询结果条数>=内连接的查询结果条数
左连接
定义:包含左边表的全部行(不管右边的表是否存在与他们匹配的行),以及右边表中 全部匹配的行
右连接
定义:包含右边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表 中全部匹配的行
多表查询:
多张表进行连接的语法格式:
select
xxx
from
A表
join
B表
on
连接条件1
jion
C表
on
连接条件2
子查询:select语句嵌套select语句,放在where后面
from后嵌套,把select查询的结果的表当成临时表
union 合并相加结果集(要求字段个数相同,具有相同意义)
limit使用:
作用:(只在MySQL中起作用)获取一张表中前几条或中间某几行数据
用法:limit起始下标m,长度n
m:记录开始的index,默认从0开始,表示第一条记录
n:指从第m+1条开始,取n条
limit可以实现分页功能