0


2.Hive创建数据库

1.数据库操作

1.1 创建数据库

create database test comment 'Just for test' location '/abcd' 
with dbproperties('aaa'='bbb');

comment后面指的是注释;location后面是数据库存放路径;dbproperties代表了数据库的属性

ps.避免要创建的数据库已经存在错误,增加if not exists判断:

create database if not exists db_hive;

1.2 查询数据库

1)显示数据库

show databases;
  1. 过滤显示查询的数据库
show databases like db_hive;
  1. 查看数据库信息
desc database db_hive;

4)查看更详细的数据库信息

desc database extended db_hive;

**5) 切换数据库 **

use db_hive

1.3 修改数据库

例如:

 alter database db_hive set dbproperties('createtime'='20170830');

1.4 删除数据库

1)删除空数据库

drop  database db_hive;
  1. 删除非空数据库
drop database db_hive cascade;

ps.cascade代表级联删除 (是一种强制删除,需要慎用)

2.数据表操作

2.1 创建数据表

普通表格(最常用)

create table student2(id int comment 'id', name string COMMENT 'nnnn')
COMMENT 'student2 shi wo'
row format delimited fields terminated by '\t'  // 区分每行
           collection items terminated by '_'  //集合元素按下划线隔开
           map keys         terminated by ':'  // kv按分号隔开
tblproperties('aaa'='bbb');

** 拷贝表格数据:**

** 拷贝表格结构:**

create table stu3 like student2 

2.2 查询数据表

-- 查询表列表
show tables;
-- 查询表结构
desc student2;
-- 查询更详细的信息
desc formatted student2;

2.3 修改数据表

** 重命名表格**

alter table student2 rename to stuxxx;

** 增加/修改/替换列信息(一般用不到)**

alter table stuxxx 
add columns (age int comment 'age');
alter table stuxxx
change column id idname bigint comment 'idxxx'; // 修改id那一列对应的属性
alter table stuxxx 
replace columns (id string comment 'abc'); //比如说之前是三列,现在替换成一列了

2.3 删除表

-- 删除表
drop table stu;
-- 删除表但不删除数据
truncate table stu;

3. 数据操作

3.1 导入数据

从本地导入数据到表格(local)

load data local inpath '/opt/module/hive/datas/student.txt' 
into table student;

从本地导入数据到表格并覆盖(local overwrite)

load data local inpath '/opt/module/hive/datas/student.txt' 
overwrite into table student;

从集群导入数据到表格并覆盖

load data inpath '/datas/student.txt' 
overwrite into table student;

3.2 插入数据

插入数据

insert into student2 values (1001, 'zhangsan'),(1002, 'lisi');

插入查询结果(最常用)

insert into student2 
select id, name from student where id > 1002;

插入查询结果(覆盖)

insert overwrite table student2 
select id, name from student where id > 1002;

ps.注意没有into

** 将查询结果直接建表**

create table student3 as 
select id, name from student;

3.3 内部表

ps.删除普通表格的时候,数据会跟着删除,而删除外部表的时候,数据不会删除

创建普通表格:

create table student (id int, name string) 
row format delimited fields terminated by '\t';

创建外部表(external):

create external table stu_ex (id int, name string) 
row format delimited fields terminated by '\t';

将内部表转换为外部表:

alter table stu_ex set tblproperties('EXTERNAL'='TRUE'); //kv都要大写

将表格改回管理表:

alter table stu_ex set tblproperties('EXTERNAL'='FALSE'); // 大写
标签: 数据库 hive hadoop

本文转载自: https://blog.csdn.net/m0_58420188/article/details/130466819
版权归原作者 菠萝橡皮刀 所有, 如有侵权,请联系我们删除。

“2.Hive创建数据库”的评论:

还没有评论