BigQuery 中的 SQL 簡介
BigQuery 中的 GoogleSQL 可讓您分析大量資料集、管理資料庫物件,以及控管整個資料倉儲的存取權。支援的 SQL 方言和陳述式類型可讓您有效建構複雜查詢,並使用 BigQuery 的全套資料操縱和管理功能。
GoogleSQL 是符合 ANSI 標準的結構化查詢語言 (SQL),支援下列類型的陳述式:
- 查詢陳述式也稱為資料查詢語言 (DQL) 陳述式,是在 BigQuery 中分析資料的主要方法。這類運算子會掃描一或多個資料表或運算式,並傳回運算結果資料列。查詢陳述式可包含 pipe 語法。
- 程序語言陳述式是 GoogleSQL 的程序擴充功能,可讓您在單一要求中執行多個 SQL 陳述式。程序陳述式可使用變數和控制流程陳述式,且可能產生副作用。
資料定義語言 (DDL) 陳述式可讓您建立及修改下列物件:
- 資料集
- 資料表,包括結構定義和資料欄類型
- 資料表本機副本和快照
- 瀏覽次數
- 函式
- 索引
- 承諾使用容量、預留項目和指派作業
- 資料列層級存取政策
資料操縱語言 (DML) 陳述式可讓您在 BigQuery 資料表中更新、插入及刪除資料。
資料控管語言 (DCL) 陳述式可讓您控管 BigQuery 系統資源,例如存取權和容量。
交易控制語言 (TCL) 陳述式可讓您管理資料修改交易。
BigQuery SQL 方言
BigQuery 支援 GoogleSQL 語法,建議所有新專案都使用這種語法。此外,我們也提供舊版 SQL 方言,但有一些限制。建議您從舊版 SQL 遷移至 GoogleSQL。
變更為使用非預設方言
您用來查詢資料的介面會決定預設的查詢方言。如要切換至其他方言,請執行下列操作:
控制台
Cloud de Confiance 控制台的預設方言為 GoogleSQL。如要將方言變更為舊版 SQL,請按照下列步驟操作:
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在查詢編輯器中,依序點選「編輯」>「查詢設定」。
在「Advanced options」(進階選項) 區段中,按一下「SQL dialect」(SQL 方言) 的「Legacy」(舊版),然後點選「Save」(儲存)。這會為這項查詢設定舊版 SQL 選項。點選「add_box SQL Query」(add_box SQL 查詢)add_box 建立新查詢時,必須再次選取舊版 SQL 選項。
SQL
預設 SQL 方言為 GoogleSQL。您可以在查詢中加入 #standardSQL 或 #legacySQL 前置字元,設定 SQL 方言。這些查詢前置字元不區分大小寫,必須位於查詢之前,且必須以換行字元與查詢分隔。以下範例將方言設為舊版 SQL,並查詢 natality 資料集:
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
#legacySQL SELECT weight_pounds, state, year, gestation_weeks FROM [bigquery-public-data:samples.natality] ORDER BY weight_pounds DESC LIMIT 10;
按一下「 執行」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
bq
bq 指令列工具中的預設查詢方言為舊版 SQL。如要切換至 GoogleSQL 方言,請在指令列陳述式中加入 --use_legacy_sql=false 或 --nouse_legacy_sql 旗標。
切換至 GoogleSQL 方言
如要在查詢工作中使用 GoogleSQL 語法,請將 use_legacy_sql 參數設為 false。
bq query \
--use_legacy_sql=false \
'SELECT
word
FROM
`bigquery-public-data.samples.shakespeare`'
將 GoogleSQL 設為預設方言
您可以編輯指令列工具的設定檔 .bigqueryrc,將 GoogleSQL 設為指令列工具和互動式殼層的預設方言。
如要進一步瞭解 .bigqueryrc,請參閱設定指令專屬旗標預設值的相關說明。
如要在 .bigqueryrc 中設定 --use_legacy_sql=false,請執行下列操作:
- 在文字編輯器中開啟
.bigqueryrc。根據預設,.bigqueryrc應位於您的使用者目錄中,例如$HOME/.bigqueryrc。 在檔案中加入以下文字。這個範例會將 GoogleSQL 設為查詢和
mk指令 (建立檢視表時使用) 的預設語法。如果您已為query或mk指令旗標設定了預設值,則不必重新加入[query]或[mk]。[query] --use_legacy_sql=false [mk] --use_legacy_sql=false儲存並關閉檔案。
如果您使用的是互動式殼層,則必須結束並重新啟動,才能套用變更。
如要瞭解可用的指令列旗標,請參閱 bq 指令列工具參考資料。
C#
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 C# 設定操作說明進行操作。詳情請參閱 BigQuery C# API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
切換至舊版 SQL 方言
如要在查詢工作中使用舊版 SQL 語法,請將 UseLegacySql 參數設為 true。
Go
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Go 設定操作說明進行操作。詳情請參閱 BigQuery Go API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
切換至舊版 SQL 方言
如要在查詢工作中使用舊版 SQL 語法,請將查詢設定中的 UseLegacySQL 屬性設為 true。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Java 設定操作說明進行操作。詳情請參閱 BigQuery Java API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
切換至舊版 SQL 方言
如要在查詢工作中使用舊版 SQL 語法,請將 useLegacySql 參數設為 true。
Node.js
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Node.js 設定操作說明進行操作。詳情請參閱 BigQuery Node.js API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
切換至舊版 SQL 方言
如要在查詢工作中使用舊版 SQL 語法,請將 useLegacySql 參數設為 true。
PHP
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 PHP 設定操作說明進行操作。詳情請參閱 BigQuery PHP API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
切換至舊版 SQL 方言
如要在查詢工作中使用舊版 SQL 語法,請將 useLegacySql 參數設為 true。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Python 設定操作說明進行操作。詳情請參閱 BigQuery Python API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
切換至舊版 SQL 方言
如要在查詢工作中使用舊版 SQL 語法,請將 use_legacy_sql 參數設為 True。
Ruby
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Ruby 設定操作說明進行操作。詳情請參閱 BigQuery Ruby API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
切換至舊版 SQL 方言
如要在查詢工作中使用舊版 SQL 語法,請在查詢中傳遞 legacy_sql: true 選項。
排解查詢相關問題
如要瞭解如何解決執行查詢時發生的問題,請參閱「排解查詢問題」。
後續步驟
- 如要瞭解如何在 BigQuery 中執行 SQL 查詢,請參閱「執行互動式和批次查詢工作」。
- 如要進一步瞭解查詢最佳化的一般資訊,請參閱「查詢效能最佳化簡介」。
- 如要瞭解在 BigQuery 中查詢資料時使用的 GoogleSQL 語法,請參閱「查詢語法」。
- 如要進一步瞭解如何在查詢中使用管道語法,請參閱「管道語法」。