MySQL入門經典:用CREATE TABLE 語句創建數據表
最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!
我要咨詢MySQL入門經典:用CREATE TABLE語句創建數據表,此語句的完整語法是相當復雜的,因為存在那么多的可選子句,但在實際中此語句的應用相當簡單。
有意思的是,大多數復雜東西都是一些子句,這些子句MySQL在分析后扔掉。
1、CREATE TABLE 語句的基本語法
CREATE TABLE tbl_name(create_definition,...) [TYPE =table_type]
create_definition: col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT][PRIMARY KEY]
在MySQL3.22或以后版本中,表名可以被指定為db_name.tbl_name,不管有沒有當前的數據庫都可以。
例如,創建一個訪問者留言表:
shell> mysql –u root –p
mysql> create database mytest;
mysql> CREATE TABLE guestbook
-> (
-> visitor VARCHAR(40),
-> comments TEXT,
-> entrydate DATETIME
->);
如果一切正常,祝賀你,你已經建立了你的第一個表!
你所創建的表名為guestbook,你可以使用這個表來存儲來字你站點訪問者的信息。你是用REEATE TABLE語句創建的這個表,這個語句有兩部分:第一部份指定表的名子;第二部份是括在括號中的各字段的名稱和屬性,相互之間用逗號隔開。
表guestbook有三個字段:visitor,comments 和entrydate。visitor字段存儲訪問者的名字,comments字段存儲訪問者對你站點的意見,entrydate字段存儲訪問者訪問你站點的日期和時間。
注意每個字段名后面都跟有一個專門的表達式。例如,字段名comments后面跟有表達式TEXT。這個表達式指定了字段的數據類型。數據類型決定了一個字段可以存儲什么樣的數據。因為字段comments包含文本信息,其數據類型定義為文本型。
2、如何指定表的類型
你也可以在創建表時指定表的類型,如果不指定表的類型,在3.22及以前版本中缺省為ISAM表,在3.23版本中缺省為MyISAM表。你應該盡量使用MyISAM表。指定表的類型經常用于創建一個HEAP表:
mysql> CREATE TABLE fast(id int,articles TEXT) TYPE=HEAP;
3、隱含的列說明的改變
在某些情況下,MySQL隱含地改變在一個CREATE TABLE語句給出的一個列說明。(這也可能在ALTER TABLE。)
長度小于4的VARCHAR被改變為CHAR。
如果在一個表中的任何列有可變長度,結果是整個行是變長的。因此, 如果一張表包含任何變長的列(VARCHAR、TEXT或BLOB),所有大于3個字符的CHAR列被改變為VARCHAR列。這在任何方面都不影響你如何使用列;在MySQL中,VARCHAR只是存儲字符的一個不同方法。MySQL實施這種改變,是因為它節省空間并且使表操作更快捷。
TIMESTAMP的顯示尺寸必須是偶數且在2 ~ 14的范圍內。如果你指定0顯示尺寸或比14大,尺寸被強制為14。從1~13范圍內的奇數值尺寸被強制為下一個更大的偶數。
你不能在一個TIMESTAMP列里面存儲一個文字NULL;將它設為NULL將設置為當前的日期和時間。因為TIMESTAMP列表現就是這樣,NULL和NOT NULL屬性不以一般的方式運用并且如果你指定他們,將被忽略。DESCRIBE tbl_name總是報告該TIMESTAMP列可能賦予了NULL值。
如果你想要知道MySQL是否使用了除你指定的以外的一種列類型,在創建或改變你的表之后,發出一個DESCRIBE tbl_name語句即可。