幾種使用sql寫法

2021-07-10 21:31:57 字數 1183 閱讀 4660

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 ...