创建表结构
语法
create table 表名(
列名 类型,
列名 类型,
列名 类型
)default charset=utf8;
案例
如果想让创建的表的编码和配置文件中表的编码不一致,可以在创建表的时候设置表编码。
create table tb1(
id int,
name varchar(16)
)default charset=utf8;
create table tb2(
id int,
name varchar(16) not null, -- 不允许为空
email varchar(32) null, -- 允许为空(默认)
age int
)default charset=utf8;
create table tb3(
id int,
name varchar(16) not null, -- 不允许为空
email varchar(32) null, -- 允许为空(默认)
age int default 3 -- 插入数据时,如果不给age列设置值,默认值:3
)default charset=utf8;
create table tb4(
id int primary key, -- 主键(不允许为空、不能重复)
name varchar(16) not null, -- 不允许为空
email varchar(32) null, -- 允许为空(默认)
age int default 3 -- 插入数据时,如果不给age列设置值,默认值:3
)default charset=utf8;
主键一般用于表示当前这条数据的ID编号(类似于人的身份证),需要我们自己来维护一个不重复的值,比较繁琐。所以,在数据库中一般会将主键和自增结合。
create table tb5(
id int auto_increment primary key, -- 不允许为空 & 主键 & 自增
name varchar(16) not null, -- 不允许为空
email varchar(32) null, -- 允许为空(默认)
age int default 3 -- 插入数据时,如果不给age列设置值,默认值:3
)default charset=utf8;
删除表
删除表文件 drop table 表名;
清空表 delete from 表名;
或 truncate table 表名;
(速度快、无法回滚撤销等)
修改表
添加列
alter table 表名 add 列名 类型;
alter table 表名 add 列名 类型 DEFAULT 默认值;
alter table 表名 add 列名 类型 not null default 默认值;
alter table 表名 add 列名 类型 not null primary key auto_increment;
删除列
alter table 表名 drop column 列名;
修改列类型
alter table 表名 modify column 列名 类型;
修改列 类型 + 名称
alter table 表名 change 原列名 新列名 新类型;
alter table tb change id nid int not null;
alter table tb change id id int not null default 5;
alter table tb change id id int not null primary key auto_increment;
alter table tb change id id int; -- 允许为空,删除默认值,删除自增。
修改列 默认值
alter table 表名 alter 列名 set default 1000;
删除列 默认值
alter table 表名 alter 列名 drop default;
添加主键
alter table 表名 add primary key(列名);
删除主键
alter table 表名 drop primary key;