[x]:是"+"还是"||"?
Access和SQL Server使用+号。
DB2、Oracle、PostgreSQL、SQLite和Open Office Base使用||。
详细请参阅具体的DBMS文档。
链接:https://www.cnblogs.com/Aiapple/p/5395090.html。
[x]Is “LIKE ?” More efficient than LIKE '%'||?||'%' ?
预加载的问题。
链接:https://stackoverflow.com/questions/3142508/is-like-more-efficient-than-like。
[x]模糊查询中不区分大小写
lower(pro_number) like '%'||lower('?')||'%' // LIKE UPPER('%' || ? || '%')
或
upper(pro_number) like '%'||upper('?')||'%'
链接:https://zhidao.baidu.com/question/438000336.html。
[x]NVL
NVL是Oracle PL/SQL中的一个函数。它的格式是NVL( string1, replace_with)。它的功能是如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。
[x]select 1;count(1);sum(1)的区别
select y :以y为字段名,每行值为y。
count(y):得到一个数,y的行数。
sum(y):得到一个书,y*y的行数。
链接:https://blog.csdn.net/u010104750/article/details/51141221/。
[x]查询字段不为空
select * from tbl where id is not null;
[x]DUAL
1. dual 确实是一张表.是一张只有一个字段,一行记录的表.
2.习惯上,我们称之为'伪表'.因为他不存储主题数据.
3. 他的存在,是为了操作上的方便.因为select 都是要有特定对象的.
链接:https://zhidao.baidu.com/question/170487574.html。
[x]LOOP循环语句
三种:
for;while;if。
链接:https://www.cnblogs.com/aipan/p/6618383.html。
[x]查询某一字段重复的数据
select * from 重复记录字段 in ( select 重复记录字段 form 数据表 group by 重复记录字段 having count(重复记录字段)>1)
链接:https://www.cnblogs.com/real9527/p/8242408.html。
[]SQL的for update
目的:锁表
链接:https://www.cnblogs.com/luotuoke/p/8695819.html。
[x]union 和union all的区别
链接:http://www.w3school.com.cn/sql/sql_union.asp。
[x]union all和 where 一起使用会出错
where的会判定给 后面的子句。
链接:https://blog.csdn.net/u010173095/article/details/78436979。
[x]建表
【建表】链接:https://www.cnblogs.com/qmfsun/p/3817344.html。
【添加描述】链接:https://zhidao.baidu.com/question/499073751.html。
[x]DataGrip的使用
[x]ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
对表操作频繁导致锁表;
解决办法是以system登陆查询被锁的session然后杀掉。
链接:https://blog.csdn.net/jiangyu1013/article/details/70314739。
https://blog.csdn.net/qq_37151235/article/details/74612957。
[x]oracle REGEXP_SUBSTR函数
格式如下:
function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)
__srcstr :需要进行正则处理的字符串
__pattern :进行匹配的正则表达式
__position :起始位置,从第几个字符开始正则表达式匹配(默认为1)
__occurrence :标识第几个匹配组,默认为1
__modifier :模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)
1、查询使用正则分割后的第一个值,也就是17
[sql]
SELECT REGEXP_SUBSTR('17,20,23','[^,]+',1,1,'i') AS STR FROM DUAL;
结果: 17
SELECT FIX_DS_AMT_L
FROM (SELECT REGEXP_SUBSTR(X, '[^,]+', 1, ROWNUM) FIX_AMT_L, REGEXP_SUBSTR(Y, '[^,]+', 1, ROWNUM) FIX_DS_AMT_L
FROM (SELECT FIX_AMT X, FIX_DS_AMT Y FROM MKMTCRDTYP WHERE CARD_TYP = ?)
CONNECT BY ROWNUM <= 1 + LENGTH(REGEXP_REPLACE(X, '[^,]+')))
WHERE FIX_AMT_L = ?;
链接:https://www.cnblogs.com/yuany69/p/6093017.html。
[x]with
with 别名 as (select * from *)
select * from 别名;
[x]EXISTS
EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。
EXISTS 指定一个子查询,检测 行 的存在。
链接:https://www.cnblogs.com/netserver/archive/2008/12/25/1362615.html。
[x]PLSQL
[x]PLSQL查询数据库操作历史记录:
1、在PLSQL按键Ctrl+E
可以查询我们在PLSQL执行过的历史SQL,包括时间、用户、语句;
链接:https://blog.csdn.net/hwq293/article/details/79447763。
关键字:
Minus:减。
将第一个sql的结果集 减去 第二个sql中的结果集。
语法如下:
[SQL Segment 1]
MINUS
[SQL Segment 2]
当你不再需要该表时, 用 drop;
当你仍要保留该表,但要删除所有记录时, 用 truncate;效率高
当你要删除部分记录时(always with a WHERE clause), 用 delete.