Oracle 操做數據庫(增刪改語句)

  對數據庫的操做除了查詢,還包括插入、更新和刪除等數據操做。後3種數據操做使用的 SQL 語言也稱爲數據操縱語言(DML)。sql

1、插入數據(insert 語句)

  插入數據就是將數據記錄添加到已經存在的數據表中,能夠經過 insert 語句實現向數據表中一次插入一條記錄,也可使用 select 子句將查詢結果批量插入數據表。數據庫

  一、單條插入數據

   語法:express

insert into table_name [ (column_name[,column_name2]...) ] values(express1[,express2]... )
  •     table_name:要插入數據的表名
  •     column_name1 和 column_name2:指定表的徹底或部分列名稱
  •     express1 和 express2 :表示要插入的值列表

      EG:spa

SQL > insert into dept(deptno,dname,loc) values(88,'Tony','tianjin')

       注意:blog

  •  insert into 中指定添加數據的列,能夠是數據表的所有列,也能夠是部分列
  •    給指定列添加數據時,須要注意哪些列不能空;對於能夠爲空的列,添加數據能夠不指定值;添加數據時,還應該數據添加數據和字段的類型和範圍
  •    向表中全部列添加數據時,能夠省略 insert into 子句後面的列表清單,使用這種方法時,必須根據表中定義列的順序爲全部的列提供數據
  •    添加數據時,還應該注意哪一個字段是主鍵(主鍵的字段是不容許重複的),不能給主鍵字段添加劇復的值 

  二、批量插入數據

  insert 語句還能夠一次向表中添加一組數據,可使用 select 語句替換原來的 values 子句,語法以下:it

insert  into  table_name [ (column_name1[,column_name2...]...) ] selectSubquery
  •       table_name:要插入數據的表名
  •       column_name1  和 column_name2 :表示指定的列名
  •       selectSubquery:任何合法的 select 語句,其所選列的個數和類型要與語句中的 column 對應。

     EG:io

SQL > insert into jobs_temp select * from jobs where jobs.salary > 1000

      注意:table

  •      使用這種語句實現批量插入數據時,insert into 子句指定的列名能夠與 select 子句指定的列名不一樣,可是它們之間的數據類型必須是兼容的

2、更新數據(update 語句)

  若是表中的數據不正確或不符合需求,那麼就能夠經過 update 語句實現修改現有的數據記錄。class

  更新數據時,更新的列數能夠有本身指定,列與列之間用逗號分隔;更新的條數能夠經過 where 子句來加以限制,使用 where 子句時,系統只更新符合 where 條件的記錄,語法以下:date

update table_name set {column_nam1=express1 [,column_name2=express2...] | (column_name1 [,column_name2...]) = (selectSubquery)} [where condition]
  •    table_name:表示要修改的表名
  •         column_name1 和 column_name2 :表示指定要更新的列名
  •         selectSubquery: 任何合法的 select 語句,其所選列的個數和類型要與語句中 column 對應
  •         condition:篩選條件表達式,只有符合篩選條件的記錄纔會被更新

  EG1:

SQL > update emp set sal = sal*1.2 where job = "salesman"

    表示把銷售員(salesman)的工資上調20%。

  EG2:

SQL > update emp set sal = (select avg(sal) from emp where job = "manager") where sal < 2000

    表示把emp表中工資小於2000的人員工資調整爲管理者的平均工資的水平。

  注意:

  •   將 update 語句與 select 語句組合使用時,必須保證 select 語句返回單一的值,不然會出現錯誤提示,致使更新數據失敗。

3、刪除數據 (delete 語句和 truncate 語句) 

  Oracle 系統提供了從數據庫刪除記錄的功能,刪除記錄可使用 delete 語句和 truncate 語句,區分以下:

  一、delete 語句

   delete  語句用來刪除數據庫中的全部記錄和指定方位的記錄,若要刪除指定範圍的記錄,需用 where 子句進行限制,語法以下:

delete from table_name [where condition]
  •     table_name:表示要刪除記錄的表名
  •     condition:篩選條件,可選項,只有符合篩選條件的記錄纔會被刪除掉

  EG:

SQL > delete from jobs where job_id = "pro"

   注意:使用 delete 語句來刪除數據時, Oracle 系統會產生回滾記錄,全部這種操做可使用 rollback 語句來進行撤銷

  二、truncate 語句

  刪除記錄也可使用 truncate 語句,語法同 delete 語句,使用 truncate 語句刪除表中的全部記錄要比 delete 語句快得多,可是不會產生回滾記錄,執行了 truncate 語句的操做也就沒法使用 rollback 語句撤銷。

  注意在 truncate 語句還可使用 reuse storage  關鍵字或者 drop  storage  關鍵字,前者表示刪除記錄後仍然保存記錄所佔用的空間;後者表示刪除記錄後當即回收記錄所佔用的空間。Oracle 系統默認狀況下的 truncate 語句使用 drop storage 關鍵字。

相關文章
相關標籤/搜索