![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
唯有一颗慎独心
渴望力量使我成为琦玉
展开
-
修改hive表结构
1)修改表名:ALTER TABLE ndiip_online.xx RENAME TO ndiip_online.yy;2)修改字段ALTER TABLE ndiip_online.xx CHANGE COLUMN 旧列名 新列名 新数据类型 ;3)增加列ALTER TABLE ndiip_online.xx ADD COLUMNS ( 新列名 数据类型 COMMENT ’ 列名注释 ’ );4)删除hive表的分区ALTER TABLE ndiip_online.xx DROP P原创 2021-09-28 16:03:54 · 3467 阅读 · 0 评论 -
解决hive与impala的同步问题
我们在猛犸上在使用hive sql来对hive表进行插入等操作后,再用impala查询的时候,会发现查询的还是hive修改之前的数据。是因为impala缓存元数据的缘故,我们通过下面两个操作可以解决这个问题。1) invalidate metadata ndiip_online.xx; 执行这个命令,可以更新impala缓存,再使用impala就可以查到新数据了,不过这个只是一次性的,如果表再通过hive有了修改,则impala查询的话还需要再使用该命令。2)alter table ndiip_原创 2021-09-28 16:00:56 · 1580 阅读 · 0 评论 -
hive 将sum函数得到的null值变为0
最近在使用hive的过程中,使用到了sum函数,sum函数会产生null值,需要转换成0。在mysql中,我们可已使用IFNULL() 函数来处理,例如IFNULL(sum(lively_num),0),意思就是如果sum(lively_num)为null的话,就执行为0.但是在hive中没有这种函数,怎么办呢,我们想要查询sum值,并插入表,肯定是想要0值而非null值。方法如下:case when sum(lively_ent_num) is not null then sum原创 2021-08-23 15:14:40 · 6090 阅读 · 1 评论 -
Hive创建分区表、动态插入、删除分区表
如何在hive上建立分区表呢:简单的创建sql如下:CREATE EXTERNAL TABLE t(`run_time` bigint ,`enterprise_num` bigint , )PARTITIONED BY (`day` string)这样的话,就简单的创建了一个分区字段为day的分区表。那么我们在分区插入的时候,怎么插入呢:insert into table t partition(day='2021-06-09')select run_time,enterpri原创 2021-06-09 19:23:17 · 1698 阅读 · 0 评论 -
sql场景:查询新用户当日登录(之前登录过的不算新用户)
遇到一个查询需求,需求是 :查询新用户当日登录数,当日之前登陆过的不算新用户。用户记录表: action表 如下:nametypetimeAlogin2021-06-08Alogin2021-06-08Blogin2021-06-08Clogin2021-06-08Alogin2021-06-06Flogin2021-06-05Dlogin2021-06-04–––命令:select count(DI原创 2021-06-08 13:52:20 · 544 阅读 · 0 评论 -
将不含相同字段的两张表连接,并将查询结果一起显示
我们一般使用连接关键字(inner join、left join、right join)进行多表连接的时候,还需要将两张表的相同字段 “=” 起来。例如: select a.type from apple as a inner join banana b on a.price = b.price 但是当我们的两张表没有相同字段,是完全无关的两张表的时候我们在对两张表分别查询后,想要把两个查询结果一起显示出来时候, “=” 就不能用了。那怎么连接两张表,一起显示查询结果呢如原创 2021-06-07 19:51:44 · 6446 阅读 · 1 评论 -
hive常用的查询时间命令
1.当前月的第一天命令:select trunc(current_date,'MM');输出:2021-06-01 //返回当月第一天如果想转化为unix时间戳命令:select unix_timestamp(trunc(date_sub(current_date, 1), "MM"), "yyyy-MM-dd")输出:16224768002.当前下个月的第一天:命令:select add_months(trunc(date_sub(current_date, 1), "MM") ,1)原创 2021-06-05 17:32:38 · 2145 阅读 · 1 评论 -
hive常用日期函数整理
1.current_date :当前日期命令:select current_date ;输出:2021-06-052.date_sub : 返回日期前n天的日期命令:select date_sub('2021-06-05',1);输出:2021-06-043.date_add : 返回日期后n天的日期命令:select date_add('2021-06-04',1);输出:2021-06-054.datediff:返回开始日期减去结束日期的天数命令:select datediff原创 2021-06-05 15:41:36 · 2661 阅读 · 0 评论 -
Oracle数据库字典表的运用
--字典表/参数表CREATE TABLE T_DICT(D_ID NUMBER(38,0) PRIMARY KEY,D_CODE VARCHAR2(10), --与原表的相同数据列D_NAME VARCHAR2(100) --对应的值DTYPE VARCHAR2(100) --对应的类型);DROP SEQUENCE SEQ_T_D...原创 2019-05-22 00:10:05 · 542 阅读 · 0 评论 -
Oracle数据库序列的运用,不确定序列值的初始化
Oracle数据库中,没有自增列序列sequence,会提供一个自增的值将这个自增的值填入某个指定列,其实也相当于该列是一个自增列创建序列: CREATE SEQUENCE [SEQ_NAME];删除序列: DROP SEQUENCE [SEQ_NAME];使用序列,得到序列的值 ...原创 2019-05-21 23:59:52 · 406 阅读 · 0 评论 -
Oracle数据库的数据类型和设计范式
数据库的数据类型 数字 number(p,s) p表示精度,也就是数字的总长度,【0-38】 从左起第一个不为零的数字开始计算精度 s表示小数位数【-127-128】 ...原创 2019-05-20 16:57:22 · 199 阅读 · 0 评论 -
Oracle数据库的基本知识(cmd语句)
3个物理组件 .DBF 数据库文件,相当于SQLite的db.CTL 控制文件,用于管理数据库.LOG 日志文件 ,用来记录数据库操作文件,方便数据库备份和恢复逻辑组件表空间 一个存放表,视图,序列等Oracle数据库对象的空间,主要是存放表 一...原创 2019-05-20 15:46:34 · 567 阅读 · 0 评论 -
E-R图(实体-关系图)的绘制步骤
E-R图(实体-关系加粗样式图):描述的是实体集之间的关系。绘制步骤:1.先确定有那些实体集2.确定实体集的属性3.确定主键4.确定要找哪些实体集之间的关系5.确定它们之间是什么关系(1:1,1:m,m:n)1:1 两表并一表1:m 将‘1’表的主键作为‘m’表的外键m:n 建立关系表,将两表的主键都作为关系表的属性,并增加自增主键和其他属性6.最终确定有几张表,哪些属性;...原创 2019-05-10 09:04:15 · 27771 阅读 · 0 评论 -
sqlite数据库的基本操作
1.命名*我们数据库命名不要用逗号啊这样的方式来命名,例如: teacher‘s table, 正确:teacher_table因为表名称只能是一个单词,如果写成 teacher table 就会报错,所以推荐多个单词之间用下划线来连接2.我们的命令都带有一定的格式*例如:创建表: CREATE TABLE 表名称 (字段名称 类型, 字段名称 类型, 字段名称 类型);C...原创 2019-05-09 09:22:42 · 280 阅读 · 0 评论