在做的项目中用Oracle比较多,现在来记录一下使用Oracle的一些重要的知识点。
1.sql语句的提交问题
在pl/sql这个工具中如果执行添加、插入、删除的sql语句,执行完之后要进行提交,可以直接操作PL/SQL工具中的提交按钮:
2.建表小demo
建立表格:
CREATE TABLE "STNP_PJS"."CPE_NOTE_SETTLE_REG"
( "FUNDING_ENTITY_CD" VARCHAR2(32),
"REG_DT" DATE,
"NOTE_AMOUNT" Number(16,2),
"SETTLE_TYPE" Char(1),
"LOG_DT" DATE
)SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
TABLESPACE "TS_CORE";
COMMENT ON COLUMN "STNP_PJS"."CPE_NOTE_SETTLE_REG"."FUNDING_ENTITY_CD" IS '资金实体';
COMMENT ON COLUMN "STNP_PJS"."CPE_NOTE_SETTLE_REG"."REG_BRID" IS '登记机构代码';
COMMENT ON COLUMN "STNP_PJS"."CPE_NOTE_SETTLE_REG"."REG_DT" IS '登记申请日期';
COMMENT ON COLUMN "STNP_PJS"."CPE_NOTE_SETTLE_REG"."SETTLE_TYPE" IS '结清类型';
COMMENT ON COLUMN "STNP_PJS"."CPE_NOTE_SETTLE_REG"."LOG_DT" IS '日志';
3.sql语句中的串用‘’单引号引起来。select * from t where note='1';
4.插入时间:
(1)数据是String类型的:insert into t(date) values(to_date(?,'yyyy-mm-dd'))-->?处输入一个String类型的日期
update t set t_DT=to_date('2018-10-10','yyyy-mm-dd');
(2)数据是Date类型的,insert into t(date) values(?)
5.左外连接
select a from A
left join B on A.id=B.id and A.name=B.name
left join C on C.id=A.id and C.name=B.name
where A.age=10 and B.label='ok' and C.age=10
6.如果想在PL/SQL工具中修改表中的数据,怎么方便的做呢?
(1)比如操作的表是A,写一个SQL语句 select * from A for update。for update是重点,然后执行,执行完之后就可以开锁了(下面的小图标)。
(2)开锁之后修改表中的数据,执行下面的(√->完成)或者(-表示删除一行)或者(+表示添加一行),总之最后执行一下(√->完成),然后执行提交(左上交第二个箭头),提交完成之后关闭,然后就操作完成了,把for update注释掉。
7.oracle中with as的用法
(1)第一种
--相当于建了个e临时表
with e as (select * from scott.emp e where e.empno=7499)
select * from e;
(2)第二种
with t1 as (select XXXX),t2 as(select XXX) select * from t1,t2