Hive的DML---对表的操作,load数据、增删改查
1)load
load data [local] inpath '文件路径' [overwrite] into table datetable02; -->加载数据到对应的表,关键字 local是本地文件,如果没有那么是HDFS上的文件。关键字overwrite是是否覆盖,如果有,覆盖。
2)insert
--into Hive tables from queries
insert into table 表名 select * from 表名; -->从一个select语句插入数据,注意你的表和查询的字段数需要一致,还有数据类型之间的转换
--into directories from queries
insert overwrite local directory '路径' select * from 表名; -->往系统文件中写入输入,如果带有local那就是本地文件,如果没有就是HDFS文件系统
--into Hive tables from SQL
insert into table 表名 values(v1,v2,v3...) -->相当于sql的insert语句,在0.14之后才被支持
3)delete
delete from table 表名 where...
4)update
update table 表名 set col1=v1,col2=v2... where...
5)select
select * from 表名 where 列名 [not] between a and b; -->约定某个字段的区间,查大于a小于b的数据
select * from 表名 where 列名 like "%a"; -->like语句,模糊查询,_匹配一个字符,%是匹配多个字符
select * from 表名 where 列名 rlike "^星"; -->使用正则来完成模糊查询
select * from 表名 where 列名 regexp "亮$"; -->和rlike的功能一样
select 列名+10 from 表名; -->数学运算符,一般作用在我们字段上面(一般udf函数,作用在字段上)
select 1 from 表名 where 6.99999999999999999=7.0 limit 1; -->double精度为16位,超过16位就根据四舍五入的规则进1.
--ceil()函数是求大于等于当前数值的最小整数。
select 列名1,count(1) from 表名 group by 列名1; -->分组,并求出分组后每个组内的元素个数,1没意义,只是为了通过语法检查
■SELECT col1 FROM 表名 GROUP BY col1 HAVING SUM(col2) > 10 Hiving子句可以使用聚合函数 where就不可以
★分组--group by
当使用group by语句的时候