目录

1 约束

2 查看已有表

3 创建表

4 查看表结构

5 修改表

6 删除表


1 约束

  • 主键约束 primary key:唯一,标识表中的一行数据,此列的值不可重复,且不能为 NULL,此外,可以多个列组成主键
  • 唯一约束 unique:唯一,标识表中的一行数据,该行不可重复,可以为 NULL
  • 非空约束 not null:非空,约束此列的每一个单元格不允许有 NULL
  • 默认值约束 default:为列赋予默认值,当新增的数据不指定值时,可以通过 default 设置默认值进行填充
  • 外键约束 foreign key:从表只能添加主表已有的数据。两张表存在引用关系时,执行删除操作需要注意,先删除从表(引用表、外键表),再删除主表(被引用表、主键表)
  • 自动增长列 auto_increment:自动增长,给主键数值列添加自动增长。从1开始,每次加1。不能单独使用,和主键搭配

2 查看已有表

查看已有表可以通过 show tabes; 也可通过 show tables from 数据库名;

show tables;show tables from study;

3 创建表

drop table if exists person; #如果表 person 已存在,则删除 create table person (id int(10) primary key auto_increment, #主键,自动增长name varchar(14) unique not null, #该行不重复,不为空age int,sex char(10) default '女' #没有插入该列,填入默认值"女")charset=utf8; #utf-8 编码#多行插入insert into person(name, age, sex) values('西施', 18, '女'),('大乔', 32, null),('王昭君', 24, null);

通过 “source sql 文件地址”导入

sex 列设置为 default,只有不插入该列,才会填入默认值

insert into person(name,age) values('赵飞燕',27);

name 列设置为 unique not null,则该列名字不能重复,也不能为 NULL

insert into person(name,age) values('赵飞燕', 25);insert into person(name,age) values(null, 25);

4 查看表结构

show create table perosn;

  • ENGINE 用于设置存储引擎
  • AUTO_INCREMENT 为下一条插入数据的主键值,一般是最后一条数据的主键值 + 1,其他情况,如删除整张表的数据(表还在),再重新插入,此时第一条数据的主键值则从 AUTO_INCREMENT 保存的值开始。当然,以上情况都基于主键设置了auto_increment
  • DEFAULT CHARSET 用于设置字符集编码格式
desc person;describe person;explain person;show columns from person;

上述四行代码作用相同,都可以查看表相关列信息

5 修改表

表中添加新列,alter table 表名 add 列名 数据类型 [约束] ;

alter table person add height int;

修改表中列的数据类型和约束,alter table 表名 modify 列名 数据类型 [约束] ;

alter table person modify height int default 168;

改变列名,alter table 表名 change 旧列名新列名 数据类型 约束。改变列名时也可以更改数据类型和约束。

alter table person change height high int;

删除列,alter table 表名 drop 列名

alter table person drop high;

修改表名,alter table 旧表名 rename 新表名

alter table person rename student;

6 删除表

drop table student;