Hive笔记之数据库操作

创建数据库

hive创建数据库的最简单写法和mysql差不多:

1

create database foo;

仅当名为foo的数据库当前不存在时才创建:

1

create database if not exists foo;

创建数据库时指定位置,这个位置一般是在hdfs上的位置:

1

create database foo location '/db/foo';

 

查看已经创建的数据库:

1

show databases ;

使用通配符查看foo开头的数据库:

1

show databases like 'foo.*';

 

查看创建数据库的语句:

1

show create database foo ;

image

hive为每一个数据库创建一个目录,这个数据库中的表将会以子目录的形式放在这个数据库目录下

有一个例外就是default数据库中的表,default数据库没有自己的目录,所以是直接放在/user/hive/warehouse下面的:

image 

同样的,当创建数据库如果没有指定存储位置,默认就是在/user/hive/warehouse/下的:

image

 

数据库描述信息

在创建数据库时可以指定描述性信息:

1

create database foo comment 'this is foo database';

通过describe database可以查看到数据库的详细信息:

1

describe database foo;

image

 

数据库键值对信息

数据库可以有一些描述性的键值对信息,在创建时添加:

1

create database foo with dbproperties ('own'='cc''day'='20180120');

查看数据库的键值对信息:

1

describe database extended foo;

image

要修改数据库的键值对信息:

1

alter database foo set dbproperties ('k1'='v1''k2'='v2');

image

 

删除数据库

1

drop database if exists foo;

 

注意:

默认情况下是不允许直接删除一个有表的数据库的:

image

删除一个有表的数据库有两种办法:

1. 先把表删干净,再删库。

2. 删库时在后面加上cascade,表示级联删除此数据库下的所有表:

1

drop database if exists foo cascade;

 

prompt显示当前数据库名称

如果在一个数据库很多的环境下工作,需要 在不同的库之间切来切去(手动敲查询的时候全使用dbName.table可不是什么好主意…),可能一不小心就忘记自己当前在哪个数据库下了,可以通过设置一个属性改变当前的命令提示符,更专业的说法是prompt(用过CLI界面的应该对这个概念很熟悉),通过设置hive.cli.print.current.db属性可以在hive cli中显示当前数据库的名称,比如当前的数据库名称是foo:

1

set hive.cli.print.current.db=true

image

 

 【本篇文章】以及Github会持续更新......另外作者提供多年悉心整理的计算机各类视频教程,如Kafka、Mysql、Tomcat、Docker、Spring、MyBatis、Nginx、Netty、Dubbo、Redis、Netty、Spring cloud、分布式、高并发、性能调优、微服务、云计算、大数据、人工智能等,不用注册,可直接通过网盘下栽,请点击此连接:http://www.5678xiazai.com/7ilrwbc1bkvscxgj/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值