-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
知归系列 #3
Comments
Windows批处理
|
VBS基础教程 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Oracle数据库
PL/SQL使用
快捷键 https://www.cnblogs.com/linjiqin/archive/2013/06/24/3152538.html
1,快速选择行:Shift + Home/End
2,找回最近删除的Sql语句(已编译执行过的sql):Ctrl + E
3,智能提示:F6
4,自动替换:快捷输入SQL语句,例如输入s,按下空格,自动替换成SELECT;再例如,输入sf,按下空格,自动替换成SELECT * FROM,非常方便,节省了大量的时间去编写重复的SQL语句。
设置方法:
1)、建立一个文本文件shortcuts.txt(一般在PlugIns会自带这个文件),并写入如下内容:
i=INSERT
u=UPDATE
s=SELECT
f=FROM
w=WHERE
o=ORDER BY
d=DELETE
df=DELETE FROM
sf=SELECT * FROM
sc=SELECT COUNT(*) FROM
sfu=SELECT * FROM FOR UPDATE
cor=CREATE OR REPLACE
p=PROCEDURE
fn=FUNCTION
t=TIGGER
v=VIEW;
复制代码另存到PL/SQL Developer的安装路径下的~/PlugIns目录下
2)、Tools–>Preferences–>User Interface–>Editor–>AutoReplace,选中Enable复选框,然后浏览文件选中之前创建的shortcuts.txt,点击Apply
SQL语法 https://www.cnblogs.com/klb561/p/10527336.html
表 dual;
where:过滤行
group by:对过滤后的行进行分组
having():对分组后的行进行过滤
decode:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
distinct:
nvl:nvl(A, B),如果A为null,则返回B,否则返回A。
instr:字符查找函数
格式一:instr( string1, string2 ) // instr(源字符串, 目标字符串)
select instr('helloworld','l') from dual; --返回结果:3 默认第一次出现“l”的位置
select instr('helloworld','lo') from dual; --返回结果:4 即“lo”同时(连续)出现,“l”的位置
select instr('helloworld','wo') from dual; --返回结果:6 即“w”开始出现的位置
格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] ) // instr(源字符串, 目标字符串, 起始位置, 匹配序号)
select instr('helloworld','l',2,2) from dual; --返回结果:4 也就是说:在"helloworld"的第2(e)号位置开始,查找第二次出现的“l”的位置
select instr('helloworld','l',3,2) from dual; --返回结果:4 也就是说:在"helloworld"的第3(l)号位置开始,查找第二次出现的“l”的位置
select instr('helloworld','l',4,2) from dual; --返回结果:9 也就是说:在"helloworld"的第4(l)号位置开始,查找第二次出现的“l”的位置
select instr('helloworld','l',-1,1) from dual; --返回结果:9 也就是说:在"helloworld"的倒数第1(d)号位置开始,往回查找第一次出现的“l”的位置
select instr('helloworld','l',-2,2) from dual; --返回结果:4 也就是说:在"helloworld"的倒数第2(l)号位置开始,往回查找第二次出现的“l”的位置
select instr('helloworld','l',2,3) from dual; --返回结果:9 也就是说:在"helloworld"的第2(e)号位置开始,查找第三次出现的“l”的位置
select instr('helloworld','l',-2,3) from dual; --返回结果:3 也就是说:在"helloworld"的倒数第2(l)号位置开始,往回查找第三次出现的“l”的位置
trunc:对时间类型或者数字进行截取操作
trunc(Date)的用法一般有以下几种:
select sysdate from dual
select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual
select trunc(sysdate,'yyyy') from dual --当年的第一天
select trunc(sysdate,'mm') from dual --当月的第一天
select trunc(sysdate,'dd') from dual --当前时间(精确到天)
select trunc(sysdate,'d') from dual --当前星期的第一天
select trunc(sysdate,'hh') from dual --当前时间(精确到小时)
select trunc(sysdate,'mi') from dual --当前时间(精确到分钟,没有精确到秒的)
trunc(number)的用法一般有以下几种:
trunc(55.5,-1) = 50; //-1(负数)表示从小数点左边第一位截取后面全置为零;
trunc(55.55,1) = 55.5; //1(正数)表示小数点后面保留一位;
trunc(55.55) = 55; //截取整数部分;
substr:字符截取函数
格式1:substr(string string, int a, int b);
1、string 需要截取的字符串
2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
3、b 要截取的字符串的长度
select substr('HelloWorld',0,3) value from dual; //返回结果:Hel,截取从“H”开始3个字符
select substr('HelloWorld',1,3) value from dual; //返回结果:Hel,截取从“H”开始3个字符
select substr('HelloWorld',2,3) value from dual; //返回结果:ell,截取从“e”开始3个字符
select substr('HelloWorld',0,100) value from dual; //返回结果:HelloWorld,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。
select substr('HelloWorld',5,3) value from dual; //返回结果:oWo
select substr('Hello World',5,3) value from dual; //返回结果:o W (中间的空格也算一个字符串,结果是:o空格W)
select substr('HelloWorld',-1,3) value from dual; //返回结果:d (从后面倒数第一位开始往后取1个字符,而不是3个。原因:下面红色 第三个注解)
select substr('HelloWorld',-2,3) value from dual; //返回结果:ld (从后面倒数第二位开始往后取2个字符,而不是3个。原因:下面红色 第三个注解)
select substr('HelloWorld',-3,3) value from dual; //返回结果:rld (从后面倒数第三位开始往后取3个字符)
select substr('HelloWorld',-4,3) value from dual; //返回结果:orl (从后面倒数第四位开始往后取3个字符)
格式2:substr(string string, int a) ;
1、string 需要截取的字符串
2、a 可以理解为从第a个字符开始截取后面所有的字符串。
select substr('HelloWorld',0) value from dual; //返回结果:HelloWorld,截取所有字符
select substr('HelloWorld',1) value from dual; //返回结果:HelloWorld,截取所有字符
select substr('HelloWorld',2) value from dual; //返回结果:elloWorld,截取从“e”开始之后所有字符
select substr('HelloWorld',3) value from dual; //返回结果:lloWorld,截取从“l”开始之后所有字符
select substr('HelloWorld',-1) value from dual; //返回结果:d,从最后一个“d”开始 往回截取1个字符
select substr('HelloWorld',-2) value from dual; //返回结果:ld,从最后一个“d”开始 往回截取2个字符
select substr('HelloWorld',-3) value from dual; //返回结果:rld,从最后一个“d”开始 往回截取3个字符
like:
trim(ltrim,rtrim):https://www.cnblogs.com/lanzi/archive/2013/01/14/2859666.html
reverse() :字符串翻转函数
存储过程
函数
触发器 https://www.cnblogs.com/klb561/p/11080445.html
语法:
create [or replace] tigger 触发器名 触发时间 触发事件
on 表名
[for each row]
begin
pl/sql语句
end
触发器名:触发器对象的名称。由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。
触发时间:指明触发器何时执行,该值可取:
before:表示在数据库动作之前触发器执行;
after:表示在数据库动作之后触发器执行。
触发事件:指明哪些数据库动作会触发此触发器:
insert:数据库插入会触发此触发器;
update:数据库修改会触发此触发器;
delete:数据库删除会触发此触发器。
表名:数据库触发器所在的表。
for each row:对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。
分析函数
over():
Oracle优化
The text was updated successfully, but these errors were encountered: