数据库
首页 > 数据库> > Hadoop之Hive数据库和表的增删改查(DDL)

Hadoop之Hive数据库和表的增删改查(DDL)

作者:互联网

Hive QL 是Hive支持的类似SQL的查询语言。Hive QL大体可以分为DDL、DML和UDF语言。DDL语言主要是创建数据库、创建表、数据库和表的删除;DML主要进行数据的添加、查询;UDF支持用户定义查询函数。

这里写目录标题

本文主要介绍DDL语言

数据库和数据库表的增删改查!

1.1 创建数据库

CREATE DATABASE [IF NOT EXISTS] database_name --判断是否存在
[COMMENT database_comment]--注释
[LOCATION hdfs_path]--存储数据的路径
[WITH DBPROPERTIES (property_name=property_value, ...)];

给大家展示一下建表语句:
在这里插入图片描述
创建一个数据库,数据库的默认存储位置在/user/hive/warehouse/*.db。
下面是一些常用的创建数据库的命令。

create database db_hive;--简单创建一个数据库
create database db_hive2 location '/database.db';--在根目录下创建一个数据库
use db_hive;--进入该数据库

1.2 查询数据库

show databases;
show databases like 'db_hive*';
desc database hive2; --显示一部分信息
desc database extended hive2; --显示额外的信息

1.3 修改数据库属性

ALTER DATABASE 命令为某个数据库的 DBPROPERTIES 设置键-值对属性值,来描述这个数据库的属性信息.

 alter database hive
 set dbproperties('createtime'='20210430');

在这里插入图片描述

1.4 删除数据库

drop database hive2;
drop database if exists db_hive2;--最好采用是否存在判断一下

删除非空会报错!
在这里插入图片描述

drop database hive2 cascade;

成功删除!
在这里插入图片描述

1.5 创建表

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name--建表,分为内、外表
[(col_name data_type [COMMENT col_comment], ...)] --列名以及列名的注释
[COMMENT table_comment]--表的注释
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]--创建分区表
[CLUSTERED BY (col_name, col_name, ...)--分桶表
[SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]--分桶表的属性,按什么分桶,分几段
[ROW FORMAT row_format]--定义行的格式
[STORED AS file_format]--指定文件格式
[LOCATION hdfs_path]--表的存储位置
[TBLPROPERTIES (property_name=property_value, ...)]--额外的属性
[AS select_statement]--通过查询其他表的方式建表
-- 查询表的类型
desc formatted 表名;
--将管理表转化为外部表
alter table 表名 set tblproperties('EXTERNAL'='TRUE');
--将外部表转化为管理表
alter table 表名 set tblproperties('EXTERNAL'='FALSE');
CREATE TABLE test01(id int,name string)
row format delimited fields terminated by ',';

1.6 修改表

--重命名语法
ALTER TABLE 表名 RENAME TO 新的表名;
-- 例子
alter table test01 rename to test05;

在这里插入图片描述

更新列

ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name 
column_type [COMMENT col_comment] [FIRST|AFTER column_name]
--将test01 id那一列转换为string类型并重命名为stu_id
alter table test01 change id stu_id string;

修改类型成功
在这里插入图片描述

--将test01 stu_id那一列重命名为id 但也需要指定数据类型
alter table test01 change  stu_id id string;

重命名成功
在这里插入图片描述
增加和替换列

ALTER TABLE table_name ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)
--增加 一列
alter table test01 add columns(name strings);

ADD增加一列成功
在这里插入图片描述

--replace 替换表的列
alter table test01 replace columns (stu_id string);

replace可以将指定列转化为重命名为其他列,可以将2列命名为1列(会只显示一列的原因只是元数据修改了,hdfs中并未修改)
在这里插入图片描述
我们再将表的列名重新设置为2个,数据又回来了。这里可以说明,replace只是改变了元数据的列数,并不会改变HDFS的列数。
在这里插入图片描述
ADD 是代表新增一字段,REPLACE 则是表示替换表中所有字段

1.7 删除表

 drop table 表名;

到这里Hive的DDL语言就学习完了,主要是对数据库和数据库中的表进行增删改查的工作。下一章介绍DML语言,大家敬请期待!

参考资料

《大数据Hadoop3.X分布式处理实战》

标签:name,database,--,数据库,改查,Hadoop,和表,table,col
来源: https://blog.csdn.net/weixin_48077303/article/details/116276245