
SQL
Rango_lhl
记录一个数据老狗的攒知识之路
展开
-
for update语句锁机制问题
数据库小知识学习系列问题:MySQL InnoDB中,select where xxx=123 for update;该xxx没有索引,是使用表锁还是全部数据加行锁?答:InnoDB引擎(默认RR隔离级别)中的行级锁是依赖索引实现的,问题条件xxx为非索引字段,所以使用的是表锁。如若隔离级别为RC,则通过 where 条件走非索引列过滤之后(where xxx=123),不符合条件的记录上的行锁,会释放掉。也就是先表锁后释放非过滤条件的行锁。ps:如果是Oracle,由于默认使用RC隔离,效原创 2021-01-11 14:00:21 · 408 阅读 · 0 评论 -
[SQL]-Oracle分组函数ROULLUP的应用
首先部分说明: Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。如果是Group by ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。因工作要做个报表,因此想就在数据库直接跑个报表出来,取公司部分数据整理如下:SEL原创 2016-05-11 10:00:43 · 988 阅读 · 0 评论 -
[SQL]-Oracle trunc()函数的用法
Oracle trunc()函数的用法1.TRUNC(for dates) TRUNC函数为指定元素而截去的日期值。 其具体的语法格式如下: TRUNC(date[,fmt]) 其中: date 一个日期值 fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去 下面是该函数的使用情况: TRUNC(TO_转载 2016-05-12 11:36:02 · 1312 阅读 · 0 评论 -
Oracle异常日期处理(ORA-01839:指定月份的日期无效)
跑数过程日期提示如下错误:在条件中现在了日期格式like '____-__-__' 依旧报错,格式没错误仍旧报错,一时没有头绪,后考虑用更高效的方式找出异常值,参考编写了如下函数:create or replace function fun_date_YorN(i_dt varchar2) return number is v_dt date;begin v_dt := to_date(...原创 2018-05-24 10:59:29 · 25710 阅读 · 0 评论