什麼是 SQL?

結構式查詢語言 (SQL) 是一種用於在關聯式資料庫中儲存和處理資訊的程式設計語言。關聯式資料庫以表格形式儲存資訊,列和欄代表不同的資料屬性和資料值之間的各種關係。您可以使用 SQL 陳述式來儲存、更新、移除、搜尋和擷取資料庫中的資訊。您也可以使用 SQL 來維護和優化資料庫效能。

為什麼 SQL 很重要?

結構式查詢語言 (SQL) 是一種常用的查詢語言,常用於所有類型的應用程式。資料分析師和開發人員學習和使用 SQL,因為它可與不同的程式設計語言很好地整合。例如,他們可以使用 Java 程式設計語言內嵌 SQL 查詢,以便使用 Oracle 或 MS SQL Server 等主要 SQL 資料庫系統建置高效能的資料處理應用程式。SQL 也相當容易學習,因為它在其陳述式中使用常見的英文關鍵字

SQL 的歷史

SQL 是在 20 世紀 70 年代基於關聯式資料模型發明的。它最初被稱為結構式英文查詢語言 (SEQUEL)。該術語後來縮短為 SQL。Oracle,以前稱為關聯式軟體,成為第一個提供商業 SQL 關聯式資料庫管理系統的供應商。

SQL 系統有哪些組成部分?

關聯式資料庫管理系統使用結構式查詢語言 (SQL) 來儲存和管理資料。系統儲存多個彼此關聯的資料庫表格。MS SQL Server、MySQL 或 MS Access 均為關聯式資料庫管理系統範例。以下是此系統的組成部分。 

SQL 資料表

SQL 資料表是關聯式資料庫的基本元素。SQL 資料庫表由列和欄組成。資料庫工程師在多個資料庫表格之間建立關係,以優化資料儲存空間。

例如,資料庫工程師為商店中的產品建立 SQL 資料表: 

產品 ID

產品名稱

顏色 ID

0001

床墊

顏色 1

0002

枕頭

顏色 2

然後,資料庫工程師會將產品資料表連結至含有顏色 ID:的顏色資料表。

顏色 ID

顏色名稱

顏色 1

藍色

顏色 2

紅色

SQL 陳述式

SQL 陳述式或 SQL 查詢是關聯式資料庫管理系統理解的有效指示。軟體開發人員使用不同的 SQL 語言元素來建置 SQL 陳述式。SQL 語言元素是構成正確 SQL 陳述式的組件,例如識別符、變數和搜尋條件。

例如,下列 SQL 陳述式會使用 SQL INSERT 命令,將價格為 499 美元Mattress Brand A 儲存到名為 Mattress_table 且具有 brand_namecost: 欄名的資料表中

INSERT INTO Mattress_table (brand_name, cost)

VALUES(‘A’,’499’);

預存程序

預存程序是關聯式資料庫中儲存的一個或多個 SQL 陳述式的集合。軟體開發人員使用預存程序來提高效率和效能。例如,他們可以建立預存程序來更新銷售資料表,而不是在不同的應用程式中撰寫相同的 SQL 陳述式。 

SQL 如何工作?

結構式查詢語言 (SQL) 實作涉及處理資料庫查詢並傳回結果的伺服器機器。SQL 過程經歷了幾個軟體組件,包括以下內容。 

剖析器

剖析器首先對 SQL 陳述式中的一些詞語進行標記,或用特殊符號替換。然後,它會檢查陳述式的下列內容:

正確性

剖析器會驗證 SQL 陳述式是否符合 SQL 語義或規則,以確保查詢陳述式的正確性。例如,剖析器會檢查 SQL 命令是否以分號結尾。如果缺少分號,剖析器會傳回錯誤。

授權

剖析器也會驗證執行查詢的使用者是否具有操作相應資料的必要授權。例如,只有管理員使用者可能有權刪除資料。 

關聯式引擎

關聯式引擎 (或查詢處理器) 會建立以最有效的方式擷取、寫入或更新對應資料的計劃。例如,它會檢查類似的查詢,重複使用先前的資料操作方法,或建立新的查詢。它會以稱為位元組碼的 SQL 陳述式的中間層級表示法寫入計劃。關聯式資料庫使用位元組碼高效執行資料庫搜尋和修改。 

儲存引擎

儲存引擎或資料庫引擎是處理位元組碼並執行預期 SQL 陳述式的軟體組件。它讀取資料庫中的資料並儲存在實體磁盤儲存空間。完成後,儲存引擎會將結果傳回給請求的應用程式。

什麼是 SQL 命令?

