sql

1.SQL语句类别

SQL 语句主要可以划分为以下 3 个类别。

DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter等。

DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、udpate 和select 等。(增添改查)

DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。

2.sql语句执行顺序

https://www.cnblogs.com/Qian123/p/5669259.html

https://www.cnblogs.com/Qian123/p/5669259.html

https://cloud.tencent.com/developer/article/1600323

1
2
3
4
5
6
7
8
1、from子句组装来自不同数据源的数据;
2、where子句基于指定的条件对记录行进行筛选;
3、group by子句将数据划分为多个分组;
4、聚合函数进行计算;
5、having子句筛选分组;
6、计算所有的表达式;
7、select字段;
8、order by对结果集进行排序。

感觉好像先select后having

各种表

1 分区表

https://www.jianshu.com/p/1cdd3e3c5b3c

https://www.jianshu.com/p/163f8375c0d6

1 mysql分区

RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。

LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。

HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。

KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL 服务器提供其自身的哈希函数。必须有一列或多列包含整数值。

2 Hive中分区表

分两类:静态分区、动态分区;

Hive中没有复杂的分区类型(List,Range,Hash)

2 内部表&外部表

https://www.cnblogs.com/qiaoyihang/p/6225151.html

https://blog.csdn.net/qq_36743482/article/details/78393678

1 未被external修饰的是内部表(managed table),被external修饰的为外部表(external table);

2 内部表数据由Hive自身管理,外部表数据由HDFS管理;

3 内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定(如果没有LOCATION,Hive将在HDFS上的/user/hive/warehouse文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里);
4 删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;
5 对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name;)

3 临时表

https://www.cnblogs.com/duanxz/p/3724120.html

4 字典表

https://www.cnblogs.com/jpfss/p/10418873.html

5 全量表,增量表、快照表、流水表

全量表:所有数据的最新状态

增量表:新增数据

快照表:

流水表: 对于表的每一个修改都会记录,可以用于反映实际记录的变更。

6 切片表

切片表:切片表根据基础表,往往只反映某一个维度的相应数据。其表结构与基础表结构相同,但数据往往只有某一维度,或者某一个事实条件的数据

7 拉链表

1 定义

2 应用场景

3 分区

4 数据加载

1)首日装载

拉链表首日装载,需要进行初始化操作,具体工作为将截止到初始化当日的全部历史用户导入一次性导入到拉链表中。目前的ods_user_info 表的第一个分区,即2020-06-14 分区中就是全部的历史用户,故将该分区数据进行一定处理后导入拉链表的9999-99-99 分区即可。

2)每日装载


:D 一言句子获取中...