Atitit.mysql oracle with as模式暫存資料表模式 CTE 語句的使用,減少子查詢的結構性 mssql sql server..,atitit.mysqlcte
Atitit.mysql oracle with as模式暫存資料表模式 CTE 語句的使用,減少子查詢的結構性 mssql sql server..
1. with ... as (...) 在mysql中應該如何表示1
2. 子查詢和查詢嵌套主要是便於可讀性提升上, 2
3. MYSQL中的解決之道::暫存資料表。 2
4. Seo黑頭關鍵字替換連結的統計樣品 2
4.1. //---------查詢com網站的數量 2
4.2. //----------------------查詢net網站的數量 2
4.3. ---------------聯合統計 3
5. with as + materialize是一種強制進行子查詢先執行的好辦法。 3
1. with ... as (...) 在mysql中應該如何表示
SQL語句是關係型資料庫最直接也是最普遍的資料訪問、操作方式。應該說,RDBMS的成功因素之中,SQL語言標準的推廣有不可磨滅的功勞。Oracle、SQL Server和DB2等主流資料庫都是在標準SQL的基礎上,加以個人化拓展,實現高效的資料庫應用。
with as是Oracle SQL語系裡面經常使用到的一種語句結構。特別是在一些資料倉儲挖掘系統中,SQL語句結構和嵌套結構是很複雜的。with as可以協助我們簡化語句結構,提高語句可讀性,另外還可以提升語句執行計畫控制性。
Oracle 9i 新增WITH文法,可以將查詢中的子查詢命名,放到SELECT語句的最前面。
作者:: 老哇的爪子 Attilax 艾龍, EMAIL:1466519819@qq.com
轉載請註明來源: http://blog.csdn.net/attilax
Db2,mssql,oracle 都支援with ... as 的使用..
2. 子查詢和查詢嵌套主要是便於可讀性提升上,
絕大多數的子查詢和嵌套,都可以通過一系列的串連來完成。而資料庫系統是擅長串連操作的
3. MYSQL中的解決之道::暫存資料表。
可以在MYSQL官方手冊中查閱一下MYSQL暫存資料表的建立使用。
4. Seo黑頭關鍵字替換連結的統計樣品
4.1. //---------查詢com網站的數量
DROP TEMPORARY TABLE
IF EXISTS tmp_table;
CREATE TEMPORARY TABLE tmp_table SELECT
SUBSTR(url, 1, LOCATE('.com', url) + 3) AS domain
FROM
link_big
WHERE
LOCATE('.com', url) > 0;
4.2. //----------------------查詢net網站的數量
DROP TEMPORARY TABLE
IF EXISTS tmp_table2;
CREATE TEMPORARY TABLE tmp_table2
SELECT
SUBSTR(url, 1, LOCATE('.net', url) + 3) AS domain
FROM
link_big
WHERE
LOCATE('.net', url) > 0;
4.3. ---------------聯合統計
SELECT
count(*),
domain
FROM
tmp_table
GROUP BY
domain
UNION
SELECT
count(*),
domain
FROM
tmp_table2
GROUP BY
domain
5. with as + materialize是一種強制進行子查詢先執行的好辦法。
綜合上面的討論,我們可以得到with as應用的條件和好處。總體上看,with as可以帶來兩方面的好處。第一是語句清晰度上,將原有的複雜子查詢內容拆解為若干語句塊,提高了可讀性。第二是對於自動暫存資料表,可以將子查詢資料先檢索出來,在記憶體中進行組織串連。
最後我們想討論一下對於subquery unnested特性。大多數情況下,我們認為Oracle這個特性是可以產生更好地執行計畫的。但是,在實踐中我們也的確發現過很多這樣的情境:子查詢速度很快、資料量也不大,但是串連之後速度變慢,結果是發現執行計畫中子查詢被開啟。
預設情況下,Oracle在估算多條件陳述式結果集數量的時候,是有“計算偏小”的特性的。也就是估算的結果集數量要小於實際數量,這個是由於預設統計量沒有考慮列相關性的原因。所以,大部分查詢展開都是被通過的。
如果出現這樣的情況,with as + materialize是一種強制進行子查詢先執行的好辦法。
參考
mysql 建立與刪除暫存資料表sql語句-mysql教程-資料庫-壹聚教程網.htm
從五個SQL看with as使用-realkid4-ITPUB部落格.htm