PHP 入門與 MySQL 應用
書號:F8540
定價:550元
凱文瑞克 著
我要線上購買 | |
本期書摘:SQL 介紹與建立 MySQL 資料庫【上】
本文摘錄自旗標 F8540「PHP 入門與 MySQL
應用」一書
什麼是 SQL?
SQL是一個專門用來處理關聯式資料庫的標
準程式語言。它誕生於1970年代後半, 促使S
QL問世的功臣是位於加州聖荷西的IBM實
驗室 (IBM Laboratory) 於 1974 年發表的SEQU
EL及1976 年發表的SEQUEL 2, 後來因為 SE
QUEL2 已經被註冊使用, 所以改為SQL。SQ
L就是Structured Query Languoge(結構化查詢
語言) 的縮寫。它讀成「S-Q-L」或「see-kwul
」。
SQL 的標準化作業, 是由 ANSI (美國國家標準
學會) 與 ISO (國際標準組織) 這2個標準化組
織所推動的。它最初的標準化規格, 是在 1986
年由 ANSI 所制定, 並緊接著在 1992年時AN
SI 與 ISO 分別制定的新規格, 這項規格一般為
SQL-92 規格, 通稱 SQL2。在目前, ANSI 與IS
O 也持續地在研討新一代的規格, 這項規格一
般稱為 SQL-99 規格, 通稱 SQL3。
現在的 SQL 規格便是上述的 SQL-92 (SQL2)。
儘管 SQL的標準化不斷地進行著, 但在另一方
面, 資料庫的軟體商卻也續地在擴充自已獨特
的功能。事實上目前大多數的資料庫軟體商,
都會在其 RDBMS 產品的SQL 中, 加上它們獨
特的功能, 以區別其產品之差異。因此各個產
品中實際使用的是不具相容性的擴充 SQL。
包括了 Oracle 所使用的PL/SQL、以及微軟SQ
L Server中所使用的Transact-SQL, MySQL也是
其中的一個個別產品。而這些 SQL 中由軟體
商獨自擴充的部份都是不具有相容性的。
SQL 是一種關聯式資料庫的專屬語言, 也就是
說它只能用來處理資料庫。SQL 被稱為「非程
序語言」。程序語言(procedural language)會將
多項命令彙整起來, 然後按照處理的流程依序
撰寫。非程序語言(nonprocedural language)則是
單獨地撰寫一個命令。一個命令便擁有一個完
整的意義, 可用來處理一項工作。
雖然 SQL是一種功能強大的資料庫語言, 但是
它終究不是一般的程式語言, 所以我們無法僅
利用 SQL 就來實現其他各種程式語言所能執
行的架構。在實際的使用上, 一般的處理還是
會交由傳統的程式語言來處理, 而 SQL之中會
內建有可讓其它程式語言將它叫出來的函數介
面。當碰上需要執行資料庫方面的處理時, 一
般程式語言便可利用這個函數介面, 來呼叫SQ
L 執行處理。
在 SQL中已事先定義好一些在語法上具有特
殊意義, 同時其用法也已事先決定好的單字,
稱為關鍵字(keyword)。由於這些關鍵字已被
SQL 所使用, 所以使用者『不能』再將它們
設定為資料表、欄位的名稱。若將關鍵字與
其它單字組合起來使用的話, 便可構成一個
具有意義的單位。這種單位稱為子句(clause)
。 將若干個子句組合在一起, 將可建立出一
個具有完整意義的命令。這種命令便稱為敘
述 (statement)。
特別注意敘述的末端要有一個「;」,敘述結
束的處理方式, 在各個 RDBMS 產品中會略有
差異。例如在Microsoft SQL Server和Access中
, 即使沒有加上分號也無妨。特別是在Micros
oft SQL Server中, 一般都不加上分號的。因此,
雖通常會在敘述的末端加上分號, 但碰到Micr
osoft SQL Server的輸入範例時, 有時便不會再
加上分號了。但是在 MySQL 的 Monitor中就
必須加上分號,否則會出現錯誤訊息。
在程式碼中附加註解 (comment) , 將可高程式
的易讀性。要附加註解時, 必須先寫上「--」(
2 個負號), 然後再寫上註解的內容。從「--」
之後, 一直到該列結束處為止, 全都會被視為
註解。絕大多數的 RDBMS 產品在註解方面,
除了支援「--」之外, 也支援了 C 語言中所慣
用的「/*」與「*/」。由「/*」與「*/」所包
夾的部份中, 不管有多少列, 它們全都會被視
為是註解, 也可以使用「 # 」標記註解, 但是
少用。
SQL 的關鍵字是不區分大小寫的。SQL 有中
單字與單字間的空白數, 也是不具任何意義的
, 換句話說, 您也可以利用Tab鍵。但也有部
份的 RDBMS 產品會區分資料表名稱和欄位
名稱的大小寫。
字串常數 (string constant) 必須使用「'」(單引
號) 來前後包夾字串。字串本身即包含有單引
號時, 可連續鍵入 2 個單引號「''」。Access 中
當要寫上字串常數時, 一般都不是利用「'」(
單引號) , 而是利用「''」(雙引號)。數值常數
不需要使用單引號, 只要直接寫上數值便可。
SQL 語言的功能分類
下面先將 SQL 重要命令予以分類,並進行簡
單的介紹,這裡介紹的重要命令並不限定於
哪一種的 SQL 產品, 但是大部分的產品都支
援以下所介紹的命令。
[資料定義語言 (DDL)]
SQL中屬於資料定義語言的命令,共有下列
這幾項:
□ CREATE:建立資料庫或資料表
□ ALTER:變更資料庫或資料表的結構
□ DROP:刪除資料庫或資料表
[資料操作語言 (DML)]
SQL中屬於資料操作語言的命令,共有下列這
幾項:
□ SELECT:搜尋資料
□ INSERT:新增資料
□ UPDATE:更新資料
□ DELETE:刪除資料
[資料控制語言 (DCL)]
SQL中屬於資料控制語言的命令,共有下列這
幾項:
□ GRANT:授予使用者操作資料的權限
□ REVOKE:撤回使用者操作資料的權限
□ COMMIT:確定資料的變更
□ ROLLBACK:取消資料的變更 (MySQL 在
4.0.x 的新版本支援此功能)
!!! 某些 RDBMS 產品, 是將資料控制語言歸類
在資料定義語言之中來進行管理的。
--- 未完待續
我要買這本書
| |
.....................︽
.....................
|
|
|