1. 程式人生 > >mysql_建表

mysql_建表

reat 創建 ear right int bsp 字段 sign 可用

創建表時,對多選多的字段設置兩個以上的默認值時,兩個默認值之間用逗號‘,‘隔開,不能加空格.

create table student2(
    id int not null,
    name varchar(50) not null,
    age int(3) unsigned not null default 8,
    sex enum(male, female) default male,
    fav set(smoke, drink, tangtou) default drink,tangtou
);

當添加空格時就會報錯,報錯信息如下:

ERROR 1067 (42000): Invalid default value for fav

在創建表的過程中,第一個字段(也就是原來的id字段,這裏說in是因為手滑打錯了)不能夠使用in,否則會報錯.

create table department0(
    in int,
    name char(10),
    unique(id),
    unique(name)
);

報錯信息如下:

ERROR 1064 (42000): You have an error in your SQL syntax; check
the manual that corresponds to your MySQL server version for the right syntax to use near in int, name char(10), unique(id), unique(name) ) at line 2

創建表時,設置聯合唯一,意思就是表中的一條記錄不能相同,其中的一個數據單元可以相同,但是數據單元組合的記錄不能相同.

復合主鍵,將其中昂的兩列組合作為主鍵,組成復合主鍵的兩個單元完全相同時,報錯.

使用delete from 表名; 刪除一個表時,刪除的只是表中的數據,表的結構依然存在,當再次網表中添加數據時,這條數據的ID會接著刪除之前的數據最後一條數據的ID往後增加.並且delete是一條一條的刪除記錄,刪除速度較慢;

使用truncate 表名; 刪除表時,同樣也是刪除表中的數據,但是與delete不同的是,truncate刪除過的表再次插入數據時,記錄的ID會從1開始增加,truncate刪除表是一下子清空表中的數據,刪除速度快,刪除數據是使用truncate的比較多.

show variables like ‘auto_inc%‘; 查看可用的開頭可自增步長;

+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| auto_increment_increment | 1     |  # 步長
| auto_increment_offset    | 1     |  # 開頭
+--------------------------+-------+

mysql_建表