SQL是用於管理關聯性型資料庫的標準語言,其核心是查詢語句。本文為您介紹 SQL 查詢語句的核心文法概念。
SQL查詢語句
SELECT 語句用於從表中選取資料。SELECT語句是查詢文法的核心,所有進階查詢語法都是圍繞SELECT語句展開的。更多詳情請參見SELECT。
OpenSearch目前暫不支援擷取summary。更多詳情請參見FROM-Summary查詢。
WHERE語句用於有條件地從表中篩選合格資料。更多詳情請參見WHERE。
Group By用來對一個或者多個欄位彙總,以此算出相應的資料,比如最大值、最小值、平均值等。更多詳情請參見GROUP BY。
ORDER BY 語句用於對一個或者多個欄位進行排序。預設為升序(ASC)。由於排序效能較差,要求排序時必須加上LIMIT子句。更多詳情請參見ORDER BY。
UNION語句用來將多路相同schema的資料做合并。要求兩邊的欄位完全一致,包括欄位類型、欄位順序。更多詳情請參見UNION。
JOIN語句用於合并多個表的資料,擴充查詢維度。更多詳情請參見JOIN操作類型。
動態參數類似資料庫中的PrepareStatement。使用者可以在SQL中設定placeholder(?表示),同時傳遞placeholder對應的值,引擎內部會自動替換。動態參數主要用於提高Cache命中率,對於查詢模式固定的情境效能提升明顯。更多詳情請參見動態參數。
TVF(Table Value Function)在TuringSQL中用來表示一類可以對整張表進行操作的函數集合。其的輸入由一個或者若干個標量參數和一個SQL(可以理解為一張表)組成,與之對應的輸出是一張表。更多詳情請參見Table Value Function。
CTE (Common Table Expresssion), 我們可以通過CTE定義一個臨時(query生存期)的命名結果集,在query接下來的查詢語句(不局限於SELECT,但是我們目前只支援了SELECT)中就可以直接引用這個CTE,從而達到簡化查詢的目的。更多詳情請參見Common Table Expression簡介。
使用限制
目前不支援DDL及DML文法。
ORDER BY子句必須和LIMIT配對使用。
使用UNNEST子句查詢子表時,不支援SELECT *。
JOIN目前只支援在Searcher上執行,需要業務方保證資料分布。
UNION需要保證兩邊的欄位名稱、欄位類型、欄位數量均要一致。
數值分析索引不支援使用"="查詢,可以使用WHERE QUERY('consign_time', '[1, 10]')這樣的方式來查詢。