SQL/Hive应用笔记

SQL/Hive应用笔记


insert overwrite table XXX
insert into table XXX
overwrite会覆盖现有的数据,而into是直接将数据写入库。
如果需要的是去重的数据,那么应该选择overwrite作为插入的方式

insert into dws_risk_acct_out_info(data_dt,sys_org_id) values(‘20221102’,‘0400’)
insert into dws_risk_acct_out_info partition(data_dt =‘20221102’)(sys_org_id) values(‘0400’)
向分区中插入数据

ALTER TABLE XXX.xxx REPLICA IDENTITY FULL;
update XXX.xxx set 字段名=‘2022’;
设置表为可编辑,将表中所有该字段改为2022

PostgreSQL中删除主键
ALTER TABLE treasury.risk_pay DROP CONSTRAINT risk_pay_pkey1
alter table treasury.risk_pay add primary key (risk_pay)
删除非空限制
alter table xxx alter xxx drop not null;
增加非空限制
alter table xxx alter xxx set not null;

SELECT ‘a’||FLOOR(RANDOM()*900)+100
生成100-1000之间的随机整数,例如a355

ceil(random()*900+100)
ceil向上取整

SELECT CASE FLOOR(RANDOM()*3)
WHEN 1 THEN
‘x’
WHEN 2 THEN
‘y’
WHEN 3 THEN
‘z’
ELSE
‘a’
END “case”
从多个字符串中随机取数

HAVING sum(a)>400

group by 必须有sum()、count()、avg()等“聚合函数”配合才能使用,使用时至少需要一个分组标志字段。

union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。

通过 partition by [姓名] order by [打卡时间] desc,这句就可以做到,让数据按照姓名分组,并且在每组内部按照时间进行排序

CONCAT(from_unixtime(unix_timestamp(), ‘yyyy’),‘0101’)
当前年第一天

CONCAT(from_unixtime(unix_timestamp(), ‘yyyyMM’),‘01’)
当前月第一天

alter table tableName add columns (newcol1 int comment ‘新增’);

alter table tableName change col_name new_col_name new_type;

alter table tableName replace columns (col1 int,col2 string,col3 string);

use xxxdb; drop table table_name;
删表
use xxxdb; alter table table_name rename to new_table_name;
改表名

INSERT INTO table_name
VALUES (value1,value2,value3,…);
SQL插入

UPDATE table_name
SET column1=value1,column2=value2,…
WHERE some_column=some_value;
SQL更新/修改

DELETE FROM table_name
WHERE some_column=some_value;
SQL删除

UPDATE risk_todo_pool_monitor SET account = substr(account,1,4)||regexp_replace(substr(account,5,15),‘([0-9]{15})’,‘***********’)||substr(account,16,19)
脱敏处理

show create table XXX;
或 desc XXX;

drop table tablename
删除整个表

truncate table tablename
删除表数据保留结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值