oracle更新語法:
1.一般語法
update tab set col = .... [where ...] =後可以有子查詢,但是必須對於tab的每一列返回唯一一行與之對應,where是需要更新的表,部分更新必須加,否則相關子查詢的更新會把沒有匹配的更新為null,如
update tab a set a.col=(select b.col from b where a.id=b.id) where exists (select 1 from b where a.id=b.id) 類似地寫了多遍
2.改進語法merge
merge into tab
using (表|檢視|子查詢等) --子查詢需要加括號 on (條件)
when match then
do update
when no match then
do insert
insert語法和update語法有所不同,詳細參考文件,10g還支援update,insert的有條件更新和插入,支援update的delete where,支援只有update或insert的
不能修改using裡的關聯列,同樣,必須每一行有唯一與之對應的
上面兩種語法如果找不到唯一對應的,需要改進語句,比如加rownum=1
3.update inline view的用法
update (select ...........關聯查詢) set 目標=源
如 update(select a.name,b.name from a,b where a.id=b.id) set a.name=b.name;
需要unique建保證唯一對應,比如上面的必須要b.id有唯一鍵,也就是preserved key,比如唯一索引什麼的都可以,11g之前可以用hint: bypass_ujvc,這樣不需要唯一鍵,但是可能有問題,一對多會更新多次,11g這個hint失效
delete (select ....) 也可以,有很多要求,可以看sql文件,insert (select ...)限制更多
第3種方法來源於可更新的檢視
oracle更新基本有3種sql寫法,後面兩種往往優化中會使用到,特別第一種的更新關聯子查詢中源表不走索引,那麼更新很多,相當於 nested loop,肯定慢,而且還有個where過濾,多次訪問源表
【轉載】oracle更新語法
相關文章
- oracle partition by 語法Oracle
- pgsql 連表更新語法SQL
- MarkDown語法教程(轉)
- js日期轉換工具類(仿oracle to_char,to_date等語法)JSOracle
- 轉載:關於oracle無法啟動儲存,記錄一下Oracle
- MYSQL資料插入和更新的語法MySql
- Python語法的轉義字元Python字元
- Oracle中 Update和insert結合語法Oracle
- oracle Forms Builder常用函式 (轉載)OracleORMUI函式
- 被oracle搞死的部分語句(持續更新中)Oracle
- Oracle 操作表結構基本語法及示例Oracle
- [轉載] Oracle:start with...connect by子句的用法Oracle
- oracle語法相容--如何透過with recursive語法來實現oracle的分層查詢Oracle
- Oracle行轉列、列轉行的Sql語句總結OracleSQL
- 淺談Oracle 主外來鍵刪除語法格式Oracle
- Swift 5.3 又更新了什麼新奇爽快的語法?Swift
- JavaScript語法中將json轉成陣列JavaScriptJSON陣列
- 【基礎語法】short、int、long轉為byte
- PowerDesigner連線Oracle逆向生成資料模型(轉載)Oracle模型
- Cadence物理庫 LEF 檔案語法學習【持續更新】
- Oracle vs PostgreSQL Develop(25) - plsql vs plpgsql(語法嚴謹性)OracleSQLdev
- Fish Speech 更新V1.5:領先的多語言文字轉語音模型模型
- Oracle RAC更新補丁Oracle
- 有效解決Android SDK Manager無法更新下載的方法Android
- ORACLE中日期和時間函式彙總(轉載)Oracle函式
- Mac Sublime Text 載入 Vue 語法高亮外掛MacVue
- ORACLE TEXT(轉)Oracle
- ORACLE EVENTS(轉)Oracle
- Oracle Partitioning(轉)Oracle
- ORACLE DSI(轉)Oracle
- Oracle 轉MySqlOracleMySql
- oracle學習筆記(十五) PL/SQL語法結構以及使用Oracle筆記SQL
- 搜狗輸入法語音轉文字型驗報告
- 英語語法
- 6. Oracle開發和應用—6.4. PL/SQL語法—6.4.1. 語句塊OracleSQL
- 【轉載】C 語言有什麼奇技淫巧
- oracle批量新增更新資料Oracle
- Oracle的OPatch補丁更新Oracle
- Oracle更新Opatch故障處理Oracle