各类数据库的使用
记录数据库使用过程中遇到的问题及解决方法
温蒂先生
不积跬步,无以至千里;不积小流,无以成江海~
展开
-
oracle case ... when 的嵌套使用
下面给出一个case … when 函数的双层嵌套使用实例,用于查看逻辑回归预测模型的评估情况:select mark , pre_mark ,count(*) from (select emp_no, label , pre, case when deptno = '01' then ...原创 2019-08-09 15:26:25 · 8518 阅读 · 1 评论 -
oracle 日常小技巧1
查询数据库中所有的表:`select * from user_object ;`查询库里里面所有含有XXX字段的表:select * from dba_tab_columns t where t.column_name = 'XXX'原创 2019-10-17 15:11:26 · 116 阅读 · 1 评论 -
Mysql表信息查询
参考博客:https://www.cnblogs.com/sumlen/p/11101315.htmlselect * from dike_register.tb_area;-- 查询所有的表名和列名SELECT TABLE_NAME ,column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = SCHEMA_NAME;-- 查询表的字段、列名和字段类型select TABLE_NAME , TABLE_COMMENT原创 2022-02-25 16:45:34 · 2015 阅读 · 0 评论 -
oracle 查询某个用户下的表名、表注释、字段名和注释的代码
select t.table_name as 表名称, c1.comments as 表备注, c2.column_name as 字段名称, c2.data_type as 字段类型, c2.data_length as 字段长度, c3.comments as 字段备注 from -- 查询指定用户下的表名称 (select table_name from all_all_tables where owner =原创 2022-03-24 10:13:43 · 2992 阅读 · 0 评论 -
PLSQL和ORACLE客户端安装
PLSQL安装原创 2022-10-26 17:17:24 · 4162 阅读 · 0 评论 -
解决ORA-12523: TNS 监听程序无法找到适用于客户机连接的例程
PLQSL登录oracle遇到的问题及解决方案原创 2022-10-26 11:00:31 · 1793 阅读 · 2 评论 -
数据库多表关联更新(update多表关联)
KES与ORACLE数据库的多表关联更新的语法对比原创 2022-10-25 16:30:51 · 848 阅读 · 0 评论 -
那些年素素在数据库使用过程中踩过的坑-1
记录日常工作中遇到的看似简单但是隐患不小的坑原创 2022-10-19 10:34:38 · 193 阅读 · 0 评论 -
KingBase 数据库写存储过程中cursor需要用动态拼接SQL的方法进行定义的问题
kingbase 数据库存储过程原创 2022-09-24 14:51:24 · 640 阅读 · 0 评论 -
sql 求分位数
– 1 oracle求分位数SELECT RES3.ORG_NO_5, RES3.YM , -- X1的上四分位数 PERCENTILE_CONT(0.75) WITHIN GROUP(ORDER BY RES3.X1 ASC) AS X1_75, -- X1的上中位数 PERCENTILE_CONT(0.50) WITHIN GROUP(ORDER BY RES3.X1 ASC) AS X1_50, -- X1的下四分原创 2021-08-17 19:59:35 · 14747 阅读 · 0 评论 -
hive & oracle 分组返回数组函数
Hive 的collect_set函数会按照a分组 通过collect_set会把每个a所对应的b构建成一个以逗号分隔的数组返回。SELECT E.a, concat_ws(',',collect_set(E.b) AS b_CONCAT FROM table_name E GROUP BY E.aoracle 的listagg函数会按照deptno分组 通过listagg会把每个deptno所对应的ename构建成一个以逗号分隔的数组返回。select deptno,l原创 2021-08-31 11:02:39 · 1562 阅读 · 0 评论 -
ORACLE 日常工作中的一些积累
记录日常工作中常用的SQL语句原创 2022-07-21 11:03:19 · 179 阅读 · 0 评论 -
ORACLE-根据输入条件进行查询
ORACLE中根据数据条件返回查询结果原创 2022-06-19 22:57:43 · 774 阅读 · 0 评论 -
数据库处理指定字符串的分割方法
– 1 oracle 处理 带有下划线(陕西省_汉中市_宁强县)这种规律的字符串的分割方法SELECT STR_NAME , SUBSTR( Y.STR_NAME , 1, INSTR(Y.STR_NAME , '_', 1,1)-1 ) AS FIRST_KEYWORD, SUBSTR( Y.STR_NAME , INSTR(Y.STR_NAME , '_', 1,1)+1 , INSTR(Y.STR_NAME原创 2022-03-30 16:50:35 · 1350 阅读 · 0 评论 -
oracle数据库查询某个用户下表的记录数的2种表达方式
– 方法1 select * from ( -- 查询指定用户下所有的表数据量 select table_name, to_number(extractvalue(xmltype(dbms_xmlgen.getxml('select count(*) cnt from ' || owner || '.' ||原创 2022-04-15 19:09:27 · 1160 阅读 · 0 评论 -
ORACLE 查询指定时间之内的日、月及其他汇总
– 连续日期的记录SELECT (TO_DATE('20211001', 'YYYYMMDD' )+ ROWNUM - 1)FROM DUALCONNECT BY ROWNUM <= TO_DATE('20211007', 'yyyymmdd') - TO_DATE('20211001', 'yyyymmdd') + 1;– 连续月份的记录SELECT TO_CHAR( ADD_MONTHS( (TO_DATE('202101', 'YYYYMM' )+ ROWNUM - 1) ,原创 2022-04-19 12:49:46 · 1097 阅读 · 0 评论 -
HIVE上与时间相关的操作
---------------------------------------------hive中时间相关的函数操作-------------------- 把指定的字符串转时间 -年月 select from_unixtime(unix_timestamp('201806', 'yyyymm'),'yyyymm');-- 把指定字符串转时间 -年月日select from_unixtime(unix_timestamp('20180605', 'yyyymmdd'),'yyyymmdd');原创 2021-02-09 14:24:31 · 174 阅读 · 0 评论 -
ORACLE中索引查询-表空间及进程查询
1 索引查询与重建SELECT status FROM user_indexes where index_name ='index_name';alter index index_name rebuild;2 查询表的内存select sum(bytes)/(1024*1024*1024) as size_GB FROM USER_SEGMENTS WHERE SEGMENT_NAME = 'table_name';3表空间查询SELECT a.tablespace_name "表空间名",原创 2021-02-09 14:46:27 · 1452 阅读 · 0 评论 -
ORACLE表空间创建及资源使用情况分析
1 查询某个用户下所有表占用空间select segment_name, bytes/1024/1024/1024 from dba_segments where owner = user_name2 查询表空间文件及表空间-- 查询表空间select * from dba_tablespace;-- 查询表空间文件select * from dba_data_files where tablespace = spaceName; -- spaceName 自己指定 -- 查询表中单条原创 2022-05-03 18:13:13 · 689 阅读 · 0 评论 -
ORACLE 计算某个变量的同比环比
计算同比、环比是数据分析工作中常见的工作,虽然理论简单,但是sql计算还是有点繁琐,先把我提炼出来的模板总结如下,方便日后直接使用。select b1.唯一标识, b1.目标年月, b1.变量, round(b1.变量 - b3.变量, 4) AS ELET_ADDNUM, case when b2.变量 <> 0 then (round(b1.变量 / b2.变量, 4) - 1) else 0 end as 环比, case原创 2021-02-09 15:40:50 · 624 阅读 · 0 评论 -
oracle 行列转换函数
oracle行转列、列转行函数在日常工作中起着至关重要的作用,现在把应用方法总结如下:参考博客为:https://www.cnblogs.com/waynelo/p/9869020.htmlpivot函数:行转列函数: 语法:pivot(任一聚合函数 for 需转列的值所在列名 in (需转为列名的值));unpivot函数:列转行函数: 语法:unpivot(新增值所在列的列名 for 新增列转为行后所在列的列名 in (需转为行的列名));对于原始数据的情况如下:行专列函数为:s原创 2021-04-10 21:21:28 · 5417 阅读 · 0 评论 -
hive 中创建分区及向分区表中插入数据的操作
— 1 创建分区表create table username.test_par(cust_no string)partitioned by(province_code string comment "按网省分区" ,YM string comment "按年月分区")row format delimited fields terminated by ',';备注 该表中以province_code和ym作为分区– 2 向分区表中插入数据insert into userna原创 2021-07-31 22:38:13 · 3078 阅读 · 1 评论 -
判断某天是周几
-- hive pmod(datediff(to_date(string_date),'2018-01-01') + 1,7)其中:string_date表示字符串形式的日期-- Oracleselect case when to_char(data_date,'d') in ('7','1') then '周末' else ‘周内’ endfrom dual;...原创 2021-08-08 18:03:37 · 100 阅读 · 0 评论 -
oracle-分区创建
1-一级分区 -- 创建一个表名为t_list_partition 的表,里面有字段a , b, 按照字段a的取值来创建分区create table t_list_partition(a int,b int) partition by list(a)( partition p1 values (1,2,3,4,5), partition p2 values (6,7,8,9,10))2--一级分区create table table_name2( ym原创 2021-08-11 12:11:35 · 735 阅读 · 0 评论 -
oracle 操作表时没及时提交事务造成死锁问题
oracle 操作表时没及时提交事务造成死锁问题,解决方案如下:– 查死锁select session_id from v$locked_object;– 查SERIALselect * from v$session where session_id = ‘’;– 杀死锁alter system kill session ‘sid,#SERIAL’...原创 2020-06-09 09:20:18 · 2406 阅读 · 0 评论 -
ORACLE 子查询提高代码可读性的方法
在日常工作中,常常遇到多层嵌套子查询,这种结构可读性略差,采用with … as 结构能够极大增加了sql的易读性,如果构造了多个子查询,结构会更清晰;更重要的是:“一次分析,多次使用”,这也是为什么会提供性能的地方,达到了“少读”的目标。with a1 as (select count(*) as total_cnts from AA),a2 as ( ...原创 2019-06-27 15:06:59 · 280 阅读 · 1 评论 -
ORACLE 存储写存储过程总结
step01 需要创建一个package;例如:create or replace package package_name is end package_name ;这一步只是创建一个package。step02: 为创建好的package创建包体例如:create or replace package body package_name is end p...原创 2019-04-28 11:14:03 · 881 阅读 · 1 评论 -
SQL性能小技巧
在我们日常工作中, 为了达到某些运算目标,每个人写的SQL都会不一样, 然而不同的写法在运算性能有很大差异, 在自己日常工作中遇到不少SQL性能的问题,由于自己才疏学浅,虽然达到了运算正确的目标,然而很多时候运算时间太长,给自己带来了不少烦恼,在公司前辈的指导下,采用有些小技巧,达到了提速的目标,现在我把我之前遇到的几个问题写下来,以便日后自己查看。1 根据某个字段创建分区– 创建一个表名为...原创 2019-06-21 18:30:14 · 408 阅读 · 0 评论