Hive基础知识(八):Hive对数据库的增删改查操作

本文详细介绍了如何在Hive中创建、查询、修改和删除数据库,包括创建时的ifnotexists选项,查询数据库的方法,如显示所有数据库、过滤查询和查看详细信息,以及ALTERDATABASE和DROPDATABASE命令的使用。
摘要由CSDN通过智能技术生成

1. 创建数据库

CREATE DATABASE [IF NOT EXISTS] database_name
[COMMENT database_comment]#注释
[LOCATION hdfs_path]#指定当前库的hdfs目录
[WITH DBPROPERTIES (property_name=property_value,...)]; #备注创建作者和创建时间

1)创建一个数据库,数据库在 HDFS 上的默认存储路径是/user/hive/warehouse/*.db。

hive (default)> create database db_hive;

2)避免要创建的数据库已经存在错误,增加 if not exists 判断。(标准写法)

hive (default)> create database db_hive;
FAILED: Execution Error, return code 1 from 
org.apache.hadoop.hive.ql.exec.DDLTask. Database db_hive already exists
hive (default)> create database if not exists db_hive;

3)创建一个数据库,指定数据库在 HDFS 上存放的位置

hive (default)> create database if not exists hive3 location '/hive3';

2. 查询数据库

2.1 显示数据库

1)显示数据库

hive (default)> show databases;
OK
database_name
default
hive3
Time taken: 0.41 seconds, Fetched: 2 row(s)

2)过滤显示查询的数据库

hive (default)> show databases like 'hi*';
OK
database_name
hive3
Time taken: 0.142 seconds, Fetched: 1 row(s)

2.2 查看数据库详情

1)显示数据库信息

hive (default)> desc database hive3;
OK
db_name comment location  owner_name  owner_type  parameters
hive3  hdfs://hadoop100:8020/hive3  zzdq USER
Time taken: 0.187 seconds, Fetched: 1 row(s)

2)显示数据库详细信息,extended

hive (default)>  desc database extended hive3;
OK
db_name comment location  owner_name  owner_type  parameters
hive3  hdfs://hadoop100:8020/hive3  zzdq USER

2.3 切换当前数据库

hive (default)> use hive3;
OK
Time taken: 0.049 seconds

3. 修改数据库

用户可以使用 ALTER DATABASE 命令为某个数据库的 DBPROPERTIES 设置键-值对属性值,来描述这个数据库的属性信息。

hive (hive3)> alter database hive3 set dbproperties("createTime"="202-10-26");
OK
Time taken: 0.17 seconds

在 hive 中查看修改结果

hive (hive3)> desc database extended hive3;
OK
db_name comment location  owner_name  owner_type  parameters
hive3  hdfs://hadoop100:8020/hive3  zzdq USER {createTime=202-10-26}
Time taken: 0.065 seconds, Fetched: 1 row(s)

4. 删除数据库

1)删除空数据库(drop命令只能删除空的数据库)

hive>drop database db_hive2;

2)如果删除的数据库不存在,最好采用 if exists 判断数据库是否存在

hive> drop database db_hive;
FAILED: SemanticException [Error 10072]: Database does not exist: db_hive
hive> drop database if exists db_hive2;

3)如果数据库不为空,可以采用 cascade 命令,强制删除

hive> drop database db_hive;
FAILED: Execution Error, return code 1 from 
org.apache.hadoop.hive.ql.exec.DDLTask.
InvalidOperationException(message:Database db_hive is not empty. One or 
more tables exist.)
hive> drop database db_hive cascade;

  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值