hive常用语法大全

##### 创建数据库

```create database Test;
create database gd1905;
create database if not exists qf1903;
create database if not exists qf1903 comment 'this is a database of qf';


show databases;   查看所有数据库
切换数据库
use qd1905;             切换数据库
删除数据库
drop database databasename;
drop database gddb;            这个只能删除空库
drop database gddb cascade;    如果不是空库,则可以加cascade强制删除
查看数据库信息
desc database databaseName;查看当前数据库在集群上的位置
desc database extended databaseName;
describe database extended databaseName;
查看当前表空间中的所有表名
show tables; 

创建表(
一般的数用int类型就行
string 类型的字段查询时数据需要用当引号’’))
语句最后还要加上;

create table t_user(id int,name string);
create table qf1903.t_user(id int,name string);

表存在忽略提示信息
create table if not exists t1(
uname string comment 'this is name',
chinese int,
math int,
english int
)
comment 'this is my table'
row format delimited
fields terminated by '\t'
lines terminated by '\n'
stored as textfile;
分号表示结束
查看表结构
desc extended tableName;
desc tableName;输出表的schema信息以及分区信息。
show create table table_name; 该语句输出表的建表语句,较为好用,输出的信息也基本够用了
删除表
drop table tableName;
删除执行分区数据
alter  table 表名  drop if exists partition(data_dt='ETL_DEL_DATE');
加载数据的方式:

方法1:使用hdfs dfs -put将本地文件上传到表目录下

hdfs dfs -put ./u1.txt /user/hive/warehouse/mydb1.db/
hdfs dfs -put ./student.txt /user/hive/warehouse/qf1905.db/student/
hdfs dfs -put ./course.txt /user/hive/warehouse/qf1905.db/course/

方法2:在hive中使用load 命令

load data [local] inpath '文件路径' [overwrite] into table 表名

不加local就是把分布式系统下的文件转到目的表下
加local就是把Linux系统上的文件转到目的文件下

加载数据的扩展

向指定分区中加载数据

从另外一张表(也可称之为备份表)中动态加载数据(前提两张表都存在))

insert into table tableName2 select [.....] from tableName1;
注意:tableName2表中的字段个数必须和tableName1表中查询出来的个数相同
insert into acct_wt_user_avg_stock_hold_days partition (part_init_date='20190425',interval_type=1) select '20190425','4567890',30 from acct_wt_user_hold_stock_earnging_ratio limit 1;

like建表法

会创建结构完全相同的表,但是没有数据。


                
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值