Oracle 學習筆記 9

來源:互聯網
上載者:User

前幾次筆記學習了,查詢的相關操作和建立管理表,本次筆記學習資料處理,包括:向表中插入資料(INSERT)、修改資料(UPDATE)和刪除資料(DELETE)。

為了儲存emp中原有的資料,我們建立一個新的表,只是原表中部分資料,並在該表的基礎上進行相關的資料操作。

SQL> create table emp1
  2  as (select empno  ,ename , sal ,hiredate from emp) ;
 
Table created
 
SQL> desc emp1 ;
Name     Type         Nullable Default Comments
-------- ------------ -------- ------- --------
EMPNO    NUMBER(4)    Y                        
ENAME    VARCHAR2(10) Y                        
SAL      NUMBER(7,2)  Y                        
HIREDATE DATE         Y                        
 
SQL> select * from emp1 ;
 
EMPNO ENAME            SAL HIREDATE
----- ---------- --------- -----------
 7369 SMITH         800.00 1980/12/17
 7499 ALLEN        1600.00 1981/2/20
 7521 WARD         1250.00 1981/2/22
 7566 JONES        2975.00 1981/4/2
 7654 MARTIN       1250.00 1981/9/28
 7698 BLAKE        2850.00 1981/5/1
 7782 CLARK        2450.00 1981/6/9
 7788 SCOTT        3000.00 1987/4/19
 7839 KING         5000.00 1981/11/17
 7844 TURNER       1500.00 1981/9/8
 7876 ADAMS        1100.00 1987/5/23
 7900 JAMES         950.00 1981/12/3
 7902 FORD         3000.00 1981/12/3
 7934 MILLER       1300.00 1982/1/23
 
14 rows selected

上面的查詢結果,說明建立表emp1成功 。接下來,進行表的相關資料操作。

添加資料

基本文法:

INSERT INTO  table_name (column1 , column2, ..., column n)  values (value1 ,value2 , ....,value n ) ;

這種文法一次只能插入一條資料。

例:向emp1中插入一條資料empno 為 7000 ,ename為 zhangsan ,sal 為8000,日期為2014-4-17 ;

SQL> insert into emp1(empno , ename , sal , hiredate) values(7000 , 'zhangsan',8000 , sysdate );
 
1 row inserted
 
SQL> select * from emp1 where ename ='zhangsan';
 
EMPNO ENAME            SAL HIREDATE
----- ---------- --------- -----------
 7000 zhangsan     8000.00 2014/4/17 1

如果要插入的資料,包含了表中所有的列,那麼表名後面括弧中的列名,可以省略不寫,但是values中列名的值的順序要與表中的列名的順序一致,即:insert into emp1 values(7000 , 'zhangsan',8000 , sysdate );與上面的執行結果也是一樣的。另外,表名後面括弧中的列名沒有先後的次序,只要values中值得順序,也列名對應,都是可以的。上面日期使用了系統當前的日期,其實我們可以指定日期,即:insert into emp1(empno , ename , sal , hiredate) values(7000 , 'zhangsan',8000 , to_date('2013-4-17','yyyy-mm-dd') ); 。

注意:字元和日期都應放在單引號中。

例:只為empno  ,ename ,和 sal 提供資料。

SQL> insert into emp1 (empno , ename ,sal) values(7001 , 'lisi' , 9000) ;
 
1 row inserted
 
SQL> select * from emp1 where ename ='lisi' ;
 
EMPNO ENAME            SAL HIREDATE
----- ---------- --------- -----------
 7001 lisi         9000.00

上面只是插入了部分資料,這樣也是可以的。但是必須要為主鍵和not null 列提供資料。要滿足約束的條件。

 

修改資料

基本文法:

UPDATE table

SET column =value [, column= value, ...]

[WHERE  condition];

可以一次更新多條資料。使用where子句指定更新的條件,來確定哪些列需要更新,如果不指定where條件,則表中所有的列都更新。

SQL> update emp1 set sal = 8000 where sal = 950 ;
 
1 row updated
 
SQL> update emp1 set sal = 8000 ;
 
14 rows updated

當不指定更新條件的時候,14條資料更新,指定後有1條更新。一般使用更新語句的都是要跟更新條件。

例:將king的工資改為 13000 ;

SQL> update emp1 set sal = 13000 where lower(ename ) = 'king' ;
 
1 row updated
 
SQL> select * from emp1 where lower(ename ) = 'king' ;
 
EMPNO ENAME            SAL HIREDATE
----- ---------- --------- -----------
 7839 KING        13000.00 1981/11/17

刪除資料

基本文法

DELETE FROM    table

[WHERE    condition];

後跟where條件,則只刪除滿足條件的語句,不跟where條件,刪除全部的資料。

例:刪除編號為7839 的僱員。

SQL> delete from  emp1 where empno = 7839 ;
 
1 row deleted
 
SQL> select * from emp1 where empno  = 7839 ;
 
EMPNO ENAME            SAL HIREDATE
----- ---------- --------- -----------

delete  from emp1 ; 後面沒有指定刪除的條件,將刪除所有的記錄。

上面的插入操作,刪除操作,更新操作,也是可以使用子查詢的,只不過要基於另一個表。

 

資料庫事務

事務:是對一個或者多個表中資料進行的一組DML操作,作為一個單元來處理的方法。這些DML是通過INSERT 、UPDATE 、DELETE語句進行的。

提交事務:

commit ;提交事務使用commit 提交事務。其作用是結束當前的事務,並把當前事務所執行的全部修改儲存到外存的資料庫中,當使用rollback時,資料庫中已經更改的資料不會再發生變化。

設定儲存點:

savepoint  savepoint_name ;通過該語句,來設定一個交易回復的點。可以通過該語句來設定多個儲存點。

撤銷事務:

撤銷事務使用ROLLBACK語句。該語句的作用是撤銷當前事務中所作的修改,即使用update ,insert ,和delete 操作的資料,重新回到原來的狀態。

ROLLBACK  [TO savepoint _name ] ;

也可以通過ROLLBACK TO SAVAEPOINT_NAME ,來指定復原到哪一個儲存點。

 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.