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 common -> 正文阅读

[大数据]SQL common

SQL

1 基本概念

DB:database,保存数据的容器,通常是一个文件

DBMS:数据库管理系统,MySQL是DBMS,Navcat是一个可视化工具

table:某种数据的结构化清单

column:列,表中的一个字段

datatype:每个字段都有相应的数据类型,varchar,int,datetime

row:行,表中的一条记录

primary key:主键

SQL:Structured Query Language(结构化查询语言)

2 SELECT 查询

SELECT column1,column2 FROM table

SELECT * FROM table

3 DISTINCT 去重

SELECT DISTINCT column1,column2(column1,column2都不一样)

4 分页

MySQL: limit index, num // index 从0开始

Oracle:WHERE ROWNUM <= 5; // 前5条数据

5 排序

ORDER BY column1,column2

6 降序

默认升序。降序:DESC关键字,用在排序条件后

7 过滤:WHERE

操作符:=,>=,<>不等于,BETWEEN AND含两端,IS NULL为空,只有NULL用IS,其它的用=

8 高级过滤

AND,OR,使用()避免歧义

IN,功能与OR相当,速度更快

NOT:WHERE NOT id = 1;相当于<>

9 LIKE 模糊查询。% 通配符

LIKE ‘A%’。以A开头

10 拼接字段

MySQL:SELECT Concat(column1,‘(’,column2,‘)’) FROM table

Oracle:SELECT column1 || ‘(’ || column2 || ‘)’ FROM table

11 TRIM() 去空格

SELECT TRIM(column1) FROM table

12 别名 AS,Oracle不支持 AS,直接SELECT column1 c1

13 算数运算

SELECT column1*column2 AS total FROM table

14 函数

SELECT UPPER(column1) FROM table // 文本处理

WHERE EXTRACT(year FROM order_date) = 2020 // Oracle 日期处理

WHERE YEAR(year FROM order_date) = 2020 // MySQL 日期处理

15 聚合函数

AVG(),COUNT(),MAX&MIN()

16 分组

GROUP BY

17 过滤分组

HAVING COUNT(*) >= 2 // WHERE在分组前过滤,HAVING在分组后过滤

18 SELECT 子句顺序

SELECT,FROM,WHERE,GROUP BY,HAVING,ORDER BY

19 子查询

优先表子查询

WITH temp AS(
        SELECT column1 AS mid
        FROM table1
        WHERE id = 1
    ) SELECT column2, mid
    FROM table2 t2 LEFT JOIN temp ON t2.mid = temp.mid
    WHERE temp.mid IS NOT NULL

20 表连接

LEFT JOIN:以左表为基准(取左表所有记录),右表匹配向左表

INNER JOIN:取得两个表中存在连接匹配关系的记录

21 联合查询

column 的 num 和 datatype 要一致

UNION ALL 直接连接,UNION 去重 DISTINCT

SELECT * FROM table WHERE id>5

UNION ALL
SELECT * FROM table WHERE age>10

22 INSERT 插入

INSERT INTO table(column1, column2) values(value1, value2)

23 UPDATE 更新

UPDATE table SET column1 = value1 WHERE id=5

24 DELETE 删除

DELETE FROM table WHERE column1 = value1 // 注意是DELETE FROM 不是 DELETE * FROM

25 事务处理

事务一组操作的集合,同时成功,同时失败

MySQL事务默认提交,改手动提交

SELECT @@autocommit;

SET @@autocommit=0;

提交事务:COMMIT; 回滚事务:ROLLBACK

26 索引

26-1 什么是数据库索引?

索引是一个带数据结构的存放record的容器

每次crud都会维护索引的数据结构。避免查询时出现全表扫描的情况。

26-2 5阶B树一个节点可以存几个数据?

四个。4个key存数据,5个指针指向5个子节点,key比指针始终少1。

26-3 B+树

所有的元素都会出现在叶子节点,非叶子节点起到索引的作用

叶子节点形成了一条单向链表,MySQl优化成双向链表

相比二叉树层级更少,搜索效率高

相比B树,只有叶子节点保存数据,非叶子节点只保存指针,叶子节点可以保存n个key,不用保存指针,相同数据层级更少。

相比HASH索引,支持范围匹配,HASH索引只支持等值匹配

26-4 B+树和B树

B+树非叶子节点不存储数据,所有数据存储在叶子节点,查询时间复杂度固定为log n。B树查询时间复杂度不固定,与key在树中的位置有关。

B+树叶子节点形成双向链表,支持范围匹配。B树中每个节点含数据和指针,不支持范围匹配。

B+树非叶子节点无数据域,单次IO数据量大。

26-5 索引方法(结构)

BTREE

HASH

26-6 索引类型

主键索引 PRIMARY

唯一索引 UNIQUE 此column数据会去重

常规索引 NORMAL

全文索引 FULLTEXT

空间索引 SPACIAL

26-7 聚集索引和二级索引

前者叶子节点保存record,后者保存主键id,主键索引默认聚集索引

27 存储引擎:InnoDB和MyISAM (MySQL-5.1版本前的引擎)

InnoDB支持事务,支持外键,是聚集索引,没有ROWNUM,支持行级锁

28 设置主键自增

alter table metallography_list modify metallography_list_id int auto_increment primary key

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-07-21 21:37:17  更:2022-07-21 21:38:17 
 
开发: 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年5日历 -2024/5/19 22:42:02-

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