對數據庫的操做除了查詢,還包括插入、更新和刪除等數據操做。後3種數據操做使用的 SQL 語言也稱爲數據操縱語言(DML)。sql
插入數據就是將數據記錄添加到已經存在的數據表中,能夠經過 insert 語句實現向數據表中一次插入一條記錄,也可使用 select 子句將查詢結果批量插入數據表。數據庫
語法:express
insert into table_name [ (column_name[,column_name2]...) ] values(express1[,express2]... )
EG:spa
SQL > insert into dept(deptno,dname,loc) values(88,'Tony','tianjin')
注意:blog
insert 語句還能夠一次向表中添加一組數據,可使用 select 語句替換原來的 values 子句,語法以下:it
insert into table_name [ (column_name1[,column_name2...]...) ] selectSubquery
EG:io
SQL > insert into jobs_temp select * from jobs where jobs.salary > 1000
注意:table
若是表中的數據不正確或不符合需求,那麼就能夠經過 update 語句實現修改現有的數據記錄。class
更新數據時,更新的列數能夠有本身指定,列與列之間用逗號分隔;更新的條數能夠經過 where 子句來加以限制,使用 where 子句時,系統只更新符合 where 條件的記錄,語法以下:date
update table_name set {column_nam1=express1 [,column_name2=express2...] | (column_name1 [,column_name2...]) = (selectSubquery)} [where 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的人員工資調整爲管理者的平均工資的水平。
注意:
Oracle 系統提供了從數據庫刪除記錄的功能,刪除記錄可使用 delete 語句和 truncate 語句,區分以下:
delete 語句用來刪除數據庫中的全部記錄和指定方位的記錄,若要刪除指定範圍的記錄,需用 where 子句進行限制,語法以下:
delete from table_name [where condition]
EG:
SQL > delete from jobs where job_id = "pro"
注意:使用 delete 語句來刪除數據時, Oracle 系統會產生回滾記錄,全部這種操做可使用 rollback 語句來進行撤銷
刪除記錄也可使用 truncate 語句,語法同 delete 語句,使用 truncate 語句刪除表中的全部記錄要比 delete 語句快得多,可是不會產生回滾記錄,執行了 truncate 語句的操做也就沒法使用 rollback 語句撤銷。
注意:在 truncate 語句還可使用 reuse storage 關鍵字或者 drop storage 關鍵字,前者表示刪除記錄後仍然保存記錄所佔用的空間;後者表示刪除記錄後當即回收記錄所佔用的空間。Oracle 系統默認狀況下的 truncate 語句使用 drop storage 關鍵字。