hive創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)法參考如下網(wǎng)址:Create/Drop/Alter/Use Database
1.創(chuàng)建數(shù)據(jù)庫(kù)
企業(yè)應(yīng)用中標(biāo)準(zhǔn)的創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)法如下:
create database if not exists db_hive;
這句話的意思是如果不存在數(shù)據(jù)庫(kù)db_hive則創(chuàng)建該數(shù)據(jù)庫(kù)铺呵,如果不加入if not exists昙篙,那么在創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候如果存在db_hive,則會(huì)拋出異常衩婚。加上這句話后就不會(huì)拋出異常。
指定數(shù)據(jù)庫(kù)存放的路徑
我們可以通過(guò)LOCATION關(guān)鍵字來(lái)指定hive數(shù)據(jù)庫(kù)文件存放的位置岗照,默認(rèn)的位置是在hdfs上的目錄/user/hive/warehouse下面,會(huì)以數(shù)據(jù)庫(kù)的名稱(chēng)來(lái)在hdfs上新建目錄。指定路徑創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)句如下:
create database if not exists db_hive_02 location '/user/text/db_hive_02.db';
創(chuàng)建成果后可以看到在hdfs的/user/text目錄下會(huì)新建一個(gè)db_hive_02.db的目錄,后續(xù)在數(shù)據(jù)庫(kù)db_hive_02里面創(chuàng)建的表默認(rèn)都會(huì)存儲(chǔ)在該目錄下把夸。
2.數(shù)據(jù)庫(kù)常用操作指令
show databases; --查看數(shù)據(jù)庫(kù)
show databases like ‘db_hive*’; --查看以db_hive開(kāi)頭的數(shù)據(jù)庫(kù)
use db_hive_02; --使用數(shù)據(jù)庫(kù)
desc database db_hive_02; --查看數(shù)據(jù)庫(kù)的描述信息
如果要查看數(shù)據(jù)庫(kù)更詳細(xì)的信息,則需要增加extended關(guān)鍵字:
desc database extended db_hive_02;
drop database db_hive_02; --刪除數(shù)據(jù)庫(kù)db_hive_02
如果數(shù)據(jù)庫(kù)中有表存在的話铭污,在刪除數(shù)據(jù)庫(kù)的時(shí)候需要增加關(guān)鍵字CASCADE恋日,表示在刪除數(shù)據(jù)庫(kù)的時(shí)候可以將數(shù)據(jù)庫(kù)下面的所有表也進(jìn)行刪除。數(shù)據(jù)庫(kù)刪除后相應(yīng)的hdfs上的目錄也會(huì)被刪除况凉。
drop database db_hive_02 cascade;
另外,在刪除數(shù)據(jù)庫(kù)的時(shí)候?yàn)榱瞬粧伋霎惓8骺剑枰黾觟f exists關(guān)鍵字刁绒,這樣如果數(shù)據(jù)庫(kù)被別人刪除的時(shí)候就不會(huì)拋出異常了:
drop database if exists db_hive_02;