1.创建数据库
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];
2.显示数据库
show databases;
3.查看建库语句
show create database test;
4.查看数据库信息
desc database test;
5.修改数据库
ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...);
ALTER (DATABASE|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role;
6.使用数据库
use test;
7.删除数据库
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];
8.查看当前数据库
select current_database();
set hive.cli.print.current.db=true;
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
9.DDL 语句
Data Definition Language,数据定义包括schema的定义和查看,hive的主要DDL语句包括:
CREATE DATABASE/SCHEMA, TABLE, VIEW, FUNCTION, INDEX
DROP DATABASE/SCHEMA, TABLE, VIEW, INDEX
TRUNCATE TABLE
ALTER DATABASE/SCHEMA, TABLE, VIEW
SHOW DATABASES/SCHEMAS, TABLES, TBLPROPERTIES, PARTITIONS, FUNCTIONS, INDEX[ES], COLUMNS, CREATE TABLE
DESCRIBE DATABASE/SCHEMA, table_name, view_name
什么是database,schema,table,列,行,user.
database: 一个大的仓库,仓库分了很多很多的房间.
schema : 是database中的房间,一个schema代表一个房间.
table : 是每个schema中的床,table被放入每个房间中,不能放置在房间之外,那岂不是晚上睡觉无家可归啊.
user : 是每个schema的主人,其实user是对应数据库的(即user是每个仓库的主人),既然有操作数据库的(仓库)的权利,就肯定有操作数据库中每个schema(房间)的权利.
如果user是某个仓库的主人,那么这个仓库的使用权和仓库中的所有东西都是他的(包括房间),他有完全的操作权,可以从每个房间扔掉不用的东西,也可以放置一些有用的东西到某一个房间.
和现实中的相似,还可以给user分配具体的权限,也就是他到某一房间能做些什么,是只能看(read-only),还是可以像主人一样有所有的控制权(r/w),这个就要看这个user所对应的角色role了.
然后床上可以放置很多物品,好比table可以放置很多列和行一样,数据库中存储数据的基本单元是table,现实中每个仓库放置物品的基本单位就是床.