guavacache原始碼閱讀筆記
資料庫表
一個數據庫通常包含一個或多個表。每個表由一個名字標識(例如“客戶”或者“訂單”)。表包含帶有資料的記錄(行)。
下面的例子是一個名為 "Persons" 的表:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
上面的表包含三條記錄(每一條對應一個人)和五個列(Id、姓、名、地址和城市)。
SQL 語句
您需要在資料庫上執行的大部分工作都由 SQL 語句完成。
下面的語句從表中選取 LastName 列的資料:
SELECT LastName FROM Persons
結果集類似這樣:
LastName |
---|
Adams |
Bush |
Carter |
在本教程中,我們將為您講解各種不同的 SQL 語句。
重要事項
一定要記住,SQL 對大小寫不敏感!
SQL 語句後面的分號?
某些資料庫系統要求在每條 SQL 命令的末端使用分號。在我們的教程中不使用分號。
分號是在資料庫系統中分隔每條 SQL 語句的標準方法,這樣就可以在對伺服器的相同請求中執行一條以上的語句。
如果您使用的是 MS Access 和 SQL Server 2000,則不必在每條 SQL 語句之後使用分號,不過某些資料庫軟體要求必須使用分號。
SQL DML 和 DDL
可以把 SQL 分為兩個部分:資料操作語言 (DML) 和 資料定義語言 (DDL)。SQL (結構化查詢語言)是用於執行查詢的語法。但是 SQL 語言也包含用於更新、插入和刪除記錄的語法。
查詢和更新指令構成了 SQL 的 DML 部分:
- SELECT- 從資料庫表中獲取資料
- UPDATE- 更新資料庫表中的資料
- DELETE- 從資料庫表中刪除資料
- INSERT INTO- 向資料庫表中插入資料
SQL 的資料定義語言 (DDL) 部分使我們有能力建立或刪除表格。我們也可以定義索引(鍵),規定表之間的連結,以及施加表間的約束。
SQL 中最重要的 DDL 語句:
- CREATE DATABASE- 建立新資料庫
- ALTER DATABASE- 修改資料庫
- CREATE TABLE- 建立新表
- ALTER TABLE- 變更(改變)資料庫表
- DROP TABLE- 刪除表
- CREATE INDEX- 建立索引(搜尋鍵)
- DROP INDEX- 刪除索引
-
本章講解 SELECT 和 SELECT * 語句。
SQL SELECT 語句
SELECT 語句用於從表中選取資料。
結果被儲存在一個結果表中(稱為結果集)。
SQL SELECT 語法
SELECT 列名稱 FROM 表名稱
以及:
SELECT * FROM 表名稱
註釋:SQL 語句對大小寫不敏感。SELECT 等效於 select。
SQL SELECT 例項
如需獲取名為 "LastName" 和 "FirstName" 的列的內容(從名為 "Persons" 的資料庫表),請使用類似這樣的 SELECT 語句:
SELECT LastName,FirstName FROM Persons
"Persons" 表:
Id LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3 Carter Thomas Changan Street Beijing 結果:
LastName FirstName Adams John Bush George Carter Thomas SQL SELECT * 例項
現在我們希望從 "Persons" 表中選取所有的列。
請使用符號 * 取代列的名稱,就像這樣:
SELECT
*
FROM Persons提示:星號(*)是選取所有列的快捷方式。
結果:
Id LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3 Carter Thomas Changan Street Beijing 在結果集(result-set)中導航
由 SQL 查詢程式獲得的結果被存放在一個結果集中。大多數資料庫軟體系統都允許使用程式設計函式在結果集中進行導航,比如:Move-To-First-Record、Get-Record-Content、Move-To-Next-Record 等等。