Hive数据库表的操作
一、 创建数据库
1. CREATE DATABASE语句
Hive数据库是一个命名空间或标的集合。
语法:
CRAETE DATABASE | SCHEMA [IF NOTEXISTS]
2. 创建数据库:
create database if not existssimontest1 comment 'this is test database' with dbproperties('creator'='simon','date'='2017-10-25');
3. 查看是否创建成功:
show databases;
二、 查看数据库信息
1. 查看数据库的描述信息和文件目录位置路径信息
describedatabase simontest1;
2. 查看数据库的描述信息和文件目录位置路径信息(加上数据库键值对的属性信息)。
describedatabase extended simontest1;
三、 删除数据库
1. 普通删除数据库
dropdatabase if exists simontest1;
查看是否删除成功:
2. 级联删除数据库。
dropdatabase if exists simontest1 cascade;
当数据库还有表时,先级联删除表后再删除数据库,默认是restrict。
创建两个database:
级联删除simontest2:
dropdatabase if exists simontest2 cascade;
查看是否删除成功:
四、 修改数据库
修改数据库只能修改数据库的键值对属性值。数据库名和数据库所在的目录位置不能修改。
alter database simontest1 setdmproperties('edited-by'='guojiawei');
创建时,没有创建键值对属性值,暂时不能修改。
五、 创建表
1.创建表
create table if not existssimontest1.table1(name string comment 'mingzi',salary float comment 'gongzi')comment 'zhe shi yi zhang ce shi biao' tblproperties('creator'='simon','created_at'='2017-10-26 15:56:33');
--其中tblproperties作用:按照键值对的格式为表增加额外的文档说明,也可用来表示数据库连接的必要的元数据信息
--hive会自动增加二个表属性:last_modified_by(最后修改表的用户名),last_modified_time(最后一次修改的时间)
2.查看和列举表的tblproperties属性信息:
show tblproperties simontest1.table1;
3. 使用like创建表。
拷贝表结构,无需拷贝数据
create table if not exists simontest1.table2 like simontest1.table1;
4. 查看表的详细信息
1) 结构信息extended
describe extended simontest1.table1;
2) 更多信息formatted
describe formatted simontest1.table1;
六、 创建外部表
1. 应用场景:
如果数据被多个工具(如pig等)共享,可以创建外部表。
2. 特点:
删除表时,表的元数据会被删除掉,但是数据不会被删除。
3. 创建语句:
create external table if not exists simontest1.table3(name string comment'mingzi',salary float comment 'gongzi') comment 'zhe shi yi zhang ce shibiao' tblproperties('creator'='simon','created_at'='2017-10-26 15:56:33');
七、 创建分区表
1. 建表语句
create table if not existssimontest1.table4(name string comment 'mingzi',salary float comment 'gongzi')comment 'zhe shi yi zhang ce shi biao' partitioned by(countrystring,state string) STORED AS rcfile tblproperties('creator'='simon','created_at'='2017-10-2616:37:33');
2. 查看表中所有分区
show partitions simontest1.table4;
3. 查看表中特定分区
show partitions simontest1.table4 partition(country=’US’);
八、 删除表
droptable if exists simontest1.table4;