当前位置: 首页 > news >正文

Hive语法学习总结

Hive SQL语法学习总结

  • hive参数
  • 库操作
    • 1.创建库
    • 2.具体案例
    • 3.库的其他操作
  • 表和库的路径演示
  • 表的操作
    • 创建表
    • 插入数据

hive参数

一 hive常用交互命令hive -e 'sql语句'hive -f  sql文件  //文件中是sql语句二 参数的设置方式一:在客户端中设置参数(当次有效)set 参数名=参数值;方式二:在启动客户端时设置参数(当次有效)hive -hiveconf 参数名=参数值beeline --hiveconf 参数名=参数值  -u jdbc:hive://hadoop102:10000 -n atguigu方式三:永久有效将参数设置在配置文件(hive-site.xml)hive客户端(不需要重启服务--因为hive客户端不需要连接hiveserver2服务)beeline客户端(需要重启服务-因为beeline客户端需要连接hiveserver2服务)
--开启自动转换为本地模式
set hive.exec.mode.local.auto=true; 

库操作

1.创建库

CREATE DATABASE [IF NOT EXISTS] 库名
[COMMENT '库的描述信息-类似于注释']
[LOCATION '库在HDFS上对应的目录的所在路径']
[WITH DBPROPERTIES ('属性名'='属性值', ...)];

2.具体案例

create database db3;#if not exists : 如果库不存在则创建 存在则不创建。如果没有该字段库存在则报错
create database if not exists db3;create database db4
comment 'this is db4'
location '/db4'
with dbproperties('ver'='1.0');create database db5
comment 'this is db4'
location '/db55'  #元数据中是对应的
with dbproperties('ver'='1.0');

3.库的其他操作

#查看库
#通配符可以是  *任意个数任意内容的字符   |表示或
#格式:SHOW DATABASES [LIKE '匹配规则-不是正则表达式'];
show databases;#查看库的信息 : 
#extended :有了该字段才可以查看库的属性
#格式 :desc database [extended] 库名;
desc database db5;#选库:use 库名
use db1;#删除库 :
#[IF EXISTS]  :如果库存在则删除不存在则不删。如果没有该字段库不存在则报错。
#[RESTRICT|CASCADE] :默认使用的是RESTRICT只能删除空库  cascade:可以删除非空的库
#格式:DROP DATABASE [IF EXISTS] 库名 [RESTRICT|CASCADE];
drop database db1;
drop database if exists db1;
drop database db2 cascade;#查看库的信息-建库语句
show create database 库名;#修改数据库
--修改dbproperties
#ALTER DATABASE 库名 SET DBPROPERTIES ('属性名'='属性值', ...);
alter database db3 set dbproperties('ver'='1.0');--修改location
#ALTER DATABASE 库名 SET LOCATION 'HDFS的路径';
alter database db3 set location 'hdfs://hadoop102:8020/demo/db33'--修改owner user
#ALTER DATABASE 库名 SET OWNER USER 用户名;
desc database extended db3;

表和库的路径演示

create database d1
location '/d1';create table stu(
id int
)
location '/d2';

表的操作

创建表

		#[TEMPORARY] :创建一张临时表(当退出客户端时临时表被删除)#[EXTERNAL] :创建外部表 如果没有该字段创建的是管理表#[IF NOT EXISTS] :如果表不存在则创建存在则不创建 如果没有该字段表存在则报错CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [库名.]表名   [(字段名 字段类型 [COMMENT 字段的描述信息], 字段名2 字段类型 [COMMENT 字段的描述信息],...)][COMMENT 表的描述信息]#创建分区表 - 后面讲[PARTITIONED BY (字段名 字段类型 [COMMENT 字段的描述信息], ...)]#创建分桶表 - 后面讲[CLUSTERED BY (字段名1, 字段名2, ...)#对分桶字段中的内容排序  - 后面讲[SORTED BY (字段名 [ASC|DESC], ...)] INTO 桶的数量 BUCKETS][ROW FORMAT row_format] #存储格式 - 后面讲(默认是textfile)[STORED AS file_format]#一张表对应HDFS上的一个目录[LOCATION hdfs的路径]#表的属性[TBLPROPERTIES ('属性名'='属性值', ...)]2.创建表案例#案例一#[IF NOT EXISTS] :如果表不存在则创建存在则不创建 如果没有该字段表存在则报错create table if not exists emp(id int comment 'this is id',name string comment 'this is name')comment 'this is emp'location '/demo/emp'tblproperties('ver'='1.0');#案例二(创建临时表)#[TEMPORARY] :创建一张临时表(当退出客户端时临时表被删除)create TEMPORARY table emp2(id int,name string);#案例三 (基于现有的表创建一张新表)#create table 新表名 like 已经存在的表的表名;create table emp3 like emp;#案例四:将查询的结果创建成一张表create table 表名asselect查询语句;create table emp5
