数据库
扬州的你
向大家学习
展开
-
linux命令记录
home/was/apache-tomcat-9.0.41, cd logs后 tail - f catalina.out 日志输出路径。/home/was/apache-tomcat-0.0.41/logs tomcat启动脚本路径。原创 2023-01-31 11:09:58 · 152 阅读 · 1 评论 -
解开TDH执行增删改查等命令
SET HIVE.EXEC.DYNAMIC.PARTITION = TRUESET HIVE.CRUD.DYNAMIC.PARTITION = TRUE原创 2022-03-10 16:51:03 · 363 阅读 · 0 评论 -
pg实现substr_index效果
SUBSTR(T3.KEYVALUE,position('/' in T3.KEYVALUE)+1) SUBSTR(T3.KEYVALUE,1,position('/' in T3.KEYVALUE)-1)原创 2022-02-22 18:28:13 · 627 阅读 · 0 评论 -
---生成连续的日期
---生成连续的日期selectdate_add(start_date,pos) as dtfrom( select '2021-10-01' as start_date ,'2021-10-15' as end_date)tlateral view posexplode(split(repeat(',',datediff(end_date,start_date)),',')) tab as pos,val原创 2022-02-21 18:28:43 · 293 阅读 · 0 评论 -
脚本增量方法
T1.D_MAKE IN ( SELECT DISTINCT busi_date from pub_fund_test.portf_change_log where orisys ='fahs3.0' and oper_date='${dHold}' )--增量原创 2022-02-21 18:18:46 · 146 阅读 · 0 评论 -
ods建表和dwd脚本,ld2ods
INSERT OVERWRITE TABLE DWD_FA.ASSET_UNIT_INFO PARTITION(orisys='AM4', ASSET_HOLD_DATE)select assetunit_code portf_code fund_code assetunit_name assetunit_status assetunit_prop assetunit_sn batch_time created_by ndc_原创 2022-02-21 10:47:49 · 260 阅读 · 0 评论 -
mysql操作
1.导出整个数据库1mysqldump -u 用户名 -p –default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1)23mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql2.导出一个表1mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名23mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.s原创 2022-02-10 16:46:02 · 72 阅读 · 0 评论 -
存储过程和函数
-- 存储过程 PROCEDURE 和 自定义函数 FUNCTION功能: PROCEDURE 用来更新/同步数据 。 FUNCTION 用来 对复杂的计算进行封装 ; /* 他们俩共同的特点就是对一些 公共的逻辑或者代码进行 封装,方便后续的更新和调用 。 面向对象 。*/ 语法: -- 创建存储过程 CREATE OR REPLACE PROCEDURE SP_过程名(参数1 [IN|OUT|IN OUT] 数据类型,参数2 [IN|OUT|IN OUT] 数据类型……)原创 2022-02-10 16:45:22 · 156 阅读 · 0 评论 -
hive删除表语句
-- 删除库drop database if exists db_name;-- 强制删除库drop database if exists db_name cascade;-- 删除表drop table if exists employee;-- 清空表truncate table employee;-- 清空表,第二种方式insert overwrite table employee select * from employee where 1=0; -- 删除分区原创 2022-01-11 10:13:56 · 4863 阅读 · 0 评论 -
lpad()函数和(row_number()over( order by )+ ...)
--LPAD自动在前面加数值,例子里面是0,凑足14位select'ZCZQ45' || LPAD((row_number() over(order by t1.C_PORT_CODE)+tmp_tbl.max_num), 14, '0') as abcfrom bbb原创 2021-12-10 23:46:03 · 566 阅读 · 0 评论 -
mysql远程登录
原创 2021-12-10 11:01:59 · 495 阅读 · 0 评论 -
shell跑数命令
ip="10.132.122.143"port="1521"database="dwdb"username="bi_zqdw"password="Zqdw#2021"set -xfor file in ~/etl_app/fa45/script/ld/boi/*.shdo if test -f $file;then # arr=(${arr[*]} $file) command="$file $ip $port $database $username原创 2021-11-29 14:44:00 · 693 阅读 · 0 评论 -
hive建表脚本
drop table if exists ld.boi_asset_units;create table if not exists ld.boi_asset_units( asset_unit_code string comment'资产单元代码' ,asset_unit_name string comment'资产单元名称' ,asset_unit_group_co原创 2021-11-29 14:40:18 · 1977 阅读 · 0 评论 -
linux命令记录
rz 上传zip文件unzip 解压文件rm -f 删除空目录rm -rf 某个文件(里面有文件)mv etl_total.sh etl_boi.sh cp etl_total.sh etl_boi.sh 复制并改名原创 2021-11-29 14:37:17 · 598 阅读 · 0 评论 -
oracle建表语句模板
-- Create tablecreate table BOI_INST_ORDER( code string, inst_code string, fund_code string, strategy_code string, cash_account_code string, trade_type string, advisor_code string, advisor_name原创 2021-11-29 14:26:21 · 873 阅读 · 0 评论 -
sqoop跑数模板保存
kinit -kt /var/lib/hue/hue.keytab hue sqoop import \-D mapred.job.queue.name=root.etl.ld \-D org.apache.sqoop.splitter.allow_text_splitter=true \--connect jdbc:oracle:thin:@$1:$2:$3 \--username $4 \--password $5 \--query "SELECT C_IDEN,原创 2021-11-29 14:25:20 · 1312 阅读 · 0 评论 -
获取当前文件夹所有文件名
DIR *.* /B >LIST.TXT="REN "&A1&" "&B1--修改名字 见收藏夹知乎原创 2021-11-25 11:42:18 · 112 阅读 · 0 评论 -
linux,hadoop记录
hadoop fs -put -f /user/etl/fahs/dwd/sh ~/etl_app/comm/bin/etl_comm.sh /user/etl/fahs/dwd/fund_trade_detail_init.sqlyarn logs -applicationId application_1633244180597_12530 >./app3.logkinit etl_submitter原创 2021-10-20 13:51:59 · 195 阅读 · 0 评论 -
SQL中级教程 case
简单case表达式--简单case case sex when '1' then '男' when '2' then '女' else ‘其他’ END --搜索case case when sex='1' then '男' when sex='2' then '女'原创 2021-09-07 16:28:48 · 79 阅读 · 0 评论 -
.join用法
python的.joinstr = "-";seq = ("a", "b", "c"); # 字符串序列,可以放listprint str.join( seq );js的.joinvar arr = new Array(3)arr[0] = "George"arr[1] = "John"arr[2] = "Thomas"var abc = arr.join('-')console.log(abc) # George-John-Thomas原创 2021-09-05 16:58:25 · 76 阅读 · 0 评论 -
建表语句和存储过程模板
建表语句和存储过程模板CREATE TABLE YHDWB.INFO_REPO_TRADE_PRICE( BATCH_TIME CHAR(18) NULL , TRADEDATE CHAR(18) NOT NULL , EXCH CHAR(18) NULL , REPO_TYPE CHAR(18) NULL , TERM_VARIETY CHAR(18) NULL , LCLOS原创 2021-09-03 14:32:11 · 112 阅读 · 0 评论 -
查询数据库中有没有空表
select * from all_all_tables where num_rows=0原创 2021-09-03 14:31:20 · 99 阅读 · 0 评论 -
oracle限制条数
oracle限制条数和mysql不一样。oracle为where rownum<100000。mysql为limit。原创 2021-09-01 20:03:31 · 5509 阅读 · 0 评论 -
ora-01858 报错解决
报错原因是导出表和导入的表结构不一样,不能用insert into abc select * from dw_credit_feedback;应该把*换成所有字段,把字段具体写出来就行原创 2021-09-01 20:01:54 · 1680 阅读 · 0 评论 -
更新某个字段下面的值
跟新某个字段下面的值update DW_CREDIT_WARN set DATE_HANDLE=(‘2021/826 10:45:45’) WHERE ORIGIN_SYSTEM=‘3001_IDW’原创 2021-08-26 16:14:19 · 78 阅读 · 0 评论 -
exist用法
exists表示()内子查询语句返回结果不为空说明where条件成立就会执行主sql语句,如果为空就表示where条件不成立,sql语句就不会执行。not exists和exists相反,子查询语句结果为空,则表示where条件成立,执行sql语句。负责不执行。之前在学Oracle数据库的时候,接触过exists,做过几个简单的例子,,如1.如果部门名称中含有字母A,则查询所有员工信息(使用exists)select * from emp where exists (select * from dep原创 2021-08-26 10:04:12 · 1750 阅读 · 0 评论 -
备份表到另一个库的方法
--创建一张abc临时表create table abc as select * from IDW_TO_DMS_TRANS_INVEST_VW WHERE 1=2;--授权GRANT SELECT ON abc TOncmsdata;--往临时表中插入数据insert into abc select * from dw_credit_feedback;drop table abc;--新数据库中insert into (新数据库中的表)select * from (原数据库).ab原创 2021-08-11 15:54:32 · 259 阅读 · 0 评论 -
多个排序条件时使用开窗函数后,如何排序
遇到多个排序条件时,可以先开窗函数根据要求新增一列rn,先给他把序号做出来,然后在最后重新加个order by 就可以,order by后面可以加好几个排序条件,具体看例题:有一个薪水表salaries简况如下:对所有员工的薪水按照salary降序进行1-N的排名,要求相同salary并列且按照emp_no升序排列:select emp_no,salary,dense_rank() over(order by salary desc) as rnfrom salariesorder by rn原创 2021-08-05 15:44:57 · 930 阅读 · 1 评论 -
sql查询技巧之记录数
当你想要分类查询记录数是,比较好的方法是group by 分组,然后使用count()计算,count会返回有多少条记录,sum是求和。当看到关键词“各个”时候,应该联想到group by有一个部门表departments简况如下:有一个,部门员工关系表dept_emp简况如下:有一个薪水表salaries简况如下:请你统计各个部门的工资记录数,给出部门编码dept_no、部门名称dept_name以及部门在salaries表里面有多少条记录sum,按照dept_no升序排序,以上例子输出如下原创 2021-08-05 14:48:21 · 2602 阅读 · 0 评论 -
SQL查询技巧之计算指标
当你需要查询一个计算指标时,可以考虑分别查出所需要的指标,然后在最外层的select语句中进行计算,例题如下:有一个员工表employees简况如下:有一个薪水表salaries简况如下:请你查找在职员工自入职以来的薪水涨幅情况,给出在职员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序,以上例子输出为(注: to_date为薪资调整某个结束日期,或者为离职日期,to_date='9999-01-01’时,表示依然在职,无后续调整记录)select s1.emp原创 2021-08-05 14:43:19 · 454 阅读 · 0 评论 -
牛客网例题
有一个员工表dept_emp简况如下:有一个薪水表salaries简况如下:获取每个部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary,按照部门编号升序排列,以上例子输出如下:(注意: Mysql与Sqlite select 非聚合列的结果可能不一样)select t.dept_no,t.emp_no,t.salary from(select de.dept_no,de.emp_no,s.salary, row_number() ov原创 2021-08-04 18:13:30 · 140 阅读 · 1 评论 -
SQL面试50
统计每门课程的学生选修人数(超过5人的课程才统计)要求输出课程号和选修人数,查询结果按照人数降序排列,若人数相同,按课程号升序select c_id,count(distinct s_id) as cntfrom scoregroup by c_id having cnt>5order by cnt desc,c_id asc...原创 2021-08-04 14:43:17 · 48 阅读 · 0 评论 -
知乎sql面试50题
查询课程编号为02的总成绩select sum(s_score),avg(s_score),count(distinct s_id) from score where c_id = "02"select sum(s_score),avg(s_score),count(distinct s_id) from score group by c_idselect sum(s_score),avg(s_score),count(distinct s_id) from score group by c_id .原创 2021-08-03 16:20:04 · 147 阅读 · 0 评论 -
sql面试50题
学过张三老师所教的所有课的同学的学号姓名select st.st_name,st.st_idfrom student as stinner join score as son s.s_id = st.s_idinner join course as con c.s_id=s.s_id inner join teacher as ton t.t_id = c.t_idwhere t.name = "张三"group by st.s_id查询学过01和02的课程的学生select .原创 2021-08-03 10:44:36 · 57 阅读 · 0 评论 -
connect by 用法
1。项目中遇到了父子层级关系的问题,刚开始的处理办法是:先将数据从数据库中查处理,然后再在代码中遍历,这样做,代码写的比较臃肿,再加上还有其他的业务要处理,比较麻烦,后来就查找了一些资料,发现oracle中有个函数connect by可以解决这个问题,写起来,代码也比较简洁这个就写个例子来说明一下这个问题:1首先创建一张表create table text_cen ( id varchar2(20), name varchar2(20), parentid转载 2021-07-28 10:39:45 · 2569 阅读 · 0 评论 -
merge into
在开发中我们经常会碰到这么一个场景,列如用户修改简单的个人基本信息,这个时候就需要判断用户的基本信息是否存在,如果是首次录入不存在就在表中插入一条信息,如果存在就更新表里的信息。要实现这种这种场景很简单,我们最常用的就是先查询一下用户的基本信息,执行一下select方法,如果数据存在就执行update方法,如果不存在就就执行insert 方法。这是一种解决思路。当只是很简单的条件判断时,我们也有另外一种数据库层面的解决思路就是merge into ,很多数据库都有这种语句,因为我用的oracle,这里就转载 2021-07-27 11:15:00 · 367 阅读 · 0 评论 -
rank() over(partition by)记录
查询出每个班级成绩是第一名的同学--其中partition by 为分组,即通过class分组,然后根据score排序select s.name,s.class rank() over(partition by s.class order by s.score) as S from student as sselect s.name,s.class densen_rank() over(partition by s.class order by s.score) as S from student a原创 2021-07-27 10:53:08 · 304 阅读 · 0 评论 -
游标使用小笔记
隐式游标通常使用于判断更新数据行或删除数据行的情况,例如:set serverouput on BEGIN UPDATE emp SET sal=sal*1.2 WHERE job='SALEMAN'; IF sql%notfound THEN DBMS_OUTPUT.PUT_LINE('没有员工工资上调'); ELSE DBMS_OUTPUT.PUT_LINE('有'||sql%rowcount||'个员工工资上调'); END IF;END;显示游原创 2021-07-23 11:33:57 · 65 阅读 · 1 评论 -
oracle登录显示监听没有打开
oracle显示监听没有打开,需要点击开始,然后输入“服务”,找到oracle的所有服务,右击所有能够打开的服务。原创 2021-07-22 09:35:25 · 146 阅读 · 0 评论 -
建表语句记录
非主键为null,主键为’na‘原创 2021-07-21 18:04:40 · 49 阅读 · 0 评论