1.操作库
基本语法

CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name[COMMENT database_comment][LOCATION hdfs_path][WITH DBPROPERTIES (property_name=property_value, ...)];

说明:

  • IF NOT EXISTS:如果不存在则创建
  • COMMENT:注释
  • LOCATION:数据库存放目录
  • WITH DBPROPERTIES:拓展信息,key/value
    例子:
CREATE DATABASE database_name;
//创建数据库如果数据库不存在则创建数据库
CREATE DATABASE IF NOT EXISTS database_name;
//创建数据库并添加注释
CREATE DATABASE COMMENT'zhushi;
//创建数据库,添加扩展信息
create database testdb_otherinfo WITH DBPROPERTIES('creator'='zhangcheng','date'='2015-11-30');

(2)显示数据库

show databases;
(3) 切换数据库
use database_name;

(4) //如果数据库存在就删除数据库

drop database if exists traffic;
drop database traffic cascade;

2.操作表
(1) 创建表
a. 基本语法
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
[(col_name data_type [COMMENT col_comment], …)]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], …)]
[[ROW FORMAT row_format]
[STORED AS file_format]]
[LOCATION hdfs_path]
[AS select_statement];

说明:

  • EXTERNAL:外部表
  • IF NOT EXISTS:表不存在创建
  • db_name:表所属数据库
  • COMMENT col_comment:列注释
  • COMMENT table_comment:表注释
  • PARTITIONED BY:分区字段
  • ROW FORMAT row_format:行的数据格式
  • STORED AS file_format:文件存储格式
  • STORED AS file_format
  • LOCATION hdfs_path:存放路径
  • AS select_statement:查询语句为结果集
    建表支持的数据类型
    基本数据类型
    tinyint / smalint / int /bigint
    float / double
    boolean
    string
    复杂数据类型
    Array/Map/Struct
    没有date /datetime
    列子:
CREEATE TABLE IF NOT EXISTS testdb.pepole(id int COMMENT 'user id',name string COMMENT 'user name',phone string COMMENT 'user phone')COMMENT 'pepele info'ROW FORMAT DELIMITED FIELDS TERMINATED BY','STORED AS textfile;

b.语法:
CREATE TABLE [IF NOT EXISTS] [db_name.]table_name
LIKE existing_table_or_view_name
[LOCATION hdfs_path];

说明:

  • IF NOT EXISTS:表不存在创建
  • db_name:表所属数据库
  • existing_table_or_view_name:结果集为存在的表或者师徒
  • LOCATION hdfs_path:存放路径
    列子:
create table if not exists testdb.pepole_like like testdb.pepole;
create table if not exists testdb.pepole_select as select id,name from testdb.pepole;

c.创建表时指定的partition的分区空间
功能在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。如果需要创建有分区的表,需要在create表的时候调用可选参数partitioned by,详见表创建的语法结构。分区表指的是在创建表时指定的partition的分区空间。
创建

CREATE TABLE IF NOT EXISTS testdb.emp_partition(empno int,ename string,job string,mgr int,hiredate string,sal double,comm double,deptno int
)
PARTITIONED BY(monthstring,daystring)
ROW FORMAT DELIMITED FIELDS TERMINATED BY'\t'
STORED AS textfile;

(2) 查看有那些表

show tables;
show tables in database_name;

(3) 查看表结构

desc table_name;

(4) 查看表详细属性

desc formatted test;

(5)查询数据

select*from emp_partition where month='201512' and day='02';

(6)修改表
a.修改表名称

 alter table person rename to student;

b.修改表分区

hive>alter table hive.logs add partition (dt='2018-9-1',country='beijng'); 
hive>alter table hive.logs drop partition (dt='2018-9-1',country='beijng'); 

c.添加列

hive>alter table hive.logs add columns(id int,name string);

d.删除和替换列

hive>alter table hive.logs replace columns (id int,name string);

(7) 向管理表装载数据
a.装载数据

hive>load data [local] inpath '/data/hive' [overwrite] into table tbname;

说明:含local关键字:加载本地目录数据到warehouse下;如果不含local关键字,加载数据目录默认为hdfs路径。
b.通过查询语句向表中插入数据:在原始数据的基础上,进行业务分析后生成的表数据

hive>insert overwrite table new_table select [column字段] from 原始数据表 where 条件;

hive> from 原始数据表 别名 insert overwrite table new_table select [column字段] where 条件;

c.创建表时,也可以执行插入数据

hive>create table new_table as select id,name,age from student where age>23;

d.导出数据

hive>insert overwrite directory '/data/stocks/2009-6-23' select * from stocks where ymd ='2009-6-23';

(8)查询
a.对array查询

hive>select name,subordinates[1] from hive.employees where name='John Doe';

b.对map查询

hive>select name,deductions['State Taxes'] from hive.employees where name = 'John Doe';

c.对struct查询

hive>select name,address.state from hive.employees where name ='John Doe';

d.支持运算符
e.内置函数,比如sum(),count(),avg()等。
f.limit

hive>select upper(name),salary,deductions['Federal Taxes'],round(salary*(1-deductions['Federal Taxes'])) from hive.employees limit 6;

g.列别名

hive>select upper(name),salary,deductions['Federal Taxes'] as Taxes,round(salary*(1-deductions['Federal Taxes'])) as sal from hive.employees limit 6;

h.嵌套

hive>from (select upper(name) as name,salary,deductions['Federal Taxes'] as Taxes,round(salary*(1-deductions['Federal Taxes'])) as sal from hive.employees) e select e.name,e.Taxes,e.sal where e.sal >70000;