結構式查詢語言 (SQL) 命令是特定的關鍵字或 SQL 陳述式,開發人員可用來操作儲存在關聯式資料庫中的資料。您可以按如下方式對 SQL 命令進行分類。

資料定義语言

資料定義語言 (DDL) 是指可設計資料庫結構的 SQL 命令。資料庫工程師會根據業務需求使用 DDL 來建立和修改資料庫物件。例如,資料庫工程師使用 CREATE 命令來建立資料庫物件,例如資料表、檢視和索引。

資料查詢語言

資料查詢語言 (DQL) 由用於擷取儲存在關聯式資料庫中之資料的指令組成。軟體應用程式使用 SELECT 命令來篩選並傳回 SQL 資料表中的特定結果。 

資料操作语言

資料操作語言 (DML) 陳述式會撰寫新資訊或修改關聯式資料庫中的現有記錄。例如,應用程序使用 INSERT 命令在資料庫中儲存新記錄。

資料控制语言

資料庫管理員使用資料控制語言 (DCL) 來管理或授權其他使用者的資料庫存取權。例如,他們可以使用 GRANT 命令來允許某些應用程式操作一個或多個資料表。 

事務控制語言

關聯式引擎會使用事務控制語言 (TCL) 自動進行資料庫變更。例如,資料庫會使用 ROLLBACK 命令來復原錯誤事務。 

什麼是 SQL 標準?

SQL 標準是一組正式定義的結構式查詢語言 (SQL) 的準則。美國國家標準協會 (ANSI) 和國際標準組織 (ISO) 在 1986 年採用了 SQL 標準。軟體供應商使用 ANSI SQL 標準為開發人員構建 SQL 資料庫軟體。

什麼是 SQL 隱碼攻擊?

SQL 隱碼攻擊是一種網路攻擊,涉及使用 SQL 查詢欺騙資料庫。駭客使用 SQL 隱碼攻擊來擷取、修改或損毀 SQL 資料庫中的資料。例如,他們可能會在提交表單中填寫 SQL 查詢而不是人員的姓名,以執行 SQL 隱碼攻擊。

什麼是 MySQL?

MySQL 是 Oracle 提供的一個開放原始碼關聯式資料庫管理系統。開發人員無需支付許可費即可下載和使用 MySQL。他們可以在不同的作業系統或雲端伺服器上安裝 MySQL。MySQL 是一個流行的 Web 應用程式資料庫系統。 

SQL 與MySQL

結構式查詢語言 (SQL) 是建立和操作資料庫的標準語言。MySQL 是使用 SQL 查詢的關聯式資料庫程式。雖然 SQL 命令由國際標準定義,但 MySQL 軟體會持續進行升級和改進。

什麼是 NoSQL?

NoSQL 指的是不使用資料表來儲存資料的非關聯式資料庫。開發人員將資訊儲存在不同類型的 NoSQL 資料庫中,包括圖形、文件和鍵值。NoSQL 資料庫在現代應用程式中很受歡迎,因為它們具有水平可擴展性。水平擴展意味著透過新增更多執行 NoSQL 軟體的電腦來提高處理能力。

SQL 與NoSQL

結構式查詢語言 (SQL) 提供了統一的資料操作語言,但 NoSQL 實作依賴於不同的技術。開發人員將 SQL 用於事務型和分析應用程式,而 NoSQL 則適用於響應性、使用量大的應用程式。 

什麼是 SQL 伺服器?

SQL Server 是 Microsoft 的關聯式資料庫管理系統的正式名稱,該系統使用 SQL 操作資料。MS SQL Server 有多個版本,每個版本都是針對特定的工作負載和需求而設計。

AWS 如何支援 SQL?

Microsoft SQL Server on AWS 允許開發人員在 AWS 上執行 Microsoft SQL 工作負載。SQL 資料庫系統利用可擴展的 AWS 運算資源,具有更佳效能。透過在 AWS 上執行 MS SQL,公司可以獲得更高的服務可用性,因為 AWS 在 24 個區域擁有最廣泛的全球基礎設施。SQL Server on AWS 可與 230 多種安全性、合規和管理服務整合,以保護您的資料免受外部威脅。AWS 支援 SQL 的一些其他方式包括:

立即註冊 AWS 帳戶,開始使用 SQL Server on AWS。

AWS SQL 後續步驟

查看額外的產品相關資源
查看有關開發人員工具的免費培訓 
註冊免費帳戶

立即存取 AWS 免費方案。 

註冊 
開始在主控台進行建置

開始在 AWS 管理主控台進行建置。

登入