Hive SQL 数据定义语言(DDL)

1. Hive SQL 数据定义语言(DDL) 概述

1.1 DDL语法的作用

数据定义语言 (Data Definition Language, DDL),是 SQL 语言集中对数据库内部的对象结构进行创建,删除,修改等的操作语言, 这些数据库对象包括database( schema)、 table、 view、 index 等。核心语法由 CREATEALTER DROP三个所组成。 DDL 并不涉及表内部数据的操作 。
在某些上下文中,该术语也称为数据描述语言,因为它描述了数据库表中的字段和记录。
在这里插入图片描述

1.2 Hive 中DDL的使用

Hive SQL(HQL)与SQL的语法大同小异,基本上是相通的。只不过在学习HQL语法的时候,特别要注意Hive自己特有的语法知识点,比如partition相关的DDL操作。
基于Hive的设计、使用特点,HQL中create语法(尤其create table)将是学习掌握DDL语法的重中之重。可以说建表是否成功直接影响数据文件是否映射成功,从而影响后续是否可以基于SQL分析数据。

2. Hive DDL建表基础

2.1 完整建表语法树

在这里插入图片描述
蓝色字体是建表语法的关键字,用于指定某些功能。
[]中括号的语法表示可选。
|表示使用的时候,左右语法二选一。
建表语句中的语法顺序要和上述语法规则保持一致。

2.2 Hive数据类型详解

2.2.1 整体概述

Hive中的数据类型指的是Hive表中的列字段类型。Hive数据类型整体分为两个类别:原生数据类型(primitive data type)和复杂数据类型(complex data type)。
原生数据类型包括:数值类型、时间类型、字符串类型、杂项数据类型;
复杂数据类型包括:array数组、map映射、struct结构、union联合体。
在这里插入图片描述
关于Hive的数据类型,需要注意
英文字母大小写不敏感
除SQL数据类型外,还支持Java数据类型,比如:string;
intstring是使用最多的,大多数函数都支持;
复杂数据类型的使用通常需要和分隔符指定语法配合使用。
如果定义的数据类型和文件不一致,hive会尝试隐式转换,但是不保证成功。

2.2.2 原生数据类型

Hive支持的原生数据类型如下图所示:
在这里插入图片描述

2.2.3 复杂数据类型

在这里插入图片描述

2.2.4 数据类型隐式、显式转换

与SQL类似,HQL支持隐式和显式类型转换。
原生类型从窄类型到宽类型的转换称为隐式转换,反之,则不允许。
下表描述了类型之间允许的隐式转换在这里插入图片描述
显式类型转换使用CAST函数。
cast (数据字段 as 新类型)
例如,CAST('100’as INT)会将100字符串转换为100整数值。 如果强制转换失败,例如CAST('INT’as INT),该函数返回NULL。
在这里插入图片描述

3. Hive DDL其他语法

3.1 Database|schema(数据库) DDL操作

3.1.1 Create database

Hive中DATABASE的概念和RDBMS中类似,我们称之为数据库。在Hive中, DATABASE和SCHEMA是可互换的,使用DATABASE或SCHEMA都可以。

CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];

COMMENT:数据库的注释说明语句。
LOCATION:指定数据库在HDFS存储位置,默认/user/hive/warehouse 。
WITH DBPROPERTIES:用于指定一些数据库的属性配置。
下面创建一个数据库tb_1:

create database 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值