zoukankan      html  css  js  c++  java
  • Oracle入门基础(八)一一数据处理

    SQL> SQL的类型
    SQL> 1、DML(Data Manipulation Language 数据操作语言): select insert update delete
    SQL> 2、DDL(Data Definition Language 数据定义语言): create table,alter table,truncate table,drop table    create/drop view,sequnece,index,synonym(同义词)
    SQL> 3、DCL(Data Control Language 数据控制语言): grant(授权) revoke(撤销权限)
    
    SQL> --插入insert
    SQL> insert into emp(empno,ename,sal,deptno) values(1001,'Tom',3000,10);
    
    SQL> --PreparedStatement pst = "insert into emp(empno,ename,sal,deptno) values(?,?,?,?)";
    SQL> --地址符 &
    SQL> insert into emp(empno,ename,sal,deptno) values(&empno,&ename,&sal,&deptno);
    输入 empno 的值:  1002
    输入 ename 的值:  'Mary'
    输入 sal 的值:  2000
    输入 deptno 的值:  20
    原值    1: insert into emp(empno,ename,sal,deptno) values(&empno,&ename,&sal,&deptno)
    新值    1: insert into emp(empno,ename,sal,deptno) values(1002,'Mary',2000,20)
    
    已创建 1 行。
    
    
    SQL> select empno,ename,sal,&t
      2  from emp;
    输入 t 的值:  job
    原值    1: select empno,ename,sal,&t
    新值    1: select empno,ename,sal,job
    
         EMPNO ENAME             SAL JOB                                                                                                                                                                    
    ---------- ---------- ---------- ---------                                                                                                                                                              
          1001 Tom              3000                                                                                                                                                                        
          1002 Mary             2000                                                                                                                                                                        
       
    SQL> select * from &t;
    输入 t 的值:  dept
    原值    1: select * from &t
    新值    1: select * from dept
    
        DEPTNO DNAME          LOC                                                                                                                                                                           
    ---------- -------------- -------------                                                                                                                                                                 
            10 ACCOUNTING     NEW YORK                                                                                                                                                                      
            20 RESEARCH       DALLAS                                                                                                                                                                        
            30 SALES          CHICAGO                                                                                                                                                                       
            40 OPERATIONS     BOSTON                                                                                                                                                                        
    
    SQL> rollback;
    
    回退已完成。
    
    SQL> --一次插入多条记录
    SQL> create table emp10 as select * from emp where 1=2;
    SQL> desc emp10
    助解:desc table_name查看表结构
    
    SQL> --一次性将emp中,所有10号部门的员工插入到emp10中
    SQL> insert into emp10 select * from emp where deptno=10;
    
    SQL> 海量插入数据:
    SQL> 1、数据泵(PLSQL程序)
    SQL>    dbms_datapump(程序包)
    SQL> 2、SQL*Loader
    SQL> 3、外部表
    
    SQL> delete和truncate的区别
    SQL> 1、delete逐条删除;truncate先摧毁表 再重建2
    SQL> 2、delete是DML  truncate是DDL
    SQL> 3.   delete可以回滚;truncate不可以回滚
    SQL> 4、delete不会释放空间 truncate会
    SQL> 5、delete会产生碎片 truncate不会
    SQL>6、delete from后面可以写条件,truncate不可以。
    SQL> 7、delete可以闪回(flashback)  truncate不可以
    助解:闪回技术有闪回表、闪回删除、闪回查询、闪回事务查询、闪回事务、闪回数据库、闪  回数据归档。其中,闪回查询、闪回事务查询用来“观察”过去;闪回数据归档并不是一个独立的功能,其功能是扩展闪回查询的时间窗口;闪回表、闪回删表能够以表为单位“回到”过去;闪回事务能够以事务为单位“回到”过去;闪回数据库能够以数据库为单位“回到”过去。
    SQL> --flashback其实是一种恢复
    
    SQL>delete和truncat执行时间对比                                                                                                                                                                                     
    SQL> set timing on
    SQL> delete from testdelete;
    已用时间:  00: 00: 00.14
    SQL> set timing off
    SQL> drop table testdelete purge;
    SQL>  @d:	emp	estdelete.sql
    SQL> set timing on
    SQL> truncate table testdelete;
    已用时间:  00: 00: 00.27
    SQL> set timing off
    
    SQL> Oracle中的事务
    SQL> 1、起始标志: 事务中的第一条DML语句
    SQL> 2、结束标志:提交: 显式  commit  隐式: 正常退出 DDL DCL
    SQL>       回滚: 显式 rollback   隐式: 非正常退出 掉电  宕机
    
    SQL> create table testsavepoint
      2  (tid number,tname varchar2(20));
    SQL> set feedback on
    SQL> insert into testsavepoint values(1,'Tom');
    
    已创建 1 行。
    
    SQL> insert into testsavepoint values(2,'Mary');
    
    已创建 1 行。
    
    SQL> savepoint a;
    
    保存点已创建。
    
    SQL> select * from testsavepoint;
    
           TID TNAME                                                                                                                                                                                        
    ---------- --------------------                                                                                                                                                                         
             1 Tom                                                                                                                                                                                          
             2 Mary                                                                                                                                                                                         
    
    已选择 2 行。
    
    SQL> insert into testsavepoint values(3,'Maee');
    
    已创建 1 行。
    
    SQL>  select * from testsavepoint;
    
           TID TNAME                                                                                                                                                                                        
    ---------- --------------------                                                                                                                                                                         
             1 Tom                                                                                                                                                                                          
             2 Mary                                                                                                                                                                                         
             3 Maee                                                                                                                                                                                         
    
    已选择 3 行。
    
    SQL> rollback to savepoint a;
    
    回退已完成。
    
    SQL> select * from testsavepoint;
    
           TID TNAME                                                                                                                                                                                        
    ---------- --------------------                                                                                                                                                                         
             1 Tom                                                                                                                                                                                          
             2 Mary                                                                                                                                                                                         
    
    已选择 2 行。
    
    SQL> commit;
    
    提交完成。
    
    SQL> set transaction read only;
    
    事务处理集。
    
    SQL> select * from testsavepoint;
    
           TID TNAME                                                                                                                                                                                        
    ---------- --------------------                                                                                                                                                                         
             1 Tom                                                                                                                                                                                          
             2 Mary                                                                                                                                                                                         
    
    已选择 2 行。
    
    SQL> insert into testsavepoint values(3,'Maee');
    insert into testsavepoint values(3,'Maee')
           
    第 1 行出现错误: 
    ORA-01456: 不能在 READ ONLY 事务处理中执行插入/删除/更新操作 
    
     --oracle分页(Pageing Query)
    
     select * from 	(select rownum r,e1.* from (select * from emp order by sal) e1
    					 	 where rownum <=8) 
    					 	 where r >=5;
    
  • 相关阅读:
    Gson的使用
    通过java解析域名获得IP地址
    SQL竖列变横列
    jQuery判断checkbox是否选
    mysql数据添加时如果这条数据存在进行修改
    localStorage使用总结
    如何在一个数组中求出任意几个数的和等于给定数
    外汇EA(LRY_FX_Robot_V5)
    爱奇艺、腾讯、优酷、搜狐、芒果、乐视、PPTV、音悦台等VIP视频免费观看
    Failed to sync Gradle project 'XX'错误解决
  • 原文地址:https://www.cnblogs.com/Aaron-007/p/12814623.html
Copyright © 2011-2022 走看看