Oracle语句补充

SQL> --一次插入多条数据
将emp的列复制给emp10
SQL> create table emp10 as select * from emp where 1=2;

SQL> --一次性将emp中所有10号部门的员工插入到emp10中
SQL> insert into emp10 select * from emp where deptno=10;

SQL> /*
SQL> 海量插入数据
SQL> 1. 数据泵(PLSQL程序:dbms_datapump)
SQL> 2. SQL*Loader工具
SQL> 3. 外部表
SQL> */

SQL> /*
SQL> delete和truncate的区别:
SQL> 1. delete逐条删除;truncate先摧毁表 再重建
SQL> 2. (*)delete是DML(可以回滚) truncate是DDL(不可以回滚)
SQL> 3. delete不会释放空间 truncate会
SQL> 4. delete可以闪回(flashback)  truncate不可以
SQL> 5. delete会产生碎片 truncate不会
SQL> */

SQL> Oracle中事务的标志
SQL> 1. 起始标志:事务中第一条DML语句
SQL> 2. 结束标志:提交 显式 commit
SQL>                   隐式 正常退出exit,DDL,DCL
SQL>              回滚 显式 rollback
SQL>                   隐式 非正常退出,掉电,宕机
SQL> */

中途创建保存点
SQL> savepoint a;
保存点已创建。
SQL> rollback to savepoint a;

设置表为只读
SQL> set transaction read only;
事务处理集。


SQL> --rownum 行号
SQL> select rownum,empno,ename,sal from emp;
SQL> select rownum,empno,ename,sal
  2  from emp
  3  where rownum<=3
  4  order by sal desc;

SQL> /*
SQL> 关于rownum
SQL> 1. rownum永远按照默认的顺序生成
SQL> 2. rownum只能使用< <=;不能使用> >=
SQL> */
SQL> select rownum,empno,ename,sal from emp order by sal desc;
部分:
    ROWNUM      EMPNO ENAME             SAL                                                                                                                                                             
---------- ---------- ---------- ----------                                                                                                                                                             
         9       7839 KING             5000                                                                                                                                                             
        13       7902 FORD             3000                                                                                                                                                             
         8       7788 SCOTT            3000                                                                                                                                                             
         4       7566 JONES            2975                                                                                                                                                             
         6       7698 BLAKE            2850                                                                                                                                                             
         7       7782 CLARK            2450                                                                                                                                                             
         2       7499 ALLEN            1600                                                                                                                                                             
        10       7844 TURNER           1500                                                                                                                                                             
        14       7934 MILLER           1300                                                                                                                                                             
         3       7521 WARD             1250                                                                                                                                                             
         5       7654 MARTIN           1250     

SQL> --修改表:追加列,修改列,删除列,重命名列,重命名表
SQL> --增加photo保存照片
SQL> alter table test1 add photo blob;
SQL> --修改列
SQL> alter table test1 modify tname varchar2(40);
SQL> --删除列
SQL> alter table test1 drop column photo;
SQL> --重命名列
SQL> alter table test1 rename column tname to username;
SQL> --重命名表
SQL> rename test1 to test2;
SQL> drop table test2;
原文地址:https://www.cnblogs.com/anzhi/p/7515753.html