库相关操作- CREATE DATABASE [IF NOT EXISTS] database_name
- [COMMENT database_comment]
- [LOCATION hdfs_path]
- [WITH DBPROPERTIES (property_name=property_value, ...)];
IF NOT EXISTS
也就是没有重复库就创建,有重复就不执行建库
保证了建库的容错性
COMMENT database_comment
库的备注,批注,可以简略写一下库的作用
LOCATION hdfs_path
指定库在hdfs的存储路径
default库的路径 /user/hive/warehouse上
往后建库的默认路径 /user/hive/warehouse/库名.db
WITH DBPROPERTIES
以键值对的形式对表库的属性进行自定义,如时间,创建者等
- create database if not exists tss1
- comment 'test base'
- location '/tmp/tss.db'
- with dbproperties ('time'="2020-10-28",'writer'="tss");

use 库名

alter database|schema 更改的属性

- drop database [if not exists] 库名;
-
- 数据库不为空
- drop database [if not exists] 库名 cascade;

- 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]
各个选项介绍
(1)IF NOT EXISTS 选项来忽略表存在这个异常。
(2)EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时可以指定一个指向实际数据的路径(LOCATION),在删除表的时候,内部表的元数据和数据会被一起删除,而外 部表只删除元数据,不删除数据。
(3)COMMENT:为表和列添加注释。
(4)PARTITIONED BY 创建分区表
(5)CLUSTERED BY 创建分桶表
(6)SORTED BY 不常用,对桶中的一个或多个列另外排序
(7)ROW FORMAT 序列化数据,按照什么方式序列化处理
(8)STORED AS指定存储文件类型 常用的存储文件类型:SEQUENCEFILE(二进制序列文件)、TEXTFILE(文本)、RCFILE(列式存储格式文件)
(9)LOCATION :指定表在 HDFS 上的存储位置。
(10)AS:后跟查询语句,根据查询结果创建表。
(11)LIKE 允许用户复制现有的表结构,但是不复制数据。
举例:
- create table if not exists
- student( id int, name string )
- row format delimited fields terminated by '\t'
- stored as textfile
- location '/user/hive/warehouse/student';
创建一个管理表,字段之间按照'\t'分割,普通文本类型,在数据库default下创建表
- create table if not exists student2
- as select id, name from student;
根据as后面查询出的数据进行建表,类型一样,数据复制填入
- create table if not exists student3
- like student;
根据like后面表的类型创建表,类型一样,数据不复制
- create external table
- if not exists
- student(id int, name string)
- row format delimited fields terminated by '\t';
创建一个外部表,其他与管理表类似
- 管理表改外部表
- alter table student2 set tblproperties('EXTERNAL'='TRUE');
- 外部表转内部表
- alter table student2 set tblproperties('EXTERNAL'='FALSE');
注意:('EXTERNAL'='TRUE')和('EXTERNAL'='FALSE')为固定写法,区分大小写!
ALTER TABLE table_name RENAME TO new_table_name
重命名表
- ALTER TABLE table_name CHANGE [COLUMN]
- col_old_name col_new_name column_type
- [COMMENT col_comment]
- [FIRST|AFTER column_name]
修改表中字段
其中comment 指定字段注解
first 修改字段位置放到第一位,after 放在什么字段之后

增加替换
其中add是追加字段
REPLACE 则是表示替换表中所有字段
其中替换是可以多个字段写的
其中替换和修改使用较多,因为add的位置不可控,相比之下灵活性不高
alter table student add columns(sex string);
增加字段
alter table student replace columns(id long,sex string, name string);
替换表
drop table 表名;
以上就是库,表增删改的基本内容啦
如有错误,欢迎评论区指正
部分参考尚硅谷,如有侵权,联系删