IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> SQL 基本知识点归纳整理 -> 正文阅读

[大数据]SQL 基本知识点归纳整理

1. SQL 应掌握内容

参考链接 - 冷凡社长 -【避坑指南】数据分析师的SQL到底应该掌握到什么程度

  • select 数据提取
  • SQL的 书写规则执行顺序 ? 链接 - 1.4.3 SELECT 的执行顺序
  • where 语句的使用(包含likebetweenin\or、逻辑判断)
  • 表的内联外联
  • 分组子查询
  • 排序去重
  • 聚合函数

  • case when 的用法
  • 窗口函数 如何使用
  • 变量的使用
  • 分组查询 严格模式
  • 空值 的影响处理
  • count(*)count(列)
  • exist
  • 临时表
  • 自联接
  • 文本时间函数

1.1 知识点归纳

2. SQL 查询问题

2.1 简单查询

2.1.1 查找重复数据

? 参考链接 - 猴子数据分析- 《图解SQL面试题》- 图解面试题:如何查找重复数据?

在这里插入图片描述

知识点:

  • 重复 ? \Rightarrow ? group by(重复项) ? \Rightarrow ? count()
  • having 语句更高效,
    • where 语句无法与聚合函数count 一起使用, where 子句的运行顺序排在第二,运行到 where 时,表还没有被分组。
  • sql 子句的书写顺序和运行顺序
    • 关键字的顺序 SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...
    • SELECT 语句的执行顺序 FROM > WHERE > GROUP BY > HAVING > SELECT 的字段 > DISTINCT > ORDER BY > LIMIT

2.2 复杂查询

2.2.1 查找第N高的数据

? 参考链接 - 猴子数据分析- 《图解SQL面试题》- 图解面试题:如何查找第N高的数据?

在这里插入图片描述

知识点:

  • limitoffset

    • limit n 子句表示查询结果返回前 n 条数据, offset n 表示跳过 n 条语句;
    • limit y offset x 分句表示查询结果跳过 x 条数据,读取前 y 条数据;
  • ifnull(a, b)

    • 如果 value1 不是空,结果返回 a;如果 value1 是空,结果返回 b

2.3 多表查询

2.3.1 多表联结

? 参考链接 - 猴子数据分析- 《图解SQL面试题》- 图解面试题:多表如何查询?


知识点:

  • 左联结(left join),联结结果保留左表的全部数据;
  • 右联结(right join),联结结果保留右表的全部数据;
  • 内联结(inner join),取两表的公共数据;

在这里插入图片描述

图源:《图解SQL面试题》- 图解面试题:多表如何查询?

2.3.2 查找不在表里的数据

? 参考链接 - 猴子数据分析- 《图解SQL面试题》- 图解面试题:如何查找不在表里的数据?

在这里插入图片描述

2.3.3 涨工资

? 参考链接 - 猴子数据分析- 《图解SQL面试题》- 图解面试题:你有多久没涨过工资了?

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

CREATE table `薪水表`(`雇员编号` VARCHAR(10), `薪水` int(10), `起始日期` datetime, `结束日期` datetime);

insert into `薪水表` values('10002', '72527', '2001-08-02', '2003-01-01');
insert into `薪水表` values('10002', '75432', '2003-01-01', '2004-01-01');
insert into `薪水表` values('10005', '94692', '2001-09-09', '2003-01-01');
insert into `薪水表` values('10006', '43311', '2001-08-02', '2004-01-01');


CREATE table `雇员表`(`雇员编号` VARCHAR(10), `出生日期` datetime, `姓名` VARCHAR(10), `性别` VARCHAR(10), `雇用日期` datetime);

insert into `雇员表` values('10002', '1976-09-09', '小明', '男','2001-08-02');
insert into `雇员表` values('10005', '1973-08-07', '小红', '女','2001-09-09');
insert into `雇员表` values('10006', '1980-08-28', '小兰', '女','2001-08-02');

select m.雇员编号,当前薪水-入职薪水 as 薪水涨幅
from
(select 雇员编号,薪水 as 当前薪水 
from 薪水表 
where 结束日期 = '2004-01-01') as m
left join 
(select a.雇员编号,薪水 as 入职薪水 
from 雇员表 as a 
left join 薪水表 as b 
on a.雇员编号 = b.雇员编号
where a.雇用日期 = b.起始日期 and a.雇员编号 in 
(select 雇员编号
from 薪水表
where 结束日期 = '2004-01-01')) as n
on m.雇员编号 = n.雇员编号 
order by 薪水涨幅;

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-04 12:55:11  更:2021-10-04 12:56:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:51:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码