- 博客(18)
- 收藏
- 关注
原创 递归、连续登录、优化
解题思路:判断一个字段是否连续,可以用该字段跟另一个连续的数相减,如果连续,减出来的值是相同的,然后再按减出来的字段分组计数,就能得到每一次的连续登录天数,另一个连续字段一般用ROW_NUMBER。4、/*+ USE_MERGE(表名1,表名2) */ --指定用SORT MERGE JOIN。2、/*+ USE_NL(表名1,表名2) */ --指定用NESTED LOOP连接。3、/*+ USE_HASH(表名1,表名2) */ --指定用HASH连接。①少用 SELECT *,尽量使用需要的字段;
2025-05-28 19:23:46
409
原创 集合运算、EXISTS、正则表达式、去重、伪列
取数据集A和数据集B共有的部分取数据集A和数据集B相加的结果数据集B中不属于数据集A的部分(A MINUS B),也就是B-A的部分。
2025-05-28 17:23:43
411
原创 分区、注释、临时表
一般重复数据较多的字段,适合做列表分区按照某一列,无规则的进行分区,最终能够尽可能将数据均匀分布到各个分区,适用于唯一的字段定义:将一张大表的数据,分开存储在不同的物理文件上,可以指定分区查询数据,避免全表扫描优点:增加查询效率,方便管理数据范围分区 RANGE列表分区 LIST哈希分区 HASH组合分区 两两组合工作中常用的分区:范围分区,一般按照时间进行范围分区,每个月的数据存放在一个分区。
2025-05-27 18:55:08
343
原创 管理权限、视图、索引
视图就是将一段SELECT语句逻辑或者说是结果集封装到视图中1. 视图是一段封装SELECT语句的结果集,不保存具体数据;跟表最大的区别就是没有存储数据2. 可以用视图更新底表,局限性比较高,必须是单表且要求更新的字段是源表中的,否则就无法更新定义:索引就是排序的列表,其中包含索引的值以及该值所在行的物理地址,在创建索引的时候,会生成一张类似于目录的表,索引表包含两个字段(加索引的列、ROWID),后续查询数据时,先在索引表中找到满足条件数据的ROWID,然后再返回源表快速定位到每个ROWID对应的行。
2025-05-27 18:00:08
648
原创 拉链表、日志表
所谓拉链,就是记录历史。记录一个事务从开始,一直到当前状态的所有变化的信息。日志表指的是创建一张专属于操作日志的表,将操作过程中关系到的一系列数据存起来以保证在出现问题的时候可以迅速定位到报错点。行数:可以判断数据的准确性开始时间、结束时间:可以判断代码的执行效率,以方便后期进行优化报错信息:可以快速定位问题出现的原因和具体步骤状态:可判断是否执行成功。
2025-05-26 19:13:12
255
原创 动态SQL、数据同步、异常处理、包
数据同步:就是将一张表或者多张表的数据进行关联、过滤、汇总,然后插入到其他目标表;主要有:全量同步:先清空目标表数据,再插入源表最新数据增量同步:目标表对比源表,有则更新,无则插入注意:增量同步一般只涉及新增或者修改的数据同步,全量同步每次都会对所有数据进行删除再同步,所以增量同步一般效率更高,所以工作中使用增量同步更多;包主要用于封装多个函数或者存储过程,方便后续的管理和调用;包分为包头和包体:包头:负责保存函数或者过程的名字,类似于书的目录;
2025-05-07 17:15:01
159
原创 游标、存储过程、临时表
用来封装一个结果集,可以对结果集中的每一行数据单独进行处理关键字:CURSOR游标声明:CURSOR 游标名 IS SELECT ...;存储过程(STORED PROCEDURE) 是封装SQL的过程,也是一个数据对象,封装一段或者是多段数据的转换逻辑,作用主要是用来做数据同步的。数据同步:将A表的数据,做筛选,聚合,逻辑运算之后,写入到B表中。
2025-05-06 12:12:46
142
原创 程序块、条件判断、循环、自定义函数
CREATE [OR REPLACE] FUNCTION 函数名(参数名 数据类型)RETURN 返回值类型IS[声明变量]BEGIN--实现逻辑RETURN 返回值;END;
2025-05-02 18:36:31
222
原创 行列转换方法
LEAD(指定字段, 偏移量) OVER(PARTITION BY 按照什么字段分组 ORDER BY 排序字段) 新名字。PIVOT (SUM(指定字段) FOR 待拆分的字段 IN(字段值1 新名字1,字段值2 新名字2,...));UNPIVOT (指定字段 FOR 合并后的字段名 IN(待合并的列名1,待合并的列名2......))注意:使用UNION ALL的时候,要合并的数据必须是相同的列数和相同的数据类型。DECODE(字段,新名字,等于并返回值1,其他返回值2,)Oracle特有的函数。
2025-04-30 10:39:19
185
原创 分析函数/开窗函数
语法FIRST_VALUE()/LAST_VALUE() OVER(PARTITION BY 字段1 ORDER BY 字段2)示例--示例:查出EMP表每个部门中,薪资最高的员工的姓名FROM EMP EJOINFROM EMP--使用FIRST_VALUEFROM EMP;
2025-04-30 03:16:14
617
原创 数学函数、日期函数、字符函数
有输入参数,有返回结果的一个表达式函数分类:数学函数,日期函数,字符串函数总结已学过的函数:转换函数:TO_CHAR/TO_DATE/TO_NUMBER/NVL/NVL2/COALESCE聚合函数:SUM/COUNT/AVG/MAX/MIN/DISTINCT/MEDIANROUND -- 四舍五入,指定小数位表示四舍五入保留几位小数,没有就直接入成整数TRUNC -- 截取,指定小数位就截取保留几位小数,没有就直接截取成整数。也可以用来取商。FLOOR -- 向下取整CE
2025-01-13 23:35:35
472
原创 维护表的数据和结构、同字段多条件判断
在使用修改字段数据类型的时候,首先对要对表的数据进行备份,备份使用的是创建表并备份表的数据;不需要提交回滚的命令:CREATE, ALTER, TRUNCATE, DROP (DDL语句)先按字段分组,找出该字段里的最大最小值,删除重复数据,一般用不在最大/最小值的范围里查询去删除。1.ROWNUM 表示的是数据插入时的顺序,返回的查询结果是行号,一般用来做分页查询。2. ROWID 返回的是每一行数据的物理地址,唯一,一般用来是删除重复值。约束:给某一个字段加上一些特定的属性,比如字段唯一,非空。
2025-01-11 22:31:09
279
原创 多表关联查询
注意:在左外连接的时候,WHERE才能起到过滤条件的作用;而AND只能过滤从表的数据,AND先过滤从表的数据再和主表进行关联。:关键字 LEFT JOIN ,左表是主表,右表是从表,会展示主表的所有数据,从表没有的行数数据用NULL补充。内连接的时候,不同的表里有两个相同名称的字段,要用表名指定是哪张表的字段,不然会找不到要的是哪个字段。如果在内连接的时候没有写关联条件,就会产生笛卡尔积=A表的行数*B表的行数。FULL JOIN,不分主从表,相当于左外连接+右外连接所有数据。内连接 取两张表的交集。
2025-01-07 22:27:50
378
原创 不同的函数
数据库:以二维表的方式存放公司业务数据的仓库,Oracle是甲骨文公司开发的sql语言:结构化查询语言 (structured query language,特点1.数据是有结构的 2.sql语法是有结构的。
2025-01-06 19:51:48
303
原创 简单的查询语句和条件查询
NVL2(X,Y, Z): 当筛选到X为空值的时候,则输出Y,当X为非空的时候,则输出Z。NUMBER(X,Y) -- 数字类型,X表示整数的最大长度为X,Y表示小数的位数。SELECT 字段名(,字段名) FROM EMP;CHAR(X) -- 字符串类型,X表示字符串最大长度为X,且固定长度为X。NVL(X,Y) :X表示字段,当筛选到X为空值的时候,则转换为Y输出;VARCHAR2(X) -- 字符串类型,X表示字符串最大长度为X。NUMBER(X) -- 数字类型,X表示数字的最大长度为X。
2025-01-04 22:35:28
285
原创 Disconnected from the target VM, address: ‘127.0.0.1:2716‘, transport: ‘socket‘
错误汇总Connected to the target VM, address: '127.0.0.1:XXXX', transport: 'socket'; - 代码先锋网
2023-04-14 14:17:44
4463
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人