第四章 HiveQL:数据定义
hive有一个默认的数据库default,如果没有显式地指定数据库,默认是default库
创建数据库
create database if not exists test;
显示所有数据库
show databases;
show databases like 't*';
hive会为每个数据库创建一个目录,数据库中的表对应该目录下的子目录
default数据库是个例外,这个数据库没有自己的目录,所以default下的表会直接在仓库目录下创建子目录,如/hive/warehouse/tablename1/
如test库目录是/hive/warehouse/test.db或/usr/hive/warehouse/test.db
当执行create database操作时,hive会创建目录,如/hive/warehouse/test.db
创建数据库时可以指定描述信息:
create database if not exists databasename comment 'aaaaaaaaaaaaaaa';
create database if not exists databasename1 with dbproperties ('a'='b','c'='d');
describe database extended databasename1; 可以显示出数据库的属性信息
drop database databasename;
drop database if exists databasename;
默认情况下,hive不允许删除一个包含表的数据库;解决办法,一是可以先手动删除表再删除数据库;二是使用cascade关键字
drop database if exists databasename cascade;
数据库被删除时,对应的hdfs上的目