1. 概述
- 数据定义语言DDL,是SQL语言集中对数据库内部的对象结构进行创建、删除、修改等的操作语言,这些数据库对象包括database、table、view、index等。
- DDL核心语法由CREATE、ALTER与DROP三个所组成。DDL并不涉及表内部数据的操作。
- 在某些上下文中,该术语也称为数据描述语言,因为它描述了数据库表中的字段何记录。
2. 建表语法
2.1 完整建表语法树
注意事项
- 蓝色字体是建表语法的关键字,用户指定某些功能。
- [ ] 中括号的语法表示可选。
- | 表示使用的时候,左右语法二选一。
- 建表语句中的语法顺序要和语法树中顺序保持一致
2.2 数据类型
Hive数据类型指的是表中列的字段类型
- 整体分为两类:原生数据类型和复杂数据类型。
- 原生数据类型包括:数据类型、时间日期类型、字符串类型、杂项数据类型。
- 复杂数据类型包括:array数据、map映射、struct结构、union联合体。
- 原生数据类型:
- 复杂数据类型:
注意事项
- HIive SQL中,数据类型英文字母大小写不敏感;
- 除SQL数据类型外,还支持Java数据类型,比如字符串string;
- 复杂数据类型的使用通常需要和分隔符指定语法配合使用;
- 如果定义的数据类型和文件不一致,Hive会尝试隐式转换,但不保证成功。
隐式转换
- 与标准SQL类似,HQL支持隐式和显示类型转换。
- 原生类型从窄类型到宽类型的转换成为隐式转换,反之,则不允许。
- 下表描述了类型之间允许的隐式转换:
显示转换
- 显示转换使用CAST函数。
例如,CAST (‘100’ as INT) 会将100字符串转换为100整数值。
如果强制转换失败,例如CAST (’Allen’ as INT) ,该函数返回NULL。