一、常用数据库命令

1、查询有哪些数据库show databases

2、查询有哪些数据表:show tables

3、显示所有函数:show functions

4、使用use databasename;可以切换到某个数据库下

示例(切换到test数据库):usetest

5、查看当前数据库:select current_database()

6、查询数据表有哪些字段及字段详情:describe tablename

示例(查询staged_employees数据表):describe staged_employees

可以简写为desc staged_employees

结果如下:

7、查看指定数据库里有哪些数据表:SHOW TABLES IN DbName;

示例:查看xiaoxiao数据库下面有哪些表

SHOW TABLES IN xiaoxiao

8、获得表的建表语句:

示例(查看创建emailtest这个表使用的语句方法):show create table emailtest

9、查看数据库的描述信息和文件目录位置路径信息

示例(查看datetest数据库的描述信息和文件目录位置信息):describe databasedatetest;

二、创建数据库

创建xiaoxiao数据库:

create database xiaoxiao;

二、创建数据表

create   table staged_employees (

id int   comment 'id',

user_name   string comment 'user name')

三、删除数据库

删除数据库的时候,不允许删除有数据的数据库,如果数据库里面有数据则会报错。如果要忽略这些内容,则在后面增加CASCADE关键字,则忽略报错,删除数据库。

DROP DATABASE DbName CASCADE(可选);

DROP DATABASE IF EXISTS DbName CASCADE;

三、删除数据表

drop table staged_employees

四、删除数据表中所有内容

删除emaitest数据表中的所有内容。

insert overwrite table emailtest select * from emailtest where 1=0

五、更改表名

1、更改表名

-- 重命名表名 ALTER TABLE table_name RENAME TO new_table_name;

六、数据表添加字段:

alter table lemailtest add columns(time int comment 'now time')

七、HIVE统计函数

1、count(1)与count(*)得到的结果一致,包含null值。count(字段)不计算null值

2、集合统计函数

2.1个数统计函数: count

语法: count(*), count(expr), count(DISTINCT expr[, expr_.])

返回值: int

说明: count(*)统计检索出的行的个数,包括NULL值的行;count(expr)返回指定字段的非空值的个数;count(DISTINCTexpr[, expr_.])返回指定字段的不同的非空值的个数

举例:

hive> select count(*) from lxw_dual;

20

hive> select count(distinct t) from lxw_dual;

10

2.2总和统计函数: sum

语法: sum(col), sum(DISTINCT col)

返回值: double

说明: sum(col)统计结果集中col的相加的结果;sum(DISTINCT col)统计结果中col不同值相加的结果

举例:

hive> select sum(t) from lxw_dual;

100

hive> select sum(distinct t) from lxw_dual;

70

七、插入数据到emailtest数据表中(追加数据到原有的数据表中)

读取fx01数据表数据的一行,然后插入到emailtest数据表,对emailtest数据表原有的数据不会动的。

insert into table emailtest

select * from fx01 limit 1

八、插入数据倒emailtest数据表中(覆盖原有数据表的数据,相当于把原有数据表先清空,再写入新的数据)

从fx01数据表读取数据写入到emailtest数据表,对原有emailtest数据表数据清空处理。

INSERT OVERWRITE TABLE emailtest

SELECT email,y,m,d

FROMfx01where m=06 and d=19

九、关键词匹配——like

1、从fx01表中查找列content中包含"制度"的行数信息

Select* from fx01 where content like '%制度%'

十、根据某个关键字去匹配,然后去设置新的关键词case…when..方法

1、case用法一:CASE  条件判断函数 CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END

如果a等于b,那么返回c;如果a等于d,那么返回e;否则返回f

select policy,case policy when 'abc' then '测试' else 'ccc' end as policy from fx01 limit 6

2、case用法二:

假如要用到case when又要用到like这样的功能,即如果字符串包含‘语文’就怎么怎么样,包含‘数学’就怎么怎么样,包含‘英语’就怎么怎么样,like是用于where中的,放在case when里面是无效的,可以用instr()这个函数来查找这些字符出现的位置,代替like的功能,这样写就好呐。

