Hive----建库、建表扩展语句--2

简介: 建库、建表扩展语句
  • 创建库
  1. create        database[if not exists] 库名
  2. [comment  database_comment]       (备注)
  3. [location  hdfs_path]       (HDFS上存放的路径)
  4. [with  dbproperties       (property_name = property_value,...)] (属性信息);
  •  
  • 创建一个数据库,指定数据库在HDFS上存放的位置
  • create database  库名  location '/库名.db' with dbproperties  ('name'='aaa');
  •  
  • 查询库
  • show databases;
  • 过滤显示查询的数据库
  • show databases  like  ' ' ;
  • 显示数据库信息
  • desc  database 库名;
  • 显示数据库详细信息
  • desc database extended  库名;
  • 切换当前数据库
  • use 库名;
  •  
  • 修改库
  • 数据库的其他元数据信息都是不可更改的,包括数据库名和数据库所在的目录位置
  • alter database 库名 set  dbproperties ('属性名'='属性值');
  •  
  • 删除空数据库
  • drop  database 库名;
  • 判断要删除的数据库是否存在
  • drop database if  exists 库名;
  • 强制删除数据库
  • drop database  库名   cascade;
  •  
  •  
  • 创建表
  1. create        [external] table [if not exists] 表名
  • external    关键字可以让用户创建一个外部表,在建表的同时可以指定一个执行实际数据的路径,在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据  
  1. (a int,…)为表添加字段
  2. [(col_name data_type) [comment col_comment],...]   (为表的列添加注释)
  3. [partitioned by (col_name data_type [comment  col_comment], ...)]  (创建分区表 )
  4. [clustered by (col_name, col_name, ...)  (创建分桶表)
  5. [sorted by (col_name [asc|desc], ...)] into num_buckets       buckets]  (sorted       by:在每个桶中,数据按哪个字段排序;into ... buckets:将数据分为几桶)
  6. [row format        row_format]   (规定数据分隔符)
  7. [stored as file_format]        (指定数据文件在hdfs中存放的格式,默认是textfile格式)
  8. [location  hdfs_path]    (指定表在HDFS上的存储位置)
  9. [tblproperties        (property_name=property_value, ...)]   (设置表的一些属性信息)
  10. [as select_statement]  (as       后跟查询语句,根据查询结果创建表)
  11. like允许用户复制现有的表结构,但是不复制数据。
  •  
  •  
  • 查询表: show tables;
  • 查询表的类型:desc  formatted   表名;
  • 查看表结构:desc  表名;
  •  
  • 删除表
  • drop table 表名;
  • 表的重命名:alter table 表名  rename to 新表名;
  • 分区的修改
  • 增加分区                                alter  table add partition(分区字段名=分区字段值);
  • 同时增加多个分区                alter  table add partition(分区字段名=分区字段值) partition(分区字段名=分区字段值);
  • 删除分区                                alter  table drop partition(分区字段名=分区字段值);
  • 同时删除多个分区                alter  table drop partition(分区字段名=分区字段值),partition(分区字段名=分区字段值);
  • 更新列:alter table  表名 change[column] col_old_name col_new_name  column_type [comment col_comment] [first|after column_name]
  • 增加和替换列:alter table  table_name add|replace  columns  (col_name data_type [comment col_comment], ...) ;
  •  
  • 内部表和外部表的互相转换:
  • 表有个EXTERNAL属性,为true的时候是外部表,改为false变为内部表
  • 内部表转为外部表:alter table  表名 set tblproperties('EXTERNAL' = 'true');
  • 外部表转为内部表:alter table  表名 set tblproperties('EXTERNAL' = 'false');
  •  
  •  
  •  
  • 数据:
  • (增)        向表中添加数据:load装载:load  data [local] inpath '文件路径' [overwrite] into table 表名 [partition(分区字段名=分区字段值)];
  •          insert into/overwrite 方式:
  • 基本插入:insert  into table 表名 values(列值1,列值2,列值3),(列值1,列值2,列值3);
  • insert  overwrite table 表名 values(列值1,列值2,列值3);
  • 基本模式插入(根据从另一张表的查询结果插入):
  • insert  into table 表名 select id,name from 另一表名;
  • 多表/多分区联合插入:从一个表中查询一部分数据放入另一个表/分区,查询另一部分数据放入再一个表/分区内
  • from  表名1
  • insert  into 表名2
  • select  id,name where id%2=0
  • insert  into 表名3
  • select  id,name where id%2=1;
  •           根据查询结果建表并加载数据:
  • create  table 表名 as select friends,children from 表名;
  •           建表时,通过location关键字指定数据在hdfs上的路径(目录)
  • create  table 表名 (列名 列类型,列名 列类型,...) location 'hdfs上路径';
  •            使用import命令,将export导出的结果导入到表中(要求表是空表)
  • import  table 表名 from 'hdfs上export导出的结果目录';
  •  
  • (删)        truncate  table 表名;     清除表中数据
  • delete table 表名 where …
  • (查)      select * from 表名;      全表查询
  • select 列名1,列名2,... from 表名;     选择特定列查询
  • select * from 表名 limit 5;      限制查询的行数
  • select * from 表名 where sal >1000;      查询符合where条件的语句
  • select * from 表名 group by 列名 order by 列名   分组排序查询
  • select e.empno, e.ename, d.deptno, d.dname  from 表1 e join 表2 d on e.deptno = d.deptno;      连接表查询  、 left join 左外连接 right  join 右外连接    满连接 full join  还可以两个join多表连接查询
  • select * from 表名 distribute by 列名 sort by 列名  desc;   mapreduce内部排序需设定reduces的数量 分区排序
  • select * from stu_buck tablesample(bucket x  out of y on id);    分桶抽样查询
  • select name, concat(constellation,  ",", 列名) from 表名 group by 列名    行转列查询
  • select 列名,列别名 from 表名 lateral view  explode(列名)表别名 as 列别名;     列转行查询   列是个集合列
  • select 列名1,rank() over(partition by 列名2 order by 列名3 desc  rows unbounded preceding and unbounded following) 列别名 from 表名;    开窗函数查询
