當前位置:首頁 » 數據倉庫 » oracle資料庫插入語句
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle資料庫插入語句

發布時間: 2023-01-12 04:30:52

① oracle 插入語句

  1. 嵌套一個select語句在values這里,把你要插入的一整列語句用一根select語句查詢出來,再賦值給values裡面的值。

  2. 按位置對應一下,batch在段在倒數第二位,所以那個地方直接引用序列。

② 求寫一段向oracle資料庫插入新數據的sql語句

你說的「庫名」是指oracle里的資料庫名稱,還是指表所在的用戶?
登陸你的oracle用戶:

ID希望自增長,那麼建立一個sequence序列即可。
先建立序列:
create sequence seq_name -------創建序列名字為 seq_name,自己定義
minvalue 1 ----- 最小值為 1,可自定義
maxvalue 99999 ------- 最大值為 99999,可自定義
start with 1 ------ 開始值 1,可自定義
increment by 1 -----每次增長值 1,可自定義
cache 20; ----緩存大小 20,可自定義

這里用表名tablename 代替你說的DB,你替換就可以
插入:
insert into tablename(id, user, pass, sex, sn) values(seq_name.nextval,'user','pass','sex','sn' );
commit;

修改:
update tablename set sex='男' where user=『張三';
commit;
-------set後面要更新成什麼,和where後面的條件根據需要自己寫。最基本的SQL了。

刪除:
delete from tablename where user='張三';
commit;
-----------具體條件自己寫。

我覺得你還是看下最基本的SQL教材吧

③ oracle資料庫,主鍵設置為ID,插入語句時,如何自動生成ID並讓它順序增加呢

使用oracle資料庫中的關鍵字sequence來實現目的。

//創建mySeq

create sequence mySeq
start with 1
increment by 2
maxvalue 40
minvalue 1
cycle

//創建用戶表

create table USER
(
Id int,
CompName varchar2(20)
)

插入語句可以這樣寫:

insert into USER values(mySeq.nextVal,'AA')

這樣的話每次插入的ID就是自動遞增的

(3)oracle資料庫插入語句擴展閱讀:

sequence用法:

create sequence <序列名稱>

start with <起始數>

increment by <增長量>

[maxvalue 值]

[minvalue 值]

[cycle 當到達最大值的時候,將繼續從頭開始]

[Nocycle -- 一直累加,不循環]

[Cache ]

參考資料:網路-oraclesequence

④ Oracle中插入數據

前提:在做insert數據之前,如果是非生產環境,請將表的索引和約束去掉,待insert完成後再建索引和約束。

insert into tab1 select * from tab2; commit;

這是最基礎的insert語句,我們把tab2表中的數據insert到tab1表中。根據經驗,千萬級的數據可在1小時內完成。但是該方法產生的arch會非常快,需要關注歸檔的產生量,及時啟動備份軟體,避免arch目錄撐爆。

alter table tab1 nologging;

insert /*+ append */ into tab1 select * from tab2;

commit; alter table tab1 logging;

該方法會使得產生arch大大減少,並且在一定程度上提高時間,根據經驗,千萬級的數據可在45分鍾內完成。但是請注意,該方法適合單進程的串列方式,如果當有多個進程同時運行時,後發起的進程會有enqueue的等待。注意此方法千萬不能dataguard上用,不過要是在database已經force logging那也是沒有問題的。

insert into tab1 select /*+ parallel */ * from tab2; commit;

對於select之後的語句是全表掃描的情況,我們可以加parallel的hint來提高其並發,這里需要注意的是最大並發度受到初始化參數parallel_max_servers的限制,並發的進程可以通過v$px_session查看,或者ps -ef |grep ora_p查看。

alter session enable parallel dml;

insert /*+ parallel */ into tab1 select * from tab2; commit;