as
select * from emp;
ROW FORAMT DELIMITED 
[FIELDS TERMINATED BY char]  -- 各字段之间用什么分隔
[COLLECTION ITEMS TERMINATED BY char]  -- 复杂数据类型中各元素之间用什么分隔开
[MAP KEYS TERMINATED BY char]  -- map的key和value用什么分隔开
[LINES TERMINATED BY char] 	-- 每条数据之间用什么分隔
[NULL DEFINED AS char]	-- 数据中的null在文件中用什么字符表示=======================================================================建表语句格式一(数据不是json数据)
create table student(
name string,
friends array<string>,
students map<string,int>,
address struct<street:string,city:string,postal_code:int>
)
row format delimited
fields terminated by ',' 			-- 各字段之间用什么分隔
collection items terminated by '-'		-- 复杂数据类型中各元素之间用什么分隔开
map keys terminated by ':';				-- map的key和value用什么分隔开=====================================================================建表语句格式一(数据是json数据)
create table student_json(
name string,
friends array<string>,
students map<string,int>,
address struct<street:string,city:string,postal_code:int>
)
row format serde 'org.apache.hadoop.hive.serde2.JsonSerDe';  -- 用来处理json数据=======================================================================复杂数据类型如何查里面的元素:
select friends[0],students['xiaoyangyang'],address.city from student_json;说明:
select 数组类型[索引值],map类型['key'],struct类型.属性名 from student_json;=======================================================================
1.表的操作#查看所有表show tables;#查看表信息#[formatted] :可以查看表的详细信息。没有该字段只能看字段信息desc [formatted] 表名;
创建外部表和内部表#创建外部表#[EXTERNAL] : 创建外部表 没有该字段就是内部表create  external table external_table(id int,name string)row format delimited fields terminated by '\t';#创建内部表-管理表create table man_table(id int,name string)row format delimited fields terminated by '\t';二 外部表和管理表的区别1.删除外部表时只会删除元数据。删除管理表时会将元数据和HDFS上的数据全部删除。2.truncate table只能清空管理表。不能清空外部表。三 外部表和管理表相互转换#修改表的属性:alter table 表名 set tblproperties('属性名'='属性值');#FALSE是管理表 TRUE是外部表alter table external_table set tblproperties('EXTERNAL'='FALSE');

1.查看表#[IN 库名] :查看哪个库中的所有的表#LIKE ['identifier_with_wildcards']; 模糊查询#SHOW TABLES [IN 库名] LIKE ['identifier_with_wildcards'];2.修改表名ALTER TABLE 原表名 RENAME TO 新表名;3.列的操作#添加列:ALTER TABLE 表名 ADD COLUMNS (字段名 字段类型 [COMMENT 字段描述信息], ...)alter table emp add columns(age int comment 'this is age');#更新列的名字#ALTER TABLE 表名 CHANGE [COLUMN] 原字段名 新字段名 字段的类型 [COMMENT 字段的描述信息] [FIRST |  AFTER column_name]alter table emp change column age age2 int;#更新列的类型#注意类型 :比如int转bigint可以 但是string转int不可以#ALTER TABLE 表名 CHANGE [COLUMN] 字段名 字段名 字段的新类型 [COMMENT 字段的描述信息] [FIRST |  AFTER column_name]alter table emp change age2 age2 string;#更新列的位置#注意:一定要注意字段的类型#ALTER TABLE 表名 CHANGE [COLUMN] 原字段名 原字段名 原字段类型 [COMMENT 字段的描述信息] [FIRST |  AFTER column_name]#将name字段放在列的第一个位置alter table emp change column name name string first;#将name字段放在id的后面alter table emp change column name name string after id;#替换列#ALTER TABLE 表名 REPLACE COLUMNS (字段名 字段类型 [COMMENT 字段的描述信息], ...)#注意:①替换是依次替换 ②一定要注意替换的类型-int替换string肯定报错 #	   ③如果替换的列比被替换的列少-字段就会少。数据本身没有变化。alter table emp replace columns(id3 string,age3 string,name3 string);4.删除表#[if exists] : 如果表存在则删除不存在则不删除。如果没有该字段表不存在报错-但是没有报错drop table [if exists] 表名;5.清空表#注意:不能清空外部表TRUNCATE [TABLE] 表名;6.查看表信息#[formatted] : 可以查看表更详细的信息desc [formatted] 表名;7.查看建表语句show create table 表名;

插入数据

