MySQL建表命令詳解
阿新 • • 發佈:2021-07-17
選擇資料庫
use databasename;
語法
create table tablename( col_name1 type auto_increment, col_name2 type not null|null default val, col_name3 type unique, .... , primary key(col_name), index idx_name(col_name1,col_name2,...), foreign key(col_name) references tablename(col_name) ) engine=innoDB|myISAM default charset=字符集;
- type:定義欄位的資料型別。其中:字串型別(char,varchar)需要指定長度;整型(int,bigint,tinyint等)和日期型別(datetime,timestamp等)只需要指定型別,不需要指定長度;decimal型別需要指定精度和小數位數。
- primary key引數指定表的主鍵。
- auto_increment引數指定欄位為自增欄位,該欄位的型別必須為int或bigint才能設定為自增欄位。
- not null|null引數設定欄位能否取空值。
- default引數設定欄位的預設值。
- index引數用來建立索引。idx_name指定索引名,該引數可以省略,如果省略則索引名就是欄位名。
- foreign key引數用來指定外來鍵。
- engine引數用來設定引擎型別,常用的有innoDB和myISAM引擎。
- default charset引數設定表所用的字符集。
數值型別參考
https://www.runoob.com/mysql/mysql-data-types.html
例項
create table test1( id int auto_increment, name varchar(50) not null, status tinyint default 1, primary key(id) ) engine=innoDB default charset=utf8;
create table test2(
id bigint auto_increment comment '主鍵',
name varchar(100) not null comment '姓名',
status int default 1 comment '狀態',
primary key(id),
index name(name)
)engine=innoDB default charset=utf8
create table test3(
id bigint primary key auto_increment comment 'id',
name char(100) comment 'name',
status int comment 'status',
index name (name)
)engine=Myisam default charset=utf8mb3;