一起重新开始学大数据-MySQL篇-Day34-日期函数、计算、排序分组筛选、连表联查等

本文主要是介绍一起重新开始学大数据-MySQL篇-Day34-日期函数、计算、排序分组筛选、连表联查等,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一起重新开始学大数据-MySQL篇(2)

在这里插入图片描述

日期函数

在这里插入图片描述

获取当前日期:

current_timestamp;–所有

在这里插入图片描述

current_timestamp();–所有

在这里插入图片描述

CURRENT_DATE();-- 年月日

在这里插入图片描述

CURRENT_DATE;-- 年月日

在这里插入图片描述

CURRENT_TIME();-- 时分秒

CURRENT_TIME;-- 时分秒

在这里插入图片描述

时间转str

格式:

date_format(date,format)

date:时间
format:格式

SELECT DATE_FORMAT(CURRENT_DATE(),'%Y-%m-%d');

在这里插入图片描述

str转日期

格式:

str_to_date(str,formaat)

例:

SELECT STR_TO_DATE('2021-08-10','%Y-%m-%d')

在这里插入图片描述

日期相减

格式:

datediff(expr1,expr2);

注意:

只能相减年月日,时分秒参与运算结果为null

SELECT DATEDIFF('2021-08-10','2021-07-5');

在这里插入图片描述

函数向日期添加指定的时间间隔

格式:

DATE_ADD(date,INTERVAL expr unit);

date:时间
INTERVAL:关键字
expr:间隔的数值
unit:年月日时分秒(…,…,day,…,…,…)

SELECT DATE_ADD('2021-8-10',INTERVAL 5 DAY);
SELECT DATE_ADD('2021-8-10',INTERVAL -5 DAY);

在这里插入图片描述

计算

在这里插入图片描述

round(x,d):四舍五入

x:值
d:保留几位小数点

SELECT ROUND(1.0);
SELECT ROUND(1.4);
SELECT ROUND(1.5);

在这里插入图片描述

ceil(x):向上取整

SELECT CEIL(1.0);
SELECT CEIL(1.4);
SELECT CEIL(1.5);

在这里插入图片描述

floor(x):向下取整

SELECT FLOOR(1.0);
SELECT FLOOR(1.4);
SELECT FLOOR(1.5);

在这里插入图片描述

rand():随机数(0-1之间)

SELECT RAND();
SELECT RAND();

在这里插入图片描述

排序、分组、筛选

在这里插入图片描述

排序

格式:

order by 字段1 asc|desc,字段2 asc|desc...字段n asc|desc;

例如:按照age进行降序排列,age相同按照id进行降序排列

select * from students order by age desc,id desc;

注意:

默认升序asc,降序desc
如果有多个字段,按照先后顺序依次排序

在这里插入图片描述

group by 分组

格式:

group by 字段1,字段2...字段n;

注意:

多个字段,按照所有字段进行分组(一起分组)
有多少组显示多少条数据(默认情况下,没有经过条件筛选)
每组显示的数据为每组中默认第一条数据
gruop by 通常和聚合函数一起使用

SELECT * from students GROUP BY sex;

在这里插入图片描述

筛选:where having

区别:having可以使用聚合函数

例如:

select * from students where age>=25;--可以
select * from students having age>=25;--可以
select sex,count(*) c from students group by sex  where c>4;--不可以
select sex,count(*) c from students group by sex having c>4;--可以
SELECT * from student GROUP BY sex HAVING sex='0';

在这里插入图片描述

TopN:前几条数据

1.TopN age最大的前三个

select * from students order by age desc limit 0,3;

在这里插入图片描述

2.分组Top1 按sex分组后,求分组中年龄最大的一个

select * from students where age in (select max(age) m from students group by sex);
select * from students as stu1 where age=(select max(age) from students as stu2 where stu1.sex=stu2.sex);

在这里插入图片描述

3.分组TopN 按sex分组后,求分组中年龄最大的三个

select * from students as stu1 where 3>(select count(*) FROM students as stu2 where stu1.sex=stu2.sex and stu1.age<stu2.age);

在这里插入图片描述

连表联查

在这里插入图片描述

union:结果集进行合并(纵向合并)

格式:

查询语句 union 查询语句

注意:

查询列数必须相同
字段为第一个sql语句的字段
union默认去重
union all不去重<./font>

例子

SELECT id from students UNION SELECT id from students;
SELECT id from students UNION ALL SELECT id from students;

在这里插入图片描述在这里插入图片描述

left join(以左表为基准关联右表中的数据)

格式:

select * from 左表 left join 右表 on 关联条件;

注意:

左表匹配不到右表,以null不全
右表匹配不到左表,不显示

SELECT * FROM id LEFT JOIN students ON id.id=students.id;

在这里插入图片描述

right join(以右表为基准关联左表中的数据)

格式:

select * from 右表 left join 左表 on 关联条件;

注意:

左表匹配不到右表,不显示
右表匹配不到左表,以null不全

SELECT * FROM id right JOIN students ON id.id=students.id;

在这里插入图片描述

inner join(求两张表的交集)

格式:

select * from 右表 inner join 左表 on 关联条件;

注意:

关联条件可写可不写
如果不写可以写为select * from 表1,表2 where 子句;

SELECT * FROM id INNER JOIN students ON id.id=students.id;

在这里插入图片描述

mysql三大范式

1.原子性:字段不可在分割
2.唯一性:字段依赖于主键
3.冗余性:数据量过大

|
|
|
|

上一章-MySQL篇-Day33-SQL、建库建表、增删查改、聚合函数等

下一章-MySQL篇-Day35-练习题

|
|

|
|

听说长按大拇指👍会发生神奇的事情呢!好像是下面的画面,听说点过的人🧑一个月内就找到了对象的💑💑💑,并且还中了大奖💴$$$,考试直接拿满分💯,颜值突然就提升了😎,虽然对你好像也不需要,是吧,吴彦祖🤵!

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

这篇关于一起重新开始学大数据-MySQL篇-Day34-日期函数、计算、排序分组筛选、连表联查等的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/871493

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE