Hive 数据库相关基本语法
2017-04-24 13:38
363 查看
创建数据库:
创建存在的数据库,系统会报错:
避免创建重复的数据库,系统报错,可以使用如下的语句:
创建数据库时,如果不指定目录,数据将存储在 /user/hive/warehouse 这个子目录中,创建数据库时也可以指定目录,例如:
hive> create database hive2 location '/user/hive/databaseDir/';
OK
Time taken: 0.071 seconds
在hdfs中如下格式,是以 .db 结尾的
创建数据库时可以为数据库添加描述信息:
hive> create database hive3 comment 'test database comment';
OK
Time taken: 0.056 seconds使用describe database database_name 能够查看描述语句以及数据库所在的文件目录位置:
hive> describe database hive3;
OK
db_name comment location owner_name owner_type parameters
hives test database comment hdfs://localhost:9000/user/hive/warehouse/hive3.db hadoop USER
Time taken: 0.033 seconds, Fetched: 1 row(s)创建数据库时可以指定键值对信息:
hive> describe database extended hive4;
OK
db_name comment location owner_name owner_type parameters
hive4 hdfs://localhost:9000/user/hive/warehouse/hive4.db hadoop USER {date=2017-04-24, creator=root}
Time taken: 0.031 seconds, Fetched: 1 row(s)hive 没有命令可以查看当前使用的是哪个数据库,这个很遗憾。但是可以通过设置
hive.cli.print.current.db=true 显示出当前使用的数据库。
hive> set hive.cli.print.current.db=true;
hive (default)> use hive2;
OK
Time taken: 0.024 seconds
hive (hive2)> use default;
OK
Time taken: 0.027 seconds删除数据库HQL:
hive (default)> drop database if exists hive2;
OK
Time taken: 0.054 seconds默认情况下,hive不允许删除非空的数据库:
hive (default)> use hive4;
OK
Time taken: 0.022 seconds
hive (hive4)> create table T1(name string,age int);
OK
Time taken: 0.15 seconds
hive (hive4)> drop database hive4;
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidOperationException(message:Database hive4 is not empty. One or more tables exist.)
可以在语句后加上关键字cascade关键字,这样可以让hive先删除数据库中的表,然后再删除数据库:
hive> create database if not exists hive2; OK Time taken: 0.257 seconds hive> drop table hive2; OK Time taken: 0.224 seconds
创建存在的数据库,系统会报错:
hive> create database hive2; FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Database hive2 already exists
避免创建重复的数据库,系统报错,可以使用如下的语句:
hive> create database if not exists hive2; OK Time taken: 0.031 seconds删除数据库:
hive> drop databses hive2;数据库所在目录默认是hive.metastore.warehouse.dir 指定的目录,例如:
<property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> <description>location of default database for the warehouse</description> </property>
创建数据库时,如果不指定目录,数据将存储在 /user/hive/warehouse 这个子目录中,创建数据库时也可以指定目录,例如:
hive> create database hive2 location '/user/hive/databaseDir/';
OK
Time taken: 0.071 seconds
在hdfs中如下格式,是以 .db 结尾的
创建数据库时可以为数据库添加描述信息:
hive> create database hive3 comment 'test database comment';
OK
Time taken: 0.056 seconds使用describe database database_name 能够查看描述语句以及数据库所在的文件目录位置:
hive> describe database hive3;
OK
db_name comment location owner_name owner_type parameters
hives test database comment hdfs://localhost:9000/user/hive/warehouse/hive3.db hadoop USER
Time taken: 0.033 seconds, Fetched: 1 row(s)创建数据库时可以指定键值对信息:
hive> create database hive4 with dbproperties('creator' = 'root','date'= '2017-04-24'); OK Time taken: 0.066 seconds同过describe database extended database_name 语句可以查看:
hive> describe database extended hive4;
OK
db_name comment location owner_name owner_type parameters
hive4 hdfs://localhost:9000/user/hive/warehouse/hive4.db hadoop USER {date=2017-04-24, creator=root}
Time taken: 0.031 seconds, Fetched: 1 row(s)hive 没有命令可以查看当前使用的是哪个数据库,这个很遗憾。但是可以通过设置
hive.cli.print.current.db=true 显示出当前使用的数据库。
hive> set hive.cli.print.current.db=true;
hive (default)> use hive2;
OK
Time taken: 0.024 seconds
hive (hive2)> use default;
OK
Time taken: 0.027 seconds删除数据库HQL:
hive (default)> drop database if exists hive2;
OK
Time taken: 0.054 seconds默认情况下,hive不允许删除非空的数据库:
hive (default)> use hive4;
OK
Time taken: 0.022 seconds
hive (hive4)> create table T1(name string,age int);
OK
Time taken: 0.15 seconds
hive (hive4)> drop database hive4;
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidOperationException(message:Database hive4 is not empty. One or more tables exist.)
可以在语句后加上关键字cascade关键字,这样可以让hive先删除数据库中的表,然后再删除数据库:
hive (hive4)> drop database hive4 cascade; OK Time taken: 2.202 seconds提示符这里是不会自动刷新的,可以切到其他数据库,再切到hive4 的时候,将会报错:
hive (hive4)> use default; OK Time taken: 0.026 seconds hive (default)> use hiv4; FAILED: SemanticException [Error 10072]: Database does not exist: hiv4注意:数据库删除后,对应的目录也会被删除,hive4.db 目录不存在了
相关文章推荐
- Hive 数据库相关基本语法
- oracle 存储过程的基本语法_数据库技巧
- hive 基本语法
- 数据库基本语法
- 数据库SQL基本语法+增删改查练习
- erlang 符号相关基本语法
- JDBC连接数据库-基本语法:
- 【数据库】 sql的一些基本语法(三)
- hive 基本语法
- 数据库SQL Server编程基本语法
- 【数据库】 sql的一些基本语法(一)
- SQL Server -数据库基本语法的总结
- .htaccess的基本作用及相关语法介绍
- Kconfig和Makefile相关基本语法
- hive 创建、删除、截断表基本操作及相关注意事项
- hive 基本语法
- C# 数据库操作相关命令和语法
- .htaccess的基本作用及相关语法介绍
- hive学习之基本语法篇(一)
- 【数据库】 sql的一些基本语法(二)