q表示式可以處理換行、單引號等特殊字元
update t_sys_res_config_sql t
set t.query_sql = q'(long string)'
where t.bm_class_id = 't_rc_com_internate_config';
update語句
可以對查詢結果進行update。
要求:(1)update只能更新from後面的第一張表
(2)連線條件:第一張表與後面表的主鍵連線。
(3)如果不是主鍵,需要新增提示bypass_ujvc
update (select /*+ bypass_ujvc*/
p.cuid, p.related_path_cuid, l.cuid path_cuid
from t_logic_port p, t_logic_link l
where p.cuid = l.related_orig_port_cuid)
set related_path_cuid = path_cuid;
技術原理
問題1:為什麼可以對select語句執行update和delete操作?
解答:因為對select語句進行update或delete操作時,資料庫在後台提供第一張表的rowid。資料庫根據rowid可以進行dml操作。
問題2:為什麼對select語句執行update和delete操作比一般的update和delete速度快?
解答:因為一般update是在執行時,首先對每行執行查詢語句,查詢出修改後的值,再去執行需要更新的值。
對select語句執行update時,先把執行結果先查出來,再根據rowid更新指定列的值,這樣速度當然比每次更新都查詢快。
當查詢中多次用到某一部分時,可以用oracle with語句建立乙個公共臨時表。因為子查詢在記憶體臨時表中,避免了重複解析,所以執行效率會提高不少。臨時表在一次查詢結束自動清除。
with
alias_name1 as (subquery1),
alias_name2 as (subquery2),
……
alias_namen as (subqueryn)
select col1,col2…… col3
from alias_name1,alias_name2……,alias_namen
幾種SQL語句的寫法
1.一張表中有使用者資訊表user user id,nickname 另外一張表聯絡人表contact user id,friend id 現在要找出聯絡人的資訊 1 selectu1.nicknameasmyselft,u2.nicknameasfriendfromcontact cinnerjo...
sql語句有幾種寫法
sql語句有幾種寫法 1 select from tablename order by rand limit 想要獲取的資料條數 2 select from table where id select floor max id rand from table order by id limit 想要...
查詢分頁的幾種Sql寫法
1.概述 在網頁中如果顯示的資料太多就會佔據過多的頁面,而且顯示速度也會很慢。為了控制每次在頁面上顯示資料的數量,就可以利用分頁來顯示資料。2.技術要點 select top pagesize from table where id not in select top prenum id from ...