Oracle數(shù)據(jù)的插入insert、更新update、刪除delete、truncate舉例詳解
前言
本文主要概述的內(nèi)容是在Oracle中數(shù)據(jù)的插入-insert、更新-update、刪除-delete、truncate。也會把工作當中可能用到的場景給總結出來,以方便大家需要時查詢。
插入數(shù)據(jù)-insert
單行插入所有列
insert into 表名 values(值1,值2,值3……); insert into 表名 values(值1,值2,值3……); insert into 表名 values(值1,值2,值3……); commit; ……
注意:values值的順序需要和表的字段順序保持一致,如果沒有具體值需用null填充,否則會報錯(沒有足夠的值)。
執(zhí)行一行,插入一條數(shù)據(jù),若要拆入多行數(shù)據(jù),則編輯好對應值,執(zhí)行多行即可。
部分字段插入數(shù)據(jù)
工作中有時只想給表中的某幾個字段插入值,或者插入所有列但忘記表中的字段順序時,可以指定字段和對應的值來進行操作。
insert into 表名(字段1,字段2,字段3……) values(值1,值2,值3……); commit;
將表1數(shù)據(jù)插入到表2
這個應用場景和數(shù)據(jù)備份相似,或者理解為數(shù)據(jù)的復制都可以,目的是要從一個表中篩選出來的數(shù)據(jù)復制到另一個表中。
注意:兩個表的表結構必須保持一致
insert into 表2 select * from 表1; --將表1的所有數(shù)據(jù)插入到表2中 commit; insert into 表2 select * from 表1 where 條件; --可以加篩選條件 commit;
插入檢索出的數(shù)據(jù)
此方式工作中也經(jīng)常使用,可以理解為上述幾種方式的結合。通過檢索出另一張表的數(shù)據(jù)將值插入到具體指定的列。
insert into 表1(字段1, 字段2, 字段3, ……) select 字段1, 字段2, 字段3, …… from 表2 [篩選條件……] commit;
更新數(shù)據(jù)-update
基本的UPDATE語句由三部分組成,分別是:
- 要更新的表;
- 列名和它們的新值;
- 確定要更新哪些行的過濾條件(很重要)
- 要刪除某個列的值,可設置它為NULL(假如表定義允許NULL值)
--更新表中列的值 update 表名 set 字段1 = 值1, 字段2 = 值2, …… where 篩選條件; --刪除某列的值 update 表名 set 字段1 = NULL where 篩選條件;
刪除數(shù)據(jù)-delete & truncate
從一個表中刪除(去掉)數(shù)據(jù),使用DELETE語句。有兩種使用DELETE的方式:
- 從表中刪除特定的行
- 從表中刪除所有行
注意:where子句很重要,因為稍不注意,就會錯誤地刪除表中所有行。
DELETE刪除整行而不是刪除列。要刪除指定的列,請使用 UPDATE 語句。
如果想從表中刪除所有行,不要使用 DELETE??墒褂?TRUNCATE 語句,它完成相同的工作,而速度更快(因為不記錄數(shù)據(jù)的變動)。
--刪除符合條件的某行/某幾行數(shù)據(jù) delete from 表名 where 篩選條件; --刪除表中的所有行 delete from 表名; truncate table 表名;
dalete和truncate的主要區(qū)別
- delete語句是一種DML(數(shù)據(jù)操作語言)語句,而truncate語句是一種DDL(數(shù)據(jù)定義語言)語句。這意味著delete語句是用于操作數(shù)據(jù)的,而truncate語句是用于操作表結構的。
- delete語句可以使用where子句來指定刪除的條件,而truncate語句不能使用where子句,只能整表刪除。
- delete刪除數(shù)據(jù)時,會將每一行的數(shù)據(jù)都放入回滾段(rollback segment)中,以便在事務回滾時可以還原數(shù)據(jù)。而truncate并不會將數(shù)據(jù)放入回滾段中,無法回滾。
- delete語句刪除數(shù)據(jù)是逐行進行,對于大表來說,刪除數(shù)據(jù)的效率相對較低。而truncate語句是直接刪除整個表的數(shù)據(jù),因此對于大表來說,刪除數(shù)據(jù)的效率相對較高。
附:Oracle一次插入多條記錄
方式1:
要向數(shù)據(jù)庫中寫入多條記錄,記錄集已經(jīng)確定,如果一次一次插入勢必影響效率。
解決方法:
注意:上面最后一個select之后沒有union all,否則報錯。
方式2:
總結
到此這篇關于Oracle數(shù)據(jù)的插入insert、更新update、刪除delete、truncate的文章就介紹到這了,更多相關Oracle數(shù)據(jù)插入更新刪除內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Oracle 12c修改字符集的方法(解決數(shù)據(jù)導入后中文亂碼及ORA-12899錯誤)
之前在Windows上安裝的Oracle,現(xiàn)在遷移到Linux上,把dmp文件導入Linux的時候發(fā)現(xiàn)字段的注釋和存儲過程中的中文是問號?,而且導入的時候還會報ORA-12899錯誤,其實這些都是字符集問題,所以本文給大家介紹了Oracle 12c修改字符集的方法,需要的朋友可以參考下2024-04-04Oracle數(shù)據(jù)庫中創(chuàng)建自增主鍵的實例教程
Oracle的字段自增功能,可以利用創(chuàng)建觸發(fā)器的方式來實現(xiàn),接下來我們就來看看Oracle數(shù)據(jù)庫中創(chuàng)建自增主鍵的實例教程,需要的朋友可以參考下2016-05-05SQL?Developer遷移第三方數(shù)據(jù)庫單表到Oracle的全過程
這篇文章主要介紹了SQL?Developer遷移第三方數(shù)據(jù)庫單表到Oracle的全過程,文章通過圖文結合的方式給大家講解的非常詳細,具有一定的參考價值,需要的朋友可以參考下2024-06-06