目录
相关文章
|
4月前
|
SQL 关系型数据库 MySQL
Hive【基础知识 02-1】【Hive CLI 命令行工具使用】【准备阶段-建库、建表、导入数据、编写测试SQL脚本并上传HDFS】
【4月更文挑战第7天】Hive【基础知识 02-1】【Hive CLI 命令行工具使用】【准备阶段-建库、建表、导入数据、编写测试SQL脚本并上传HDFS】
64 0
|
4月前
|
SQL HIVE
Hive 建表以及使用
Hive 建表以及使用
80 0
|
SQL 存储 JSON
Hive 建表语句解析
Hive 建表语句
223 0
|
SQL HIVE
附模板和代码 | Excel数据模型自动生成Hive建表语句
在日常数据开发过程中,会经常需要根据数据模型编写建表语句,每次写建表语句都会用几分钟的时间,而且还容易出一些低级的错误,于是打算做个 Excel 模板,把表字段、表分区、表名写在里面,通过程序自动生成建表语句
|
存储 SQL 分布式计算
工作常用之Hive 调优【三】 Explain 查看执行计划及建表优化
在查询时通过 WHERE 子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多,所以我们需要把常常用在 WHERE 语句中的字段指定为表的分区字段。
334 0
工作常用之Hive 调优【三】 Explain 查看执行计划及建表优化
|
SQL 数据库 HIVE
Hive 建库,删库,显示所有库,显示当前库
Hive 建库,删库,显示所有库,显示当前库
|
SQL Oracle 关系型数据库
hive 建表快捷方式
hive 建表快捷方式
|
4月前
|
SQL 数据采集 数据挖掘
大数据行业应用之Hive数据分析航班线路相关的各项指标
大数据行业应用之Hive数据分析航班线路相关的各项指标
168 1
|
4月前
|
SQL 分布式计算 数据库
【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
190 0
|
2月前
|
SQL 分布式计算 大数据
大数据处理平台Hive详解
【7月更文挑战第15天】Hive作为基于Hadoop的数据仓库工具,在大数据处理和分析领域发挥着重要作用。通过提供类SQL的查询语言,Hive降低了数据处理的门槛,使得具有SQL背景的开发者可以轻松地处理大规模数据。然而,Hive也存在查询延迟高、表达能力有限等缺点,需要在实际应用中根据具体场景和需求进行选择和优化。