欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle數(shù)據(jù)的插入insert、更新update、刪除delete、truncate舉例詳解

 更新時(shí)間:2024年07月01日 09:37:45   作者:多sir  
SQL語(yǔ)法是所有操作的基礎(chǔ),包括創(chuàng)建、查詢、更新和刪除數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)的插入insert、更新update、刪除delete、truncate的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

本文主要概述的內(nèi)容是在Oracle中數(shù)據(jù)的插入-insert、更新-update、刪除-delete、truncate。也會(huì)把工作當(dāng)中可能用到的場(chǎng)景給總結(jié)出來(lái),以方便大家需要時(shí)查詢。

插入數(shù)據(jù)-insert

單行插入所有列

insert into 表名 values(值1,值2,值3……);
insert into 表名 values(值1,值2,值3……);
insert into 表名 values(值1,值2,值3……);
commit;
……

注意:values值的順序需要和表的字段順序保持一致,如果沒(méi)有具體值需用null填充,否則會(huì)報(bào)錯(cuò)(沒(méi)有足夠的值)。
執(zhí)行一行,插入一條數(shù)據(jù),若要拆入多行數(shù)據(jù),則編輯好對(duì)應(yīng)值,執(zhí)行多行即可。

部分字段插入數(shù)據(jù)

工作中有時(shí)只想給表中的某幾個(gè)字段插入值,或者插入所有列但忘記表中的字段順序時(shí),可以指定字段和對(duì)應(yīng)的值來(lái)進(jìn)行操作。

insert into 表名(字段1,字段2,字段3……)  values(值1,值2,值3……);
commit;

將表1數(shù)據(jù)插入到表2

這個(gè)應(yīng)用場(chǎng)景和數(shù)據(jù)備份相似,或者理解為數(shù)據(jù)的復(fù)制都可以,目的是要從一個(gè)表中篩選出來(lái)的數(shù)據(jù)復(fù)制到另一個(gè)表中。
注意:兩個(gè)表的表結(jié)構(gòu)必須保持一致

insert into 表2 select * from 表1; --將表1的所有數(shù)據(jù)插入到表2中
commit;

insert into 表2 select * from 表1 where 條件;  --可以加篩選條件
commit;

插入檢索出的數(shù)據(jù)

此方式工作中也經(jīng)常使用,可以理解為上述幾種方式的結(jié)合。通過(guò)檢索出另一張表的數(shù)據(jù)將值插入到具體指定的列。

insert into 表1(字段1,
                字段2,
                字段3,
                 ……) 
  select 字段1,
         字段2,
         字段3,
          ……
  from 表2
  [篩選條件……]
  
  commit;

更新數(shù)據(jù)-update

基本的UPDATE語(yǔ)句由三部分組成,分別是:

  • 要更新的表;
  • 列名和它們的新值;
  • 確定要更新哪些行的過(guò)濾條件(很重要)
  • 要?jiǎng)h除某個(gè)列的值,可設(shè)置它為NULL(假如表定義允許NULL值)
--更新表中列的值
update 表名 
	set 字段1 = 值1, 
		字段2 = 值2,
		……
where 篩選條件;

--刪除某列的值
update 表名 set 字段1 = NULL where 篩選條件;

刪除數(shù)據(jù)-delete & truncate

從一個(gè)表中刪除(去掉)數(shù)據(jù),使用DELETE語(yǔ)句。有兩種使用DELETE的方式:

  • 從表中刪除特定的行
  • 從表中刪除所有行

注意:where子句很重要,因?yàn)樯圆蛔⒁?,就?huì)錯(cuò)誤地刪除表中所有行。

DELETE刪除整行而不是刪除列。要?jiǎng)h除指定的列,請(qǐng)使用 UPDATE 語(yǔ)句。

如果想從表中刪除所有行,不要使用 DELETE??墒褂?TRUNCATE 語(yǔ)句,它完成相同的工作,而速度更快(因?yàn)椴挥涗洈?shù)據(jù)的變動(dòng))。

--刪除符合條件的某行/某幾行數(shù)據(jù)
delete from 表名 where 篩選條件;  

--刪除表中的所有行 
delete from 表名;  
truncate table 表名;  

dalete和truncate的主要區(qū)別

  • delete語(yǔ)句是一種DML(數(shù)據(jù)操作語(yǔ)言)語(yǔ)句,而truncate語(yǔ)句是一種DDL(數(shù)據(jù)定義語(yǔ)言)語(yǔ)句。這意味著delete語(yǔ)句是用于操作數(shù)據(jù)的,而truncate語(yǔ)句是用于操作表結(jié)構(gòu)的。
  • delete語(yǔ)句可以使用where子句來(lái)指定刪除的條件,而truncate語(yǔ)句不能使用where子句,只能整表刪除。
  • delete刪除數(shù)據(jù)時(shí),會(huì)將每一行的數(shù)據(jù)都放入回滾段(rollback segment)中,以便在事務(wù)回滾時(shí)可以還原數(shù)據(jù)。而truncate并不會(huì)將數(shù)據(jù)放入回滾段中,無(wú)法回滾。
  • delete語(yǔ)句刪除數(shù)據(jù)是逐行進(jìn)行,對(duì)于大表來(lái)說(shuō),刪除數(shù)據(jù)的效率相對(duì)較低。而truncate語(yǔ)句是直接刪除整個(gè)表的數(shù)據(jù),因此對(duì)于大表來(lái)說(shuō),刪除數(shù)據(jù)的效率相對(duì)較高。

