工程项目中常用的Oracle函数大全

1.插入数据
(1)为表中所有字段插入数据
insert into 表名 (字段1,字段2,字段3,…)values (值1,值2,值3,…)
如:insert into tablename (column1,column2,column3,…) values (‘字符串1’,‘字符串2’,sysdate,…)
(2)为表中指定的字段 插入数据
insert to 表名 (指定字段1,指定字段2,指定字段3,…)values (值1,值2,值3,…),在插入值时,要注意插入值和所对应的指定字段数据类型一致
(3)同时往表中插入多条数据
insert into 表名 (字段1,字段2,字段3,…) values (值1,值2,值3,…),(值1,值2,值3,…),(值1,值2,值3,…)
(4)把查询结果插入表中
insert into 表名(字段1,字段2,字段3,…) select (字段1,字段2,字段3,…) from 表名称 where 条件

2.删除数据
delete [from] 表名 [where 条件];只删除满足条件的数据,表结构不会发生改变

3.更改数据
(1)单表
update 表名 set (字段1=值1,字段2=值2,字段3=值3,…) where 条件
/多表关联update的时候,记得要加exists()条件,否则不满足条件的记录被update称NULL:
比如:stu表存在,但stu1表不存在的数据,对应的字段会被update成NULL;
/
(2)多表关联单字段
如:update stu t set t.NAME = (select t1.NAME from stu1 t1 where t1.ID = t.ID)
where exists(select 1 from stu1 t2 where t2.ID = t.ID);
(3)多表关联多字段
update stu t set (t.NAME, t.SEX) = (select t1.NAME, t1.SEX from stu1 t1 where t1.ID = t.ID) where exists(select 1 from stu1 t2 where t2.ID = t.ID);

4.查询数据
(1)单表查询
select * from 表名 [where 条件]
(2)关联表查询
select * from 表1 T left join[inner join,right join,…] 表2 T2 on T1.字段=T2.字段 [where 条件]

5.decode()函数的用法: decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值),
如:decode(num,‘0’,‘C#’,‘1’,‘JAVA’,‘python’)表示num的值为0的时候,返回C#,为1时,返回JAVA,其他情况,返回python。

6.NVL()函数的用法: NVL(字段,返回值),如:NVL(num,‘0’)当num不为空时,输出num,否则输出0。

7.add_months()函数的用法:add_months(time,months)可以得到某一时间之前或之后n个月的时间,如:add_months(sysdate,-6)表示当前时间6个月前的时间,add_months(sysdate,6)表示当前时间6个月后的时间。

8.to_char()函数的用法:to_char(参数1,参数2)的功能是将数值型或者日期型转化为字符型,参数1为需要转换的值,参数2为转换的模板,如:to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) ,表示把当前时间sysdate转换为yyyy-mm-dd hh24:mi:ss 格式。

9.to_date()函数的用法:to_date(参数1,参数2)的功能是将字符串转化为指定的日期格式
参数1为需要转换的值,参数2为转换的模板,如:to_date(‘20170615’,‘yyyy-mm-dd’)from dual,表示将20170615的字符串转换成yyyy-mm-dd格式的日期格式

10.with as 创建临时表的用法,如:WITH A AS (SELECT T.NAME 名字,T.SEX,T.AGE 年龄 FROM T_USER_INFO T WHERE T.AGE>'18') SELECT * FROM A WHERE A.年龄=‘25’ AND T.SEX='男' 表示从T_USER_INFO中查询出年龄大于18的人的名字、性别、年龄,以这些数据创建一个临时表A,然后我们从临时表中查询出年龄为25,性别为男的所有数据。

11.||字符串拼接的用法:如: SELECT T.NAME 名字,T.SEX,T.AGE||‘岁’ FROM T_USER_INFO T WHERE T.AGE>'18' 若是AGE的值为18,则SQL语句第三个字段返回的是18岁。

12.case when then else end的用法,以case开头,end结束。when和then相当于“如果…那么”,else相当于如果以上都不成立,那么就。。
如: case when 条件1 then 结果1 when 条件2 then 结果2 else 结果3 end

select 
 case 
when sex=1 then 'sex等于1'
when sex=0 then 'sex等于0'
else '不等于1或者0'
end
from  table

13.union/union all运算:将查询的返回组合成一个结果, union all不过滤重复。
如:select id from table1 union select id from table2

select id from table1 
union all
select id from table2

14.intersect运算:返回查询结果中相同的部分。
如:select id from table1 intersect select id from table2

15.minus运算:返回在第一个查询结果中与第二个查询结果不相同的那部分行记录。
如:select id from table1 minus select id from table2

16.replace 函数用法如下:
replace(‘将要更改的字符串’,‘被替换掉的字符串’,‘替换字符串’)
如 :select replace (‘111222333444’,‘222’,‘888’) from dual;
输出为 ‘111888333444’

待续…

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值