本文將介紹數據庫定義語言(DDL)用于創建數據庫和表格以及修改表格的指令。
當你使用這些指令時一定要小心——它很容易刪去你的數據庫中的主要結構令您丟失數據。所以,在您開始修改數據庫之前,您需要知道數據庫是什么。
數據庫之間的差異
本文中的樣品查詢系統遵循SQL92 ISO標準。并不是所有的數據庫都遵循該標準,有些數據庫做了改進,這會產生不可預料的結果。
創建數據庫
為了創建表格,你首先需要需要創建一個可以容納表格的數據庫。SQL用于創建數據庫的基本語句是:
| 以下是引用片段: CREATE DATABASE dbname; |
你的數據庫用戶必須有建立數據庫的適當權限。如果與你有關的用戶不能發出用于創建新數據庫的命令,要求數據庫管理員為你建立數據庫,你也作為管理員登錄然后建立數據庫并設置權限。
舉個例子,用CREATE指令為一個應用程序建立一個數據庫用于顯示一個目錄:
| 以下是引用片段: CREATE DATABASE Catalog; |
這給你一個用于在查詢時與其它表格區分的表格名字。下一步是創建用于輸入它的表格。
創建表格
如你所知,表格是有若干個欄目所組成。當創建表格時,你可以定義欄目并分配字段屬性。表格建立后,可以用ALTER表格指令來修改它,我們稍后將提到這一點。
你可以用下面這條指令來創建數據庫,命令行的參數為表格名字、欄目名字,還有每一欄的數據類型。
| 以下是引用片段: CREATE TABLE table_name (column1 data_type, column2 data_type, column3 data_type); |
不同的數據庫提供商的標準差別很大。你的幫助文檔中應該有一段詳細說明如何使用每一種數據、接受何種參數。
| 以下是引用片段: Char Char(8) 它包含了一個固定長度的字符串,其值常常是字符串長度。 Varchar Varchar(128) 它包含了一個長度不大于指定值的長度可變的字符串。 Int Int(32) 這是一個不大于指定值得整數,也做Number或Integer。 Decimal Decimal(12,2) 這是一個總位數和小數點后位數不大于指定值得小數, 也被稱為Numeric或Number。 Binary Binary 用于存儲二進制對象,在數據庫中它一般不可分解和顯示, 也稱為Raw或Blob。 Boolean Boolean |
用來只是真或假,也成為Bit或Byte。
通用數據類型
在本例中,我們建立了一個存放庫存商品信息的表格。所用到的欄目和數據類型如表B所示:
| 以下是引用片段: 欄目名稱: prod_id prod_color prod_descr prod_size 數據類型: Int(16) Varchar(20) Varchar(255) Decimal(8,2) |
在本例中,我使用了三種基本數據類型;然而,在實際使用時,根據數據庫支持的內容,我可能還用用上tinyint、文本和mediumtext數據類型。
發出如下指令來建立表格:
| 以下是引用片段: CREATE TABLE Products (prod_id INT(16), prod_color VARCHAR(20), prod_descr VARCHAR(255), prod_size DECIMAL(8,2)); |
如果這些指令順利完成,你就可以在表格中正常地插入信息。
除了數據類型,你還可以在創建表格時定義自動增量字段(auto-incremented field)、關鍵字、索引和特殊數值限制。在表格定義時,這些參數與數據類型一同傳遞。如果在創建表格Product時定義具有特殊數值限制的自動增量prod_id,命令如下:
| 以下是引用片段: CREATE TABLE Products (prod_id INT(16)AUTO_INCREMENT, prod_color VARCHAR(20), prod_descr VARCHAR(255), prod_size DECIMAL(8,2), UNIQUE (`prod_id`)); |
如果把prod_id做為索引字段定義,可以用CREATE INDEX:
| 以下是引用片段: CREATE INDEX ProdIndex ON Product (prod_id); |
這里有必要重申:數據庫提供商在關鍵字的處理上有所不同。所以,具體情況請參考你的數據庫提供商的文檔。
新聞熱點
疑難解答