case when instr(t.str,’语文’) > 0 then 0

when instr(t.str,’语文’) > 0 then 1

when instr(t.str,’语文’) > 0 then 2

else 3 end

示例:

select t1.policy,case when instr(t1.policy,'信托') > 0 then '信托'

when instr(t1.policy,'张三') > 0  then '张三1'

when instr(t1.policy,'李四') > 0  then '李四1'

when instr(t1.policy,'小明') > 0  then '小明1' else '小红' end from (select distinct policy from fx01 limit 6) t1

十一、order by——TOP N

hive实现topN,使用order by和limit组合方式实现。Order by是进行降序排列,limit是选取多少。默认按升序排列,如果要按降序排列在末尾加上DESC,ASC是升序。

取排名TOP 5的数据。

select distinct company,count(company) as num from fx01 where m=05 group by company order by num DESC limit5

十二、数据表多表连接——join

多表连接——join两个以上的表

SELECT a.val, b.val, c.val FROM a JOIN b ON (a.key = b.key1) JOIN c ON (c.key = b.key2);

join支持left join(左连接)、right join(右连接)、full join(全连接)

1、两表相关联示例

select fx01_lanjie.company,fx01_lanjie.lanjie,fx01_yujing.yujing,fx01_lanjie.y,fx01_lanjie.m from fx01_lanjie left join fx01_yujing ON fx01_lanjie.company=fx01_yujing.company

2、三表相关联示例

select fx01_lanjie.company,fx01_lanjie.lanjie,fx01_yujing.yujing,fx01_fangxing.fangxing,fx01_lanjie.y,fx01_lanjie.m from fx01_lanjie left join fx01_yujing ON fx01_lanjie.company=fx01_yujing.company  join fx01_fangxing on fx01_lanjie.company=fx01_fangxing.company

十三、实现某一列字段关键词统计——split+explode函数

0stu表数据:

stu:

idname

hello,youzm2008

hello,mezm2015

1实现单词计数:(列转行)---> split切分+explode(炸开)

1.0数据拆分成数组

select split(id,',') fromstu;得到数组

[hello,you]

[hello,me]

1.1继续将数组拆分(hive explode函数会将数组继续拆分成单个字符)

select explode(split(id,','))from stu;窗体函数

hello

you

hello

me

1.2分组统计:

select t1.c1, count(1) from (select explode(split(id,',')) as c1from stu)t1 group by t1.c1;

hello 2

you 1

me 1

案例实现需求:统计“关键词”这一列每个关键词出现的次数,把数字去掉,只统计中文关键词

表名:TesttableIDkewordymd

1北京;广州;深圳;贵州201728

2重庆;河南201725

712345555201795

实现语句:

Select explode(split(keyword, ';')) asc1from testtable  where keword' rlike '^[\\u4e00-\\u9fa5]+$'

