6.5 數據定義: CREATE、DROP、ALTER
6.5.1 CREATE DATABASE 句法
CREATE DATABASE [IF NOT EXISTS] db_name
CREATE DATABASE 以給定名字創建一個數據庫。允許的數據庫名規則在章節 6.1.2 數據庫、表、索引、列和別名 中被給出。 如果數據庫已經存在,並且你沒有指定 IF NOT EXISTS,這時會產生一個錯誤。
在 MySQL 中,數據庫以包含數據庫表對應文件的目錄實現的。因為數據庫在初始創建時沒有表,所以 CREATE DATABASE 語句只在 MySQL 數據目錄下創建一個目錄。
你也可以使用 MySQLadmin 創建一個數據庫。查看章節 4.8 MySQL 客戶端腳本和實用程序。
6.5.2 DROP DATABASE 句法
DROP DATABASE [IF EXISTS] db_name
DROP DATABASE 移除數據庫是的所有表並刪除數據庫。如果你在一個符號鏈接(symbolic link)數據庫上執行一個 DROP DATABASE,鏈接與原始數據庫均會被刪除。要非常小心地使用這個命令!
DROP DATABASE 返回從數據庫目錄下刪除的文件數目。通常,它是表的數目的三倍,因為第張表通常對應於一個 “.MYD” 文件、一個 “.MYI” 文件和一個 “.frm” 文件。
DROP DATABASE 命令從給定的數據庫目錄下移除以下列為擴展名的所有文件:
擴展名 擴展名 擴展名 Ext
.BAK .DAT .HSH .ISD
.ISM .ISM .MRG .MYD
.MYI .db .frm
所有包含兩個數字的子目錄(RAID 目錄)也同樣被刪除。
在 MySQL 3.22 或以後的版本中,你可以使用關鍵詞 IF EXISTS 以防止如果數據庫不存在時發生錯誤。
你也可以使用 MySQLadmin 移除數據庫。查看章節 4.8 MySQL 客戶端腳本和實用程序。
6.5.3 CREATE TABLE 句法
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)]
[table_options] [select_statement]
or
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name LIKE old_table_name;
create_definition:
col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[PRIMARY KEY] [reference_definition]
or PRIMARY KEY (index_col_name,...)
or KEY [index_name] (index_col_name,...)
or INDEX [index_name] (index_col_name,...)
or UNIQUE [INDEX] [index_name] (index_col_name,...)
or FULLTEXT [INDEX] [index_name] (index_col_name,...)
or [CONSTRAINT symbol] FOREIGN KEY [index_name] (index_col_name,...)
[reference_definition]
or CHECK (expr)
type:
TINYINT[(length)] [UNSIGNED] [ZEROFILL]
or SMALLINT