专题实验 SQL

时间:2023-03-09 03:29:33
专题实验 SQL

merge

merge into copy_emp ce using emp e
on (ce.empno = e.empno)
when matched then
update set
ename = e.ename
when not matched then
insert (empno, ename)
values(e.empno, e.ename)

注: merge 也属于 dml 操作, 所以操作之后需要进行 commit;

merge 使用注意事项: oracle 9i 版本, 你必须要写全 matched 和 not matched 分支, oracle 10g 以后, 如果你只想确认插入, 那么就直接 when not matched 就可以了, 可以忽略 when matched, 另外, when matched update set .. 这里不能修改连接条件, 即除了连接条件的列意外的列, 可以被修改.

escape 转义字符

SELECT * FROM copy_emp
where ename like 'XAA\_%' ESCAPE '\'

Hierarchical retrieval ( 树形 )

   1:  SELECT [LEVEL], column, expr...
   2:  FROM TABLE
   3:  [WHERE conditions]
   4:  [START WITH conditions]
   5:  [CONNECT BY PRIOR conditions]