(9) 分组查询

hive>select year(ymd),avg(price_close) from stocks where exchange1='NASDAQ' and symbol = 'AAPL' group by year(ymd);

说明:分组属性列在mysql中一定要出现在select子句之后;但在hive中不需要。
(10) 删除表

DROP TABLE [IF EXISTS] table_name ;

(11)清空表

TRUNCATE TABLE table_name [PARTITION partition_spec];

EXTERNAL不管删除内部表(管理表)还是外部表(托管表)都会删除元数据 ,删除外部表(托管表)不会删除数据文件。内部表(管理表)反之。共用数据时使用外部表(创建表时加上 LOCATION hdfs_path 参数)。

CREATE EXTERNAL TABLE IF NOT EXISTS testdb.emp_ext(empno int,ename string,job string,mgr int,hiredate string,sal double,comm double,deptno int)
ROW FORMAT DELIMITED FIELDS TERMINATED BY'\t'
STORED AS textfile;

调优方案:建议将hive.exec.mode.local.auto=true;加入到hive的环境变量(.hiverc)

hive数据库操作大全相关推荐

  1. oracle的操作大全,Oracle数据库操作大全(六)Oracle中操作数据

    Java连接数据库方法2,(方法1见:Oracle数据库操作大全(五)) 使用jdbc连接Oracle( 可远程连接 ) ***1.加载驱动 Class.forName("oracle.jd ...

  2. asp数据库操作大全 [网站网页]

    什么叫活动服务器组件(Active Server Compontents)?组件是基于Activex技术的代码片断,通过指定接口提供指定的一组服务,组件供给客户端(Clients)在运行时候请求的对象 ...

  3. sqlserver数据库操作大全——常用语句/技巧集锦/经典语句

    ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ ☆ ☆ ☆ sql 宝 典 ☆ ☆ ☆ 2012年-8月 修订版 ☆ ☆ 修订人:情谊续写经典 ☆ ☆ 郑重 ...

  4. 2021年大数据Hive(三):手把手教你如何吃透Hive数据库和表操作(学会秒变数仓大佬)

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive数据库和表操作 一.数据库操作 1.创建数据库 2.创建 ...

  5. 大数据学习笔记34:Hive - 数据库与表操作

    文章目录 一.准备工作 1.启动Hadoop 2.启动Hive 二.数据库操作 1.创建数据库 2.查询数据库 (1)显示全部数据库 (2)查询满足条件的数据库 3.修改数据库信息 (1)给数据库添加 ...

  6. mysql设备台账_mysql数据库操作语句大全.pdf

    mysql数据库操作语句大全.pdf mysql数据库操作语句大全(常用操作指令)一 . 常用mysql命令行命令1.启动MYSQL服务 netstartmysql停止MYSQL服务 stat na| ...

  7. python操作hive数据库代码_python导出hive数据表的schema实例代码

    本文研究的主要问题是python语言导出hive数据表的schema,分享了实现代码,具体如下. 为了避免运营提出无穷无尽的查询需求,我们决定将有查询价值的数据从mysql导入hive中,让他们使用H ...

  8. mysql操作数据库语句大全_常用的Mysql数据库操作语句大全整理

    一.用户管理: 1.新建用户: >create user name identified by 'ssapdrow'; 2.更改密码: >set password for name=pas ...

  9. python操作数据库语句大全_sql语句大全

    数据库操作 1.查看所有数据库 1 show databases; 2.查看当前使用的数据库 1 select database(); 3.创建数据库 1 create databases 数据库名 ...

最新文章

  1. DINO:目标检测benchmark COCO屠榜的正确姿势
  2. 电脑音响怎么插_【图片】汽车音响改装案例本田CRV改装德国HELIX汽车音响_汽车音响改装吧...
  3. 性能测试:服务器配置清单分析
  4. 50:树中两个结点的最低公共祖先
  5. 为此计算机上的所有用户安装此加载项,activex 安装给所有计算机用户
  6. Springboot瘦身(lib和程序分开打包)
  7. 开发之前需要哪些文档_为什么在开发之前总是应该做文档
  8. 华为麦芒9正式亮相:6400万三摄,2199元起
  9. pyrcc5和pyuic5.exe文件放在scripts文件夹下
  10. 高校大数据专业教学实训资源解决方案
  11. 点滴记录,与技术无关
  12. python bar图 百分比_matplotlib bar()实现百分比堆积柱状图
  13. EXCEL设置下拉框,根据不同选项变换颜色
  14. B端产品设计:价值主张与需求对应的价值
  15. 【小记】steam 神奇软件
  16. 计算机二级python编程题笔记(基础题)(自用)
  17. dsp2812 pmsm foc之速度环电流环
  18. 垃圾清理软件CCleaner 规则下载软件CCEnhancer
  19. undefined symbol: _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv 问题
  20. MyEclipse注册码及官方下载地址

热门文章

  1. UFPS入门: Unity FPS 教程
  2. 警醒篇:如何做人?(转载)
  3. 零距离接触阿里云时序时空数据库TSDB
  4. 计算机考研落榜了怎么办,一位考研落榜者的自述:考研失败的原因
  5. IDEA中大小写切换
  6. 从实现原理谈谈低代码
  7. 同济大学的计算机保研率,同济大学2020届保研率:27.7%
  8. rust 局域网联机_腐蚀rust搭建Rust服务器及联机教程
  9. Leetcode-数据结构-121. 买卖股票的最佳时机
  10. 【工程测试与训练】使用BiSeNetv2测试、训练cityscapes数据集、训练自己的数据集