创建表结构

语法

  1. create table 表名(
  2. 列名 类型,
  3. 列名 类型,
  4. 列名 类型
  5. )default charset=utf8;

案例

如果想让创建的表的编码和配置文件中表的编码不一致,可以在创建表的时候设置表编码。

  1. create table tb1(
  2. id int,
  3. name varchar(16)
  4. )default charset=utf8;
  1. create table tb2(
  2. id int,
  3. name varchar(16) not null, -- 不允许为空
  4. email varchar(32) null, -- 允许为空(默认)
  5. age int
  6. )default charset=utf8;
  1. create table tb3(
  2. id int,
  3. name varchar(16) not null, -- 不允许为空
  4. email varchar(32) null, -- 允许为空(默认)
  5. age int default 3 -- 插入数据时,如果不给age列设置值,默认值:3
  6. )default charset=utf8;
  1. create table tb4(
  2. id int primary key, -- 主键(不允许为空、不能重复)
  3. name varchar(16) not null, -- 不允许为空
  4. email varchar(32) null, -- 允许为空(默认)
  5. age int default 3 -- 插入数据时,如果不给age列设置值,默认值:3
  6. )default charset=utf8;

主键一般用于表示当前这条数据的ID编号(类似于人的身份证),需要我们自己来维护一个不重复的值,比较繁琐。所以,在数据库中一般会将主键和自增结合。

  1. create table tb5(
  2. id int auto_increment primary key, -- 不允许为空 & 主键 & 自增
  3. name varchar(16) not null, -- 不允许为空
  4. email varchar(32) null, -- 允许为空(默认)
  5. age int default 3 -- 插入数据时,如果不给age列设置值,默认值:3
  6. )default charset=utf8;

删除表

删除表文件 drop table 表名;
清空表 delete from 表名;truncate table 表名;(速度快、无法回滚撤销等)

修改表

添加列

  1. alter table 表名 add 列名 类型;
  2. alter table 表名 add 列名 类型 DEFAULT 默认值;
  3. alter table 表名 add 列名 类型 not null default 默认值;
  4. alter table 表名 add 列名 类型 not null primary key auto_increment;

删除列

  1. alter table 表名 drop column 列名;

修改列类型

  1. alter table 表名 modify column 列名 类型;

修改列 类型 + 名称

  1. alter table 表名 change 原列名 新列名 新类型;
  1. alter table tb change id nid int not null;
  2. alter table tb change id id int not null default 5;
  3. alter table tb change id id int not null primary key auto_increment;
  4. alter table tb change id id int; -- 允许为空,删除默认值,删除自增。

修改列 默认值

  1. alter table 表名 alter 列名 set default 1000;

删除列 默认值

  1. alter table 表名 alter 列名 drop default;

添加主键

  1. alter table 表名 add primary key(列名);

删除主键

  1. alter table 表名 drop primary key;