再次歡迎您來(lái)到SQL(結(jié)構(gòu)化查詢語(yǔ)言)基礎(chǔ)系列教程。本文將介紹數(shù)據(jù)庫(kù)定義語(yǔ)言(DDL)用于創(chuàng)建數(shù)據(jù)庫(kù)和表格以及修改表格結(jié)果的指令。
當(dāng)你使用這些指令時(shí)一定要小心——它很容易刪去你的數(shù)據(jù)庫(kù)中的主要結(jié)構(gòu)令您丟失數(shù)據(jù)。所以,在您開(kāi)始修改數(shù)據(jù)庫(kù)之前,您需要知道數(shù)據(jù)庫(kù)是什么。
--------------------------------------------------------------------------------
數(shù)據(jù)庫(kù)之間的差異
本文中的樣品查詢系統(tǒng)遵循SQL92 ISO標(biāo)準(zhǔn)。并不是所有的數(shù)據(jù)庫(kù)都遵循該標(biāo)準(zhǔn),有些數(shù)據(jù)庫(kù)做了改進(jìn),這會(huì)產(chǎn)生不可預(yù)料的結(jié)果。如果你不能確定你的數(shù)據(jù)庫(kù)是否支持該標(biāo)準(zhǔn),請(qǐng)參考相應(yīng)的文檔。
--------------------------------------------------------------------------------
創(chuàng)建數(shù)據(jù)庫(kù)
為了創(chuàng)建表格,你首先需要需要?jiǎng)?chuàng)建一個(gè)可以容納表格的數(shù)據(jù)庫(kù)。SQL用于創(chuàng)建數(shù)據(jù)庫(kù)的基本語(yǔ)句是:
CREATE DATABASE dbname;
你的數(shù)據(jù)庫(kù)用戶必須有建立數(shù)據(jù)庫(kù)的適當(dāng)權(quán)限。如果與你有關(guān)的用戶不能發(fā)出用于創(chuàng)建新數(shù)據(jù)庫(kù)的命令,要求數(shù)據(jù)庫(kù)管理員為你建立數(shù)據(jù)庫(kù),你也作為管理員登錄然后建立數(shù)據(jù)庫(kù)并設(shè)置權(quán)限。
舉個(gè)例子,用CREATE指令為一個(gè)應(yīng)用程序建立一個(gè)數(shù)據(jù)庫(kù)用于顯示一個(gè)目錄:
CREATE DATABASE Catalog;
這給你一個(gè)用于在查詢時(shí)與其它表格區(qū)分的表格名字。下一步是創(chuàng)建用于輸入它的表格。
創(chuàng)建表格
如你所知,表格是有若干個(gè)欄目所組成。當(dāng)創(chuàng)建表格時(shí),你可以定義欄目并分配字段屬性。表格建立后,可以用ALTER表格指令來(lái)修改它,我們稍后將提到這一點(diǎn)。
你可以用下面這條指令來(lái)創(chuàng)建數(shù)據(jù)庫(kù),命令行的參數(shù)為表格名字、欄目名字,還有每一欄的數(shù)據(jù)類型。
CREATE TABLE table_name
(column1 data_type, column2 data_type, column3 data_type);
不同的數(shù)據(jù)庫(kù)提供商的標(biāo)準(zhǔn)差別很大。你的幫助文檔中應(yīng)該有一段詳細(xì)說(shuō)明如何使用每一種數(shù)據(jù)、接受何種參數(shù)。為了通用,我在表A中列出了一些常用的數(shù)據(jù)類型。
表A
數(shù)據(jù)類型
用法
詳細(xì)說(shuō)明
Char
Char(8)
它包含了一個(gè)固定長(zhǎng)度的字符串,其值常常是字符串長(zhǎng)度。
Varchar
Varchar(128)
它包含了一個(gè)長(zhǎng)度不大于指定值的長(zhǎng)度可變的字符串。
Int
Int(32)
這是一個(gè)不大于指定值得整數(shù),也做Number或Integer。
Decimal
Decimal(12,2)
這是一個(gè)總位數(shù)和小數(shù)點(diǎn)后位數(shù)不大于指定值得小數(shù),也被稱為Numeric或Number。
Binary
Binary
用于存儲(chǔ)二進(jìn)制對(duì)象,在數(shù)據(jù)庫(kù)中它一般不可分解和顯示,也稱為Raw或Blob。
Boolean
Boolean
用來(lái)只是真或假,也成為Bit或Byte。
通用數(shù)據(jù)類型
在本例中,我們建立了一個(gè)存放庫(kù)存商品信息的表格。所用到的欄目和數(shù)據(jù)類型如表B所示:
表B
欄目名稱:
prod_id
prod_color
prod_descr
prod_size
數(shù)據(jù)類型:
Int(16)
Varchar(20)
Varchar(255)
Decimal(8,2)
在本例中,我使用了三種基本數(shù)據(jù)類型;然而,在實(shí)際使用時(shí),根據(jù)數(shù)據(jù)庫(kù)支持的內(nèi)容,我可能還用用上tinyint、文本和mediumtext數(shù)據(jù)類型。
當(dāng)你使用這些指令時(shí)一定要小心——它很容易刪去你的數(shù)據(jù)庫(kù)中的主要結(jié)構(gòu)令您丟失數(shù)據(jù)。所以,在您開(kāi)始修改數(shù)據(jù)庫(kù)之前,您需要知道數(shù)據(jù)庫(kù)是什么。
--------------------------------------------------------------------------------
數(shù)據(jù)庫(kù)之間的差異
本文中的樣品查詢系統(tǒng)遵循SQL92 ISO標(biāo)準(zhǔn)。并不是所有的數(shù)據(jù)庫(kù)都遵循該標(biāo)準(zhǔn),有些數(shù)據(jù)庫(kù)做了改進(jìn),這會(huì)產(chǎn)生不可預(yù)料的結(jié)果。如果你不能確定你的數(shù)據(jù)庫(kù)是否支持該標(biāo)準(zhǔn),請(qǐng)參考相應(yīng)的文檔。
--------------------------------------------------------------------------------
創(chuàng)建數(shù)據(jù)庫(kù)
為了創(chuàng)建表格,你首先需要需要?jiǎng)?chuàng)建一個(gè)可以容納表格的數(shù)據(jù)庫(kù)。SQL用于創(chuàng)建數(shù)據(jù)庫(kù)的基本語(yǔ)句是:
CREATE DATABASE dbname;
你的數(shù)據(jù)庫(kù)用戶必須有建立數(shù)據(jù)庫(kù)的適當(dāng)權(quán)限。如果與你有關(guān)的用戶不能發(fā)出用于創(chuàng)建新數(shù)據(jù)庫(kù)的命令,要求數(shù)據(jù)庫(kù)管理員為你建立數(shù)據(jù)庫(kù),你也作為管理員登錄然后建立數(shù)據(jù)庫(kù)并設(shè)置權(quán)限。
舉個(gè)例子,用CREATE指令為一個(gè)應(yīng)用程序建立一個(gè)數(shù)據(jù)庫(kù)用于顯示一個(gè)目錄:
CREATE DATABASE Catalog;
這給你一個(gè)用于在查詢時(shí)與其它表格區(qū)分的表格名字。下一步是創(chuàng)建用于輸入它的表格。
創(chuàng)建表格
如你所知,表格是有若干個(gè)欄目所組成。當(dāng)創(chuàng)建表格時(shí),你可以定義欄目并分配字段屬性。表格建立后,可以用ALTER表格指令來(lái)修改它,我們稍后將提到這一點(diǎn)。
你可以用下面這條指令來(lái)創(chuàng)建數(shù)據(jù)庫(kù),命令行的參數(shù)為表格名字、欄目名字,還有每一欄的數(shù)據(jù)類型。
CREATE TABLE table_name
(column1 data_type, column2 data_type, column3 data_type);
不同的數(shù)據(jù)庫(kù)提供商的標(biāo)準(zhǔn)差別很大。你的幫助文檔中應(yīng)該有一段詳細(xì)說(shuō)明如何使用每一種數(shù)據(jù)、接受何種參數(shù)。為了通用,我在表A中列出了一些常用的數(shù)據(jù)類型。
表A
數(shù)據(jù)類型
用法
詳細(xì)說(shuō)明
Char
Char(8)
它包含了一個(gè)固定長(zhǎng)度的字符串,其值常常是字符串長(zhǎng)度。
Varchar
Varchar(128)
它包含了一個(gè)長(zhǎng)度不大于指定值的長(zhǎng)度可變的字符串。
Int
Int(32)
這是一個(gè)不大于指定值得整數(shù),也做Number或Integer。
Decimal
Decimal(12,2)
這是一個(gè)總位數(shù)和小數(shù)點(diǎn)后位數(shù)不大于指定值得小數(shù),也被稱為Numeric或Number。
Binary
Binary
用于存儲(chǔ)二進(jìn)制對(duì)象,在數(shù)據(jù)庫(kù)中它一般不可分解和顯示,也稱為Raw或Blob。
Boolean
Boolean
用來(lái)只是真或假,也成為Bit或Byte。
通用數(shù)據(jù)類型
在本例中,我們建立了一個(gè)存放庫(kù)存商品信息的表格。所用到的欄目和數(shù)據(jù)類型如表B所示:
表B
欄目名稱:
prod_id
prod_color
prod_descr
prod_size
數(shù)據(jù)類型:
Int(16)
Varchar(20)
Varchar(255)
Decimal(8,2)
在本例中,我使用了三種基本數(shù)據(jù)類型;然而,在實(shí)際使用時(shí),根據(jù)數(shù)據(jù)庫(kù)支持的內(nèi)容,我可能還用用上tinyint、文本和mediumtext數(shù)據(jù)類型。