这是我参与11月更文挑战的第25天,活动详情查看:2021最后一次更文挑战」
数据库级别语句
展示数据库
语法:
show databases;
案例:
show databases;
database_name |
--------------+
default |
hive_databases|
创建数据库
语法:
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] 数据库名称 --DATABASE|SCHEMA 是等价的
[COMMENT 数据库注释] --数据库注释
[LOCATION HDFS要存放的路径 ] --存储在 HDFS 上的位置
[WITH DBPROPERTIES (property_name=property_value, ...)]; --指定额外属性
案例:
CREATE DATABASE IF NOT EXISTS hive_databases
COMMENT 'hive数据库'
WITH DBPROPERTIES ('create'='jacquesh');
选择数据库
语法:
use 数据库名称;
案例:
use hive_databases;
删除数据库
语法:
DROP (DATABASE|SCHEMA) [IF EXISTS] 数据库名称 [RESTRICT|CASCADE];
**默认行为是** RESTRICT,**如果数据库中存在表则删除失败。要想删除库及其中的表,可以使用** CASCADE **级联删除**。
案例:
DROP DATABASE IF EXISTS hive_databases CASCADE;
显示数据库详情
语法:
DESC DATABASE [EXTENDED] 数据库名称; --EXTENDED 表示是否显示额外属性
案例:
DESC DATABASE EXTENDED hive_databases;
db_name |comment|location |owner_name|owner_type|parameters |
--------------+-------+----------------------------------------------------+----------+----------+-----------------+
hive_databases|hive???|hdfs://cluster/user/hive/warehouse/hive_databases.db|hive2 |USER |{create=jacquesh}|
表级别操作语句
表的创建操作
内部表与外部表
语句:
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [数据库.]表名 --表名
[(col_name data_type [COMMENT col_comment],
... [constraint_specification])] --列名 列数据类型
[COMMENT 表描述] --表描述
[PARTITIONED BY (col_name data_type [COMMENT 分区表分区的规则], ...)] --分区表分区规则
[
CLUSTERED BY (col_name, col_name, ...)
[SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS
] --分桶表分桶规则
[SKEWED BY (col_name, col_name, ...) ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
[STORED AS DIRECTORIES]
] --指定倾斜列和值
[
[ROW FORMAT row_format]
[STORED AS file_format]
| STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]
] -- 指定行分隔符、存储文件格式或采用自定义存储格式
[LOCATION 表在HDFS的存储位置] -- 指定表的存储位置
[TBLPROPERTIES (property_name=property_value, ...)] --指定表的属性
[AS select_statement]; --从查询结果创建表
内部表
CREATE TABLE temps
(
---------------字段配置开始-------------------
empno INT,
ename STRING,
job STRING,
mgr INT,
hiredate TIMESTAMP,
sal DECIMAL(7,2),
comm DECIMAL(7,2),
deptno INT
---------------字段配置结束-------------------
)
ROW FORMAT DELIMITED
fields terminated by "\t"; **设置字段的分隔符为 “\t”
//创建表之后可以再HDFS的目录中查看到表文件(默认配置的)**
外部表
CREATE EXTERNAL TABLE temps **外部表的创建需要加上external关键字修饰**
(
---------------字段配置开始-------------------
empno INT,
ename STRING,
job STRING,
mgr INT,
hiredate TIMESTAMP,
sal DECIMAL(7,2),
comm DECIMAL(7,2),
deptno INT
---------------字段配置结束-------------------
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t" **设置字段的分隔符为 “\t”**
LOCATION **'/hive/emp_external'; 配置数据路径 也是的hdfs 的路径**