所謂建表就是聲明表頭(很多列字段)的過程。
表頭 學號(列1) 姓名(列2)
行1 aa bb
行2 cc dd
聲明列的時候有修飾符的概念,它的學名叫“完整性約束”,是為了保證數據庫中的完整性而制定的一套規范。
create table table_name(
column_definition,
...
)engine=myisam/innodb/bdb charset=utf8/gbk/latin1...;
幾個關鍵的修飾符:
1、主鍵
主鍵 (primary key) 中的每一筆資料都是表格中的唯一值。換言之,它是用來獨一無二地確認一個表格中的每一行資料。
主鍵可以是原本資料內的一個欄位,或是一個人造欄位 (與原本資料沒有關系的欄位)。
主鍵可以包含一或多個欄位,當主鍵包含多個欄位時,稱為組合鍵 (composite key)。
主鍵兩個特性:
唯一性:一張表只能有一個主鍵,是為了防止存儲冗余數據。
排他性:主鍵不能重復,是為了防止存儲錯誤數據。
主鍵聲明語法:
可以在聲明字段時使用primary key修飾符(只能用于主鍵為一個字段的情況)。
也可以在寫完所有字段后使用primary(key1,key2,...)。
2、唯一主鍵和自增
在生產環境中更傾向于使用一個字段作為主鍵,因為一個字段比多個處理起來更簡單方便。
通常用一個正整數的字段表示主鍵,它還擁有一些其他特性,比如自增、非空等。
聲明語法:
id int primary key auto_increment,
這樣在插入數據的時候,不用指定主鍵值,它會自動增加填充。
修改自增值:
alter table auto_increment=100;
3、非空
使用not null修飾,在插入數據時,如果非空列沒有值,就會報錯無法插入。
聲明語法:
name varchar(30) not null,
在修飾主鍵時會默認加上not null的修飾,所以無需指定。
4、不可重復
使用unique修飾,在插入數據時,如果該列值已經其它行已存在,就會報錯拒絕執行。
聲明語法:
name varchar(30) unique,
在修飾主鍵時會默認加上unique的修飾,所以無需指定。
5、默認值
當我們在插入數據中,沒有指定某一列的值,可以使用default ''來指定默認填充值。
聲明語法:
name varchar(30) default '張三',
6、其它
無符號(unsigned),只對數值類型有效,比如tinyint類型范圍是-128-127,用unsigned修飾后范圍只能為0-255。
zerofill,用0補充長度到指定寬度顯示器長度,使用了zerofill就意味著是unsigned數據,因為負數前補0沒有意義。