创建数据表

语句: [] 表示可选值

create table <表名> (
    字段名1 数据类型 [列级别约束条件] [默认值],
    字段名2 数据类型 [列级别约束条件] [默认值],
    ...
    ...
    [表级别约束]
);

约束

数据表的基本操作 - 图1

主键约束

单主键约束: 字段名 数据类型 primary key [默认值]``

例1: id int(11) primary key

例2:在定义完列后指定主键:

create table t1 (
  id int(11),
  name varchar(32),
  primary key (id)
);

联合主键:primary key (字段1,字段2,字段3,…)``

create table t2 (
  name varchar(32),
  age int(11),
  primary key (name,age)
);

外键约束

[ constraint <外键名> ] foreign key 字段名1 [ ,字段名2,…] reference <主表名> 主键列1, [ ,主键列2,…]``

例如: constraint fk_emp_dept1 foreign key (deptId) reference tb_dept (id)

非空约束

字段名 数据类型 not null

唯一约束

字段名 数据类型 unique

默认约束

字段名 数据类型 default 默认值

例如: name varchar(32) not null default "jack"


自增

字段名 数据类型 auto_increment

注意: 一个表只有一个字段可以使用auto_increment约束,且该字段必选为主键的一部分(联合主键)



查看数据表结构

describe | desc <表名>

show create table <表名>

该方法不仅可以查看表结构,还可以查看建表语句、存储引擎、字符编码



修改数据表

修改表名

alter table <旧表名> rename <新表名>;

修改字段类型

alter table <表名> modify <字段名> <字段类型>;

修改字段名

alter table <表名> change <旧字段名> <新字段名> <新字段类型>;

添加字段

alter table <表名> add <新字段名> <字段类型> [约束] [ first | after <字段名>];

例如: alter table user add touxiang varchar(128) not null after name;
在名字后面加一个非空的头像字段

删除字段

alter table <表名> drop <字段名>;

修改字段的位置

语法类似于修改字段类型:
alter table <表名> modify <字段名> <字段类型> first | after <字段名>;

修改表的存储引擎

alter table <表名> engine=<更改后的存储引擎名>;

删除外键约束

alter table <表名> drop foreign key <外键约束名>



删除数据表

语法: drop table [if exists] 表1,表2,.....表n;

注意:如果不能删除,需要排除它有没有子表。先删除子表的外键约束才行。