Load格式#[LOCAL]  :表示数据是在本地--从本地向表中导入数据。没有该字段表示从HDFS导数据到表中#[OVERWRITE] :表示覆盖。如果没有该字段是追加LOAD DATA [LOCAL] INPATH '文件路径' [OVERWRITE] INTO TABLE 表名 #等到分区表再说[PARTITION (partcol1=val1, partcol2=val2 ...)];案例1:从本地向表中导入数据-追加load data local inpath '/opt/module/hive/datas/student2.txt' into table student;案例2:从本地向表中导入数据-覆盖load data local inpath '/opt/module/hive/datas/student2.txt' overwrite into table student;案例3:从HDFS向表中导入数据 - 会将HDFS上的数据移动到表所对应的目录中load data inpath '/demo/datas/student2.txt' into table student2;=========================================================Insert2.1 将查询的结果插入到表中#into :追加  overwrite:覆盖INSERT (INTO | OVERWRITE) TABLE 表名#分区表再说[PARTITION (partcol1=val1, partcol2=val2 ...)] #查询语句select语句;案例1 - 追加:insert into table student3 select id,name from student where id < 1010;案例2 - 追加:insert into table student3(id) select id from student where id < 1010;案例3 - 覆盖:insert overwrite table student3 select id,name from student where id < 1005;案例4(错误的) - 覆盖(不能指定插入哪个字段)insert overwrite table student3(id) select id from student where id < 1003;2.2 插入给定数据INSERT INTO TABLE 表名(字段名1,字段名2,.......#后面再说[PARTITION (partcol1[=val1], partcol2[=val2] ...)] VALUES (1,2,3,........),(1,2,3,........),........;案例:insert into table student3(id,name) values(1,'a'),(2,'b');2.3 导出-将表中的数据导出#[LOCAL] :将表中的数据导出到本地。没有该字段导出到HDFS上INSERT OVERWRITE [LOCAL] DIRECTORY '导出的路径-导出到哪里'#可以指定导出的数据的各字段之间用什么分隔[ROW FORMAT row_format] #文件的存储格式-后面讲[STORED AS file_format] select语句;案例1insert overwrite local directory '/home/atguigu/datas' select * from student;案例2insert overwrite local directory '/home/atguigu/datas' row format delimited fields terminated by '\t' select * from student;

相关文章:

Hive语法学习总结

Hive SQL语法学习总结 hive参数库操作1.创建库2.具体案例3.库的其他操作 表和库的路径演示表的操作创建表插入数据 hive参数 一 hive常用交互命令hive -e sql语句hive -f sql文件 //文件中是sql语句二 参数的设置方式一&#xff1a;在客户端中设置参数(当次有效)set 参数名参…...

【Linux】TCP协议【中】{确认应答机制/超时重传机制/连接管理机制}

文章目录 1.确认应答机制2.超时重传机制&#xff1a;超时不一定是真超时了3.连接管理机制 1.确认应答机制 TCP协议中的确认应答机制是确保数据可靠传输的关键部分。以下是该机制的主要步骤和特点的详细解释&#xff1a; 数据分段与发送&#xff1a; 发送方将要发送的数据分成一…...

solidworks画螺母学习笔记

螺母 单位mm 六边形 直径16mm&#xff0c;水平约束&#xff0c;内圆直径10mm 拉伸 选择两侧对称&#xff0c;厚度7mm 拉伸切除 画相切圆 切除深度7mm&#xff0c;反向切除 拔模角度45 镜像切除 倒角 直径1mm 异形孔向导 螺纹线 偏移打勾&#xff0c;距离为2mm…...

WebGL的医学培训软件开发

开发基于WebGL的医学培训软件是一项复杂且技术性强的任务&#xff0c;需要结合医学专业知识和计算机图形学技术。以下是详细的开发流程和关键步骤。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.需求分析与定义 目标用户&#xf…...

新时代AI浪潮下,程序员和产品经理如何入局AIGC领域?

当下&#xff0c;AI浪潮席卷全球&#xff0c;AIGC大模型技术已经成为当今技术领域的一个重要趋势&#xff0c;对于产品经理来说&#xff0c;掌握这项技术不仅能够增强他们的职业技能&#xff0c;还能在竞争激烈的职场中脱颖而出。 为什么呢&#xff1f; 把握AI时代的机遇 AI技…...

OWASP top10--SQL注入(一)

SQL注入式攻击技术&#xff0c;一般针对基于Web平台的应用程序.造成SQL注入攻击漏洞的原因&#xff0c;是由于程序员在编写Web程序时&#xff0c;没有对浏览器端提交的参数进行严格的过滤和判断。用户可以修改构造参数&#xff0c;提交SQL查询语句&#xff0c;并传递至服务器端…...

java —— 类与方法

一、访问修饰符 在类和方法中&#xff0c;均可使用访问修饰符以锁定该类或方法的被访问权限。访问修饰符有四种&#xff1a; &#xff08;一&#xff09;public 同一个项目中&#xff0c;对所有的类可见。 &#xff08;二&#xff09;protected 同一个项目中&#xff0c;对…...