附:Oracle一次插入多條記錄

方式1:

要向數(shù)據(jù)庫(kù)中寫(xiě)入多條記錄,記錄集已經(jīng)確定,如果一次一次插入勢(shì)必影響效率。

解決方法:

注意:上面最后一個(gè)select之后沒(méi)有union all,否則報(bào)錯(cuò)。

方式2:

總結(jié)

到此這篇關(guān)于Oracle數(shù)據(jù)的插入insert、更新update、刪除delete、truncate的文章就介紹到這了,更多相關(guān)Oracle數(shù)據(jù)插入更新刪除內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Oracle同步數(shù)據(jù)到kafka的方法

    Oracle同步數(shù)據(jù)到kafka的方法

    本文主要介紹如何使用kafka-connect-oracle開(kāi)源工具,將Oracle?dml產(chǎn)生的數(shù)據(jù)實(shí)時(shí)同步至kafka,供kafka消費(fèi),對(duì)Oracle同步數(shù)據(jù)到kafka的方法感興趣的朋友一起看看吧
    2022-02-02
  • Oracle 12c修改字符集的方法(解決數(shù)據(jù)導(dǎo)入后中文亂碼及ORA-12899錯(cuò)誤)

    Oracle 12c修改字符集的方法(解決數(shù)據(jù)導(dǎo)入后中文亂碼及ORA-12899錯(cuò)誤)

    之前在Windows上安裝的Oracle,現(xiàn)在遷移到Linux上,把dmp文件導(dǎo)入Linux的時(shí)候發(fā)現(xiàn)字段的注釋和存儲(chǔ)過(guò)程中的中文是問(wèn)號(hào)?,而且導(dǎo)入的時(shí)候還會(huì)報(bào)ORA-12899錯(cuò)誤,其實(shí)這些都是字符集問(wèn)題,所以本文給大家介紹了Oracle 12c修改字符集的方法,需要的朋友可以參考下
    2024-04-04
  • Oracle重建控制文件的實(shí)例教程

    Oracle重建控制文件的實(shí)例教程

    前些天在做Oracle數(shù)據(jù)庫(kù)恢復(fù)測(cè)試時(shí),因?yàn)橐恍┊惓2僮鲗?dǎo)致控制文件出了問(wèn)題,數(shù)據(jù)庫(kù)無(wú)法正常使用,下面這篇文章就來(lái)給大家介紹了關(guān)于Oracle重建控制文件的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧
    2018-05-05
  • Oracle中查看引起Session阻塞的2個(gè)腳本分享

    Oracle中查看引起Session阻塞的2個(gè)腳本分享

    這篇文章主要介紹了Oracle中查看引起Session阻塞的2個(gè)腳本分享,本文給出了2個(gè)腳本來(lái)查詢導(dǎo)致Session阻塞的原因,并給出Kill引起阻塞的Session方法,需要的朋友可以參考下
    2014-10-10
  • Oracle常見(jiàn)問(wèn)題解決方案匯總

    Oracle常見(jiàn)問(wèn)題解決方案匯總

    今天小編就為大家分享一篇關(guān)于Oracle常見(jiàn)問(wèn)題解決方案匯總,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • Oracle數(shù)據(jù)庫(kù)中創(chuàng)建自增主鍵的實(shí)例教程

    Oracle數(shù)據(jù)庫(kù)中創(chuàng)建自增主鍵的實(shí)例教程

    Oracle的字段自增功能,可以利用創(chuàng)建觸發(fā)器的方式來(lái)實(shí)現(xiàn),接下來(lái)我們就來(lái)看看Oracle數(shù)據(jù)庫(kù)中創(chuàng)建自增主鍵的實(shí)例教程,需要的朋友可以參考下
    2016-05-05
  • oracle索引的測(cè)試實(shí)例代碼

    oracle索引的測(cè)試實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于oracle索引測(cè)試的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • oracle 11g RAC 常用命令整理分享

    oracle 11g RAC 常用命令整理分享

    很多朋友會(huì)經(jīng)常用到oracle 11g RAC的命令,今天我也用到了,同時(shí)也整理了一些常用的命令,以備不時(shí)之需
    2012-11-11
  • SQL?Developer遷移第三方數(shù)據(jù)庫(kù)單表到Oracle的全過(guò)程

    SQL?Developer遷移第三方數(shù)據(jù)庫(kù)單表到Oracle的全過(guò)程

    這篇文章主要介紹了SQL?Developer遷移第三方數(shù)據(jù)庫(kù)單表到Oracle的全過(guò)程,文章通過(guò)圖文結(jié)合的方式給大家講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-06-06
  • oracle中的一些常用函數(shù)及示例

    oracle中的一些常用函數(shù)及示例

    這篇文章主要給大家介紹了關(guān)于oracle中的一些常用函數(shù)及示例的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11

最新評(píng)論