一:DDL
1:創建數據庫
CREATE DATABASE [IF NOT EXISTS] database_name
[COMMENT database_comment] //對數據庫的描述
[LOCATION hdfs_path] //手動設置數據庫存儲路徑
[WITH DBPROPERTIES (property_name=property_value, ...)]; //增加數據庫的屬性(鍵值對)
2:創建表
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name
[(col_name data_type [COMMENT col_comment], ...)]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[CLUSTERED BY (col_name, col_name, ...)
[SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
[ROW FORMAT row_format]
[STORED AS file_format]
[LOCATION hdfs_path]
[TBLPROPERTIES (property_name=property_value, ...)]
[AS select_statement]
字段說明:
(1)CREATE TABLE 創建一個指定名字的表。如果相同名字的表已經存在,則拋出異
常;用戶可以用 IF NOT EXISTS 選項來忽略這個異常。
(2)EXTERNAL 關鍵字可以讓用戶創建一個外部表,在建表的同時可以指定一個指向
實際數據的路徑(LOCATION),在刪除表的時候,內部表的元數據和數據會被一起刪
除,而外部表只刪除元數據,不刪除數據。
(3)COMMENT:為表和列添加注釋。
(4)PARTITIONED BY 創建分區表
(5)CLUSTERED BY 創建分桶表
(6)SORTED BY 不常用,對桶中的一個或多個列另外排序
(8)STORED AS 指定存儲文件類型
常用的存儲文件類型:SEQUENCEFILE(二進制序列文件)、TEXTFILE(文本)、
RCFILE(列式存儲格式文件)
如果文件數據是純文本,可以使用 STORED AS TEXTFILE。如果數據需要壓縮,使
用 STORED AS SEQUENCEFILE。
(9)LOCATION :指定表在 HDFS 上的存儲位置。
(10)AS:后跟查詢語句,根據查詢結果創建表。
(11)LIKE 允許用戶復制現有的表結構,但是不復制數據。
(1)創建普通表
(2)創建分區表
(3)創建分桶表

二:DML
1:數據導入
(1)

(2)
···· 
(3)

2:數據導出

3:清除表中數據
truncate table student; //只能清除管理表數據
三:DQL
練習



四:其他常用查詢函數
1:
NVL:給值為 NULL 的數據賦值,它的格式是 NVL( value,default_value)。它的功能是
如果 value 為 NULL,則 NVL 函數返回 default_value 的值,否則返回 value 的值,如果兩個
參數都為 NULL ,則返回 NULL。
2:
CASE WHEN
3:
行轉列:CONCAT
4:
列轉行:EXPLODE
5:開窗函數
OVER():指定分析函數工作的數據窗口大小,這個數據窗口大小可能會隨着行的變而變化。
CURRENT ROW:當前行
n PRECEDING:往前 n 行數據
n FOLLOWING:往后 n 行數據
UNBOUNDED:起點,UNBOUNDED PRECEDING 表示從前面的起點,
UNBOUNDED
FOLLOWING 表示到后面的終點
LAG(col,n,default_val):往前第 n 行數據
LEAD(col,n, default_val):往后第 n 行數據