【MySQL精通之路】InnoDB-启动选项和系统变量

系统变量可以在服务器启动时设置TRUE或FALSE启用禁用&#xff0c;也可以通过使用--skip前缀来禁用 例如&#xff1a; 要启用或禁用InnoDB自适应哈希索引&#xff0c;可以在命令行中使用--skip-innodb-adaptive-hash-index或--innodb-adaptive-hash-index&#xff0c;或者在配置…...

嵌入式linux系统中文件系统制作方法详解

第一:制作目的 1、掌握嵌入式Ubuntu系统的构建方法 2、熟悉嵌入式Ubuntu文件系统映射压缩打包方法 3、掌握RK3399linux系统单文件系统更新方法 Ubuntu根文件系统制作完成之后,把制作好的ubuntu文件系统映射文件在出厂系统的基础上替换原有的ubuntu根文件系统,即对 Linux 系统…...

AI爆文写作:要写文章爆,这47个爆文前缀少不了!

47个爆文前缀:很震惊很好用 这些前缀,虽然被用了无数次,但每个人看到还是会忍不住点进去。 可以借鉴这样强情绪的句式。 序号前缀1就在刚刚…2真相曝光…3震惊国人…4惊天秘密…5疯狂转发…6删前速看…7千万别吃…8还敢喝吗…9癌症前兆…10赶快扔了…11太可怕了…12大事不…...

javas-core VS java-object-diff

对照工具选择 javas-core 和 java-object-diff ,对比demo https://github.com/kofgame/objectdiff-vs-javers&#xff0c;都为同源对比&#xff0c;都支持嵌套对象。 使用JMH测试方法进行性能测试&#xff0c;使用题库的QuestionResponseVO对象来进行对照对比&#xff0c;进行…...

dirsearch指令大全

文章目录 基本用法主要参数和选项目标和URL设置--url URL--url-list FILE 扩展名--extensions EXTENSIONS 字典文件--wordlists WORDLIST 线程和性能--threads THREADS--timeout SECONDS--delay MILLISECONDS 忽略状态码代理和请求设置--proxy PROXY--headers HEADERS 保存结果…...

C++基础:构建者设计模式

#include <iostream> #include <string> using namespace std; //构建者设计模式-一种工厂只生产一种复杂的产品 class robot {public:string head;string upbody;string downbody; };class robotBuilder {private:robot *myRobot;public:robotBuilder() //构造函…...

Swift 请求用户授权以跟踪其跨应用或网站的活动

步骤1&#xff1a;导入框架 首先&#xff0c;需要在Swift文件中导入AppTrackingTransparency框架。 import AppTrackingTransparency import AdSupport步骤2&#xff1a;请求跟踪许可 在适当的地方请求用户的跟踪许可。通常&#xff0c;这个请求会在应用启动时或者在用户执行…...

最新版npm详解

如&#xff1a;npm中搜索 jQuery image.png image.png 接地气的描述&#xff1a;npm 类似于如下各大手机应用市场 image.png image.png 查看本地 node 和 npm 是否安装成功 image.png image.png 或 npm install -g npm image.png image.png image.png image.png image.…...

超值分享50个DFM模型格式的素人直播资源,适用于DeepFaceLive的DFM合集

50直播模型&#xff1a;点击下载 作为直播达人&#xff0c;我在网上购买了大量直播用的模型资源&#xff0c;包含男模女模、明星脸、大众脸、网红脸及各种稀缺的路人素人模型。现在&#xff0c;我将这些宝贵的资源整理成合集分享给大家&#xff0c;需要的朋友们可以直接点击下…...

Python——一维二维字典数据转化为DataFrame的方法

import pands as pddf pd.DataFrame(dict)...

unity中如何插入网页

在Unity中插入自己的网页通常是通过使用Unity的WebGL构建目标和HTML页面来实现的。以下是一些步骤&#xff1a; 构建你的Unity项目为WebGL&#xff1a;在Unity中&#xff0c;选择Build Settings&#xff08;构建设置&#xff09;&#xff0c;将Platform&#xff08;平台&#x…...

【负载均衡在线OJ项目日记】引入网络库和客户端用户路由功能

目录 引入cpp-httplib库 将编译与运行服务打包 代码 客户端用户路由功能 采用MVC结构进行设计 用户路由功能 路由功能代码 引入cpp-httplib库 对于后端编译与运行模块基本已经设计完成&#xff0c;最后用户是通过网络传递代码等信息&#xff1b;我们就要将这个模块引入…...

【Vue3】env环境变量的配置和使用(区分cli和vite)

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、env文件二、vue3cli加载env1..env配置2..dev配置&#xff08;其他环境参考&#xff09;3.package.json文件4.使用 三、vue3vite加载e…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...