Hive(5)--Hive操作语句(1)

这是我参与11月更文挑战的第25天,活动详情查看:2021最后一次更文挑战

数据库级别语句

展示数据库

语法:

1
sql复制代码show databases;

案例:

1
2
3
4
5
6
sql复制代码show databases;

database_name |
--------------+
default |
hive_databases|

创建数据库

语法:

1
2
3
4
sql复制代码CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] 数据库名称   --DATABASE|SCHEMA 是等价的
[COMMENT 数据库注释] --数据库注释
[LOCATION HDFS要存放的路径 ] --存储在 HDFS 上的位置
[WITH DBPROPERTIES (property_name=property_value, ...)]; --指定额外属性

案例:

1
2
3
sql复制代码  CREATE DATABASE IF NOT EXISTS hive_databases
COMMENT 'hive数据库'
WITH DBPROPERTIES ('create'='jacquesh');

选择数据库

语法:

1
sql复制代码use 数据库名称;

案例:

1
sql复制代码use hive_databases;

删除数据库

语法:

1
2
3
4
sql复制代码
DROP (DATABASE|SCHEMA) [IF EXISTS] 数据库名称 [RESTRICT|CASCADE];

**默认行为是** RESTRICT,**如果数据库中存在表则删除失败。要想删除库及其中的表,可以使用** CASCADE **级联删除**。

案例:

1
sql复制代码DROP DATABASE IF EXISTS hive_databases CASCADE;

显示数据库详情

语法:

1
sql复制代码DESC DATABASE [EXTENDED] 数据库名称;   --EXTENDED 表示是否显示额外属性

案例:

1
2
3
4
sql复制代码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}|

表级别操作语句

表的创建操作

内部表与外部表

语句:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sql复制代码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]; --从查询结果创建表

内部表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sql复制代码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的目录中查看到表文件(默认配置的)**

外部表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sql复制代码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 的路径**

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%