MySQL
DDL 数据定义语言--create alter drop
DML 数据操纵语言--insert delete update select
DCL 数据控制语言--grant revoke deny
Hive的DDL操作
~库操作
~表操作
一、库操作
Hive 的数据库相当于关系型数据库中的命名空间,而从本质上来说,Hive 中的数据库就是 HDFS 上的一个目录。
数据库常用的操作有:创建、查看、修改、删除等。
1.创建库
#完整语法:
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment] //关于数据库的描述
[LOCATION hdfs_path] //指定数据库在HDFS上的存储位置
[WITH DBPROPERTIES (property_name=property_value, ...)]; //指定数据库属性
1)最简单的用法
create database mydb;
--当名为 mydb 的数据库当前不存在时才能创建成功,否则会报错,需要使用下面的用法。
create database if not exists mydb;
2)创建数据库指定存储位置
创建数据库时,数据库的默认存储位置由参数 hive.metastore.warehouse.dir 指定,默认为 /user/hive/warehouse。
需要注意的是,default 数据库没有自己的目录,是直接存放在参数 hive.metastore.warehouse.dir 指定目录下。另外,可以通过指定 LOCATION 选项指定数据库在 HDFS中的存储位置。
create database mydb location '/db/mydb';
3)创建数据库时指定描述信息
create database mydb comment 'this is mydb database';
4)创建数据库时指定键值对信息
create database mydb with dbproperties ('own'='wei', 'day'='20200402');
例:
(1)创建普通的数据库
create database t1;
(2)创建库的时候检查存与否
create database if not exists t1;
(3)创建库的时候带注释
create database if not exists t2 comment 'learning hive';
(4)创建带属性的库
create database if not exists t3 with dbproperties('creator'='hadoop','date'='2018-04-05');
create database if not exists t4 with dbproperties('a'='1','b'='2');
2.查看库:
(1)查看有哪些数据库
show databases;
(2)显示数据库的详细属性信息
desc database 库名;
desc database extended t3;
show databases like 's*';
(3)查看正在使用哪个库
在 hive命令行显示当前数据库两种方式。
a)、可以在hive命令行执行以下语句显示当前数据库:
select current_database();
b)、可以设置hive属性在命令行显示当前数据库:
set hive.cli.print.current.db=true;
注: 这是当前的session窗口有效;永久修改,向hive-site.xml文件添加一下配置:
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
(4)查看创建库的详细语句
show create database t3;
3.切换库:
use database;
4.删除库:
默认情况下,hive 不允许删除包含表的数据库,有两种解决办法:
# 手动删除库下所有表,然后删除库
# 使用 cascade 关键字
drop database if exists dbname cascade;
默认情况下就是 restrict drop database if exists myhive ==== drop database if exists myhive restrict
例:
(1)删除不含表的数据库
语法:
drop database 库名;--只能删除空库 里面有没有表格
drop database if not exists 库名;
例:show tables in t1;
drop database t1;
show databases;
(2)删除含有表的数据库
语法:drop database 库名 cascade;--删除库 非空库
例:create database t3;
use t3;
create table a1(id int);
drop database if exists t3 cascade;
5.修改库:基本不用,一般只使用对扩展属性的修改
语法:
ALTER DATABASE 数据库名 SET DBPROPERTIES (属性名=属性值, ...);
ALTER DATABASE 数据库名 SET OWNER [USER|ROLE] user_or_role;
例如,修改 mydb 的扩展属性。
alter database mydb set dbproperties ('own'='god', 'day'='2020-2-2');
二、表的操作:
1、Hive的数据类

最低0.47元/天 解锁文章
8648

被折叠的 条评论
为什么被折叠?



