|
|關聯式資料庫|Index|Key|資料正規化|SQL (2)|SQL (3)|SQL (4)|SQL (5)| |
|
資料庫簡介 |
|
SQL:認識 SQL
|
何謂 SQL |
|
SQL 是「結構化查詢語言」(Structured Query Language)的簡稱,讀作「Ess Que
Ell」或「sequel」。SQL 最初是由 IBM 的研究中心在 1970 年代初期所開發的,是專門用於關連式資料庫的一種查詢語言。利用
SQL 可以用來定義資料庫結構、建立表格、指定欄位型態與長度,也能新增、異動或查詢資料,它已經成為關聯式資料庫的標準語言。 |
|
SQL 的標準化作業,主要是由 ANSI(美國國家標準學會)與 ISO(國際標準組織)這兩個組織所推動的。最初是在 1986 年由 ANSI
制定其標準化規格,隨後在 1992
年時再推出更新的版本,就是所謂的「SQL-92」、「SQL/92」或「SQL2」。目前,新一代的規格仍在持續發展中,即「SQL-99」規格。 |
|
目前市面上的資料庫產品幾乎都以支援 SQL-92 為主,但卻沒有任何一家支援完整的
SQL-92。它們都有少部份的功能不支援,但在某些方面的支援卻比 SQL-92 來得多。例如 IBM 的 DB2 不支援 SQL-92
所有的完整性法則,但在 VIEW 更新法則的支援上,卻比 SQL-92 多。像這些由軟體商獨自擴充的 SQL 是不具相容性的,如:Oracle
的 PL/SQL、Microsoft SQL Server 的 Transact-SQL。 |
SQL 的分類 |
|
1. 資料定義語言(Data Definition Language,DDL) |
|
可以用來建立、更改或刪除 table、schema、domain、index 與 view 。主要指令有三:CREATE、ALTER 與 DROP。 |
|
2. 資料操作語言(Data Manipulation Language,DML) |
|
DML 係用來操作資料。主要指令有四:SELECT、INSERT、UPDATE 和 DELETE。 |
|
3. 資料控制語言(Data Control Language,DCL) |
|
DCL 提供資料庫的安全性。主要指令有四:COMMIT、ROLLBACK、GRANT 和 REVOKE。 |
MySQL 的命名法則 |
|
在 MySQL 裡,database, table, index, column 與 alias 都依循以下的命名原則: |
|
Identifier |
Max length |
Allowed characters |
|
Database |
64 |
除了「/」、「\」與「.」以外的其它字元 |
|
Table |
64 |
除了「/」與「.」以外的其它字元 |
|
Column |
64 |
所有字元 |
|
Alias |
255 |
所有字元 |
|
|
此外,您也不能使用 ASCII(0) 或 ASCII(255) 字元為上述任一 identifier 命名。 |
|
如果 identifier 是一個限制詞或包含特殊字符,使用時必須用「`」來引用它,例如: |
|
SELECT * FROM `select` WHERE `select`.id > 100 |
|
MySQL 對關鍵字與函數名稱是不分大小寫的,SELECT、select 與 sElEcT 的作用均相同。此外,index 與 column 也是不分大小寫。 |
|
Alias 則是大小寫分明的。即使以相同的字母來為 alias 命名時,大小寫相異便會被視為不同的 alias。 |
|
至於 database 與 table 的名稱就要視情況而定了。在 Windows 作業系統下,不區分大小寫;在 UNIX 系列的作業系統下,則會區分大小寫。 |
|
|
|關聯式資料庫|Index|Key|資料正規化|SQL (2)|SQL (3)|SQL (4)|SQL (5)| |