今天我们来讲讲Hive中常用的数据库操作指令及相关效果。
执行语句:
show databases;
执行效果:
hive (default)> show databases;
OK
database_name
创建数据库:
create database 数据库名;
执行效果:
hive (default)> create database hive_in_action;
OK
Time taken: 1.602 seconds
hive (default)> show databases;
OK
database_name
default
hive_in_action
Time taken: 0.172 seconds, Fetched: 2 row(s)
如果要创建的数据库名已经存在的话,将会抛出一个错误信息,如下:
hive (default)> create database hive_test;
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Database hive_test already exists
可以使用以下语句避免报错:
create database if not exists 数据库名;
执行结果:
hive (default)> create database if not exists hive_test;
OK
Time taken: 0.113 seconds
普通查询:
describe database 数据库名;
查询结果:
hive (default)> describe database hive_test;
OK
db_name comment location owner_name owner_type parameters
hive_test hdfs://hadoop:9000/usr/hive/warehouse/hive_test.db root USER
Time taken: 0.29 seconds, Fetched: 1 row(s)
简略写法:
desc database 数据库名;
查询结果:
hive (default)> describe database hive_test;
OK
db_name comment location owner_name owner_type parameters
hive_test hdfs://hadoop:9000/usr/hive/warehouse/hive_test.db root USER
Time taken: 0.29 seconds, Fetched: 1 row(s)
操作语句:
use 数据库名;
执行结果:
hive (default)> use hive_in_action;
OK
Time taken: 0.107 seconds
hive (hive_in_action)>
显示当前所在数据库操作:
set hive.cli.print.current.db=true;
执行结果:
hive> set hive.cli.print.current.db=true;
hive (hive_in_action)>
普通删除:
drop database 数据库名;
执行效果:
hive (default)> drop database hive_test;
OK
Time taken: 1.201 seconds
hive (default)>
默认情况下,Hive不允许删除一个里面有表存在的数据库。
如果想删除数据库,要么先将数据库中的表全部删除,此时可以使用CASCADE关键字,使用该关键字后,Hive会自己将数据库下的表全部删除。慎用慎用!
强行删除:
drop database 数据库名 cascade;
执行结果:
hive (default)> use hive_in_action;
OK
Time taken: 1.602 seconds
hive (hive_in_action)> drop database hive_in_action;
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidOperationException(message:Database hive_in_action is not empty. One or more tables exist.)
hive (hive_in_action)> drop database hive_in_action cascade;
OK
Time taken: 2.491 seconds
hive (hive_in_action)> show databases;
OK
database_name
default
hive_test
以上,就是本期内容,希望对你有帮助~