hive插入多条数据sql_HIVE sql使用总结相关推荐

  1. hive插入多条数据sql_Hive/Impala批量插入数据

    问题描述 现有几千条数据,需要插入到对应的Hive/Impala表中.安排给了一个同事做,但是等了好久,反馈还没有插入完成--看到他的做法是:对每条数据进行处理转换为对应的insert语句,但是,实际 ...

  2. hive插入多条数据sql_30分钟入门 Hive SQL(HQL 入门篇)

    Hive SQL 几乎是每一位互联网分析师的必备技能,相信每一位面试过大厂的童鞋都有被面试官问到 Hive 优化问题的经历.所以掌握扎实的 HQL 基础尤为重要,既能帮分析师在日常工作中"如 ...

  3. mybatis笔记之一次插入多条数据sql语句写法

    mybatis笔记之一次插入多条数据sql语句写法

  4. python mysql批量insert数据、返回id_Python3 操作 MySQL 插入一条数据并返回主键 id的实例...

    Python 中貌似并没有直接返回插入数据 id 的操作(反正我是没找到),但是我们可以变通一下,找到最新插入的数据 #!/usr/bin/env python3 # -*- coding: UTF- ...

  5. 你向 Mysql 数据库插入 100w 条数据用了多久?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 目录 1.多线程插入(单表) 2.多线程插入(多表) 3.预处理S ...

  6. 怎么快速插入 100 条数据,用时最短

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:孤独键客 https://juejin.im/post/5d ...

  7. 怎么快速插入 100 条数据,用时最短!

    原文:https://my.oschina.net/OutOfMemory/blog/3117737 群友又抛出了一道面试题,有人给出了答案,看完后,是否还有改进的地方,留言评论,一起精进吧! 多线程 ...

  8. c mysql显示多条数据_用一条mysql语句插入多条数据

    假如有一个数据表A: id name title addtime 如果需要插入n条数据 : $time= time(); $data = array( array( 'name'=>'name1 ...

  9. mysql命令行批量添加数据_mysql命令行批量插入100条数据命令

    先介绍一个关键字的使用: delimiter 定好结束符为"$$",(定义的时候需要加上一个空格) 然后最后又定义为";", MYSQL的默认结束符为" ...

  10. mysql怎样循环插入数据_你向 Mysql 数据库插入 100w 条数据用了多久?

    多线程插入(单表) 多线程插入(多表) 预处理SQL 多值插入SQL 事务(N条提交一次) 多线程插入(单表) 问:为何对同一个表的插入多线程会比单线程快?同一时间对一个表的写操作不应该是独占的吗? ...

最新文章

  1. [HNOI 2010]Bounce 弹飞绵羊
  2. 郎凤娥谈定西实施煤粉锅炉改造项目
  3. vs显式导入(代码注入)依赖库
  4. 最优化——单纯形法,单纯形表的求取
  5. Koa 中实现 chunked 数据传输
  6. 文件服务器 远程访问,远程访问文件服务器
  7. oracle 取记录最大的那条记录_新记录!国内跨高速铁路最大、吊装高度最高的钢横梁顺利吊装到位...
  8. php的toast,jQuery 一句代码轻松实现 Toast 的提示框
  9. html生成一维码,一维码条形码生成工具
  10. Unity---MainTemplate.gradle配置取消v2签名
  11. 代码大全(第2版)_2021【公式大全3.0版】【(数一)第371页】【(数二)第283页】【(数三)第324页】【有关矩阵秩的重要结论】6)~...
  12. SAT数学公式之几何图形
  13. 代码覆盖率分析 - VectorCAST/CBA
  14. 原生js获取元素非行内样式属性的方法
  15. 浏览器内核 五大浏览器内核
  16. 计算机科学与实践,【计算机科学与技术学院|实践实况】(一)
  17. 咖啡自由的六个阶段:无差别打击,你还能承受吗?
  18. 笔杆网试用---感官体验篇一
  19. 微信小程序使用数字滚动动画
  20. Excel值班表方案:使用Excel进行不同班次排班并实现多功能自动化统计及视图转换

热门文章

  1. Dexpot 虚拟桌面软件(推荐)
  2. 程序员,你准备好回家过年了吗?
  3. 基于asp.net学生信息管理系统的设计与实现(毕设)
  4. 阿里云数据迁移工具解决方案:华为云迁移到阿里云
  5. 导致 Scan VIP 和 Scan Listener(监听程序)出现故障的最常见的 5 个问题 (文档 ID 1602038.1)
  6. 已满的c盘如何清理无用的文件
  7. RJ11电话线水晶头制作方法(图解)
  8. 移动硬盘里面装linux系统,在移动硬盘上安装Ubuntu和其他linux系统-随身携带操作系统...
  9. 解读德国政府未来可能采用的加密即时通讯框架
  10. waves服务器系统盘,Waves Soundgrid服务器(DIY)