关于hive建表查询语句小记

article/2025/10/1 4:12:48

库相关操作

创建数据库

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 表名;

以上就是库,表增删改的基本内容啦

如有错误,欢迎评论区指正

部分参考尚硅谷,如有侵权,联系删


http://chatgpt.dhexx.cn/article/JBCvNG8q.shtml

相关文章

hive、pg库,建表语句及查询表结构语句

1、hive hive 建表语句 DROP TABLE IF EXISTS tmp_001; CREATE TABLE tmp_001 (etl_time timestamp comment , day_id double comment , subs_id string comment , msisdn int comment ) comment partitioned by…

3、Hive数据仓库——建表语句

文章目录 Hive基本操作Hive查看SQL解析计划Hive建表建表1:全部使用默认建表方式 Hive 内部表 (Managed tables)指定location (这种方式也比较常用)formatted 查看该表的结构化数据,但并不列出表中的数据将本地数据上传到HDfS上 Hi…

HIVE的三种建表方式

目录 一、直接建表二、as (直接使用查询结果插入到一张新表)三、like(复制表结构) 一、直接建表 中括号里面的均为可选项 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name[(col_name data_type [COMMENT col_comment], ...…

Hive学习3:Hive三种建表语句详解

注:hive其他语法在hive官网有说明,建议初学者,去官网学习一手的资料, 官网:https://cwiki.apache.org/confluence/display/Hive/Home#Home-UserDocumentation Create Table 官网说明 Hive建表方式共有三种&#xff…

Hive_ Hive 建表语句详解

参考文章: https://blog.csdn.net/qq_36743482/article/details/78383964 最近博主在编写一个每天定时创建Hive 分区的脚本,其中需要创建Hive表, 开始的时候我以为创建Hive 表的语句顺序是比较宽松的,经过测试发现不然&#xf…

Hive建表语句详解--CREATE TABLE

创建表的三种方法 Hive创建表的方式(默认路径/user/hive/warehouse,也可以location指定,主要针对external表) 1、使用create命令创建一个新表,带分区 CREATE TABLE mydb.dept( dept_no int, addr string, tel string) par…

【Hive】Hive 创建表

学习笔记—Hive创建表 1. Hive语句的特点 HQL 语言大小写不敏感,但内容分大小写(where ,if/ case when,如:数据表内容某人名叫Tom,则条件后不能写tom,HDFS 路径名(NameNode)分大小写…

hive建表语句

目录 一、建表语句1、创建内部表2、创建外部表3、建表高阶语句 CTAS 和 WITH4、向临时表中插入原表中的数据5、创建分区表 一、建表语句 1、创建内部表 建表: CREATE TABLE phone_info(id int,name String,storage String,price double) ROW FORMAT DELIMITED //…

c语言void* arg,void * arg什么意思

许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。 2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据…

什么是arguments

什么是arguments 形参:函数定义的参数实参:函数调用时实际传递的参数。参数匹配是从左向右进行匹配。如果实参个数少于形参,后面的参数对应赋值undefined。实参的个数如果多于形参的个数,可以通过arguments访问。【案例】模拟封装…

python函数参数*arg和**args的用法

import numpy as np """ 做饭函数,表示午饭有什么,foods表示一个元组 """ def make_meals(*foods):for item in foods:print(今天午饭有,item)def dictionary(**dic):for key,value in dic.items():print(英文名(key) , key , &…

什么是:arguments

在调用函数时,浏览器每次都会传递进两个隐含的参数: 1.函数的上下文对象this 2.封装实参的对象arguments 什么是:arguments 1.arguments是一个类数组对象,它也可以通过索引来操作数据,也可以获取长度 在调用函数时,我们所传递的实…

python中的arg,*args,args,**kwargs,kwargs的关系和区别

arg就是指一个参数 def func(arg):print(arg)func(2) *args 是用来将参数打包成元组给函数调用的,args即是传给函数的参数所构成的元组 def func(arg, *args):print(arg, *args)func(1, 2, 3, 4, 5, 6, 7)**kwargs是用来将关键字参数打包成字典给函数调用的&#…

Python *arg与**kwarg区别

*arg 与 **kwargs介绍 args 是 arguments 的缩写,表示位置参数;kwargs 是 keyword arguments 的缩写,表示关键字参数。这其实就是 Python 中可变参数的两种形式,并且*args 必须放在 **kwargs的前面,因为位置参数在关键…

argc,argv是什么

来源:微信公众号「编程学习基地」 文章目录 argc,argv是什么如何解析程序参数“选项”是什么?"选项字符串"是什么解析参数 argc,argv是什么 如果你是一个 Linux 开发者,那么你一定需要给应用程序传递参数。…

数学符号arg的含义

argument of the maximum/minimum arg max f(x): 当f(x)取最大值时,x的取值 arg min f(x):当f(x)取最小值时,x的取值 表示使目标函数取最小值时的变量值 From Wikipedia In mathematics, arg max (or argmax) stands for the argument of…

arg和*argv[]是什么?

我们知道main函数的标准原型应该是int main(int argc, char *argv[]);。argc是命令行参数的个数,argv是一个指向指针的指针。那为什么要写成char *argv[]而不写成char argv呢?这样写给表示argv不是指向单个指针,而是指向一个指针数组的首元素…

数学符号arg含义

argument of the maximum/minimum arg max f(x): 当f(x)取最大值时,x的取值 arg min f(x):当f(x)取最小值时,x的取值 表示使目标函数取最小值时的变量值 From Wikipedia In mathematics, arg max (or argmax) stands for the argument of…

MLT解读

简介 在很多方法都在检测上做文章的时候,能看到MLT这样一篇在Public赛道做研究并取得相当好的效果的文章是很难得的,就像论文的标题一样,它直面了MOT目前针对二维图像的一个痛点,那就是遮挡问题尤其是密集人群场景下的遮挡问题。…

什么是TLB ?

TLB:Translation Lookaside Buffer. 根据功能可以译为快表,直译可以翻译为旁路转换缓冲,也可以把它理解成页表缓冲。里面存放的是一些页表文件(虚拟地址到物理地址的转换表)。当处理 器要在主内存寻址时,不是直接在内存…