MySQL操作表的约束
完整性:指数据库的准确性和一致性。
约束:是在表中定义的用于维护数据库完整性的一些规则。
主键:给某一个字段来唯一标识所有记录,值是唯一的,非空的
外键:多个表之间参照的完整性。
一、设置非空约束
use 教学管理数据库; show tables; create table 专业表( 专业编号 char(3) not null, 专业名称 varchar(30) ); desc 专业表;
二、设置字段的默认值
drop table 专业表; create table 专业表( 专业编号 char(3) not null(约束), 专业名称 varchar(30) default(默认的) '计算机' );
desc 学生表;
三、设置唯一约束
drop table 专业表; create table 专业表( 专业编号 char(3) not null, 专业名称 varchar(30) default(默认的) '计算机' unique(唯一) );
desc 专业表;
四、设置主键约束
1)单字段主键 drop table 专业表; create table 专业表( 专业编号 char(3) not null(约束) primary(主要) key(设置主键约束), 专业名称 varchar(30) );
desc 专业表;
(2)多字段主键
drop table 专业表; create table 专业表( 专业编号 char(3) not null, 专业名称 varchar(30), constraint pk_专业编号_专业名称 primary key(设置主键约束)(专业编号,专业名称) );
查看表结构
desc 专业表;
五、设置字段值自动增长
drop table 专业表; create table 专业表( 专业编号 int primary key(设置主键约束) auto_increment(设置字符段自动增长), 专业名称 varchar(30) );
查看表结构
desc 专业表;
六、设置外键
desc 学生表; desc 专业表; drop table 学生表; create table 学生表( 学生编号 char(4) primary key(设置主键约束), 学生姓名 varchar(10), 所属专业编号 int, 所属班级编号 char(3), 职务 varchar(6), 性别 char(1), 出生日期 datetime, 籍贯 varchar(50), 入学日期 datetime, constraint(约束) fk_所属专业编号 foreign key(设置外键)(所属专业编号) references(依附,属于) 专业表(专业编号) );
查看表结构
desc 学生表;
MySQL所支持的完整性约束
- 设置非空约束,含义:设置字段不能为空值
2.设置字段默认值,含义:当为数据库表中插入一条新记录时;如果没有为某个字段赋值那么数据库会自动为这个字段插入默认值。
3.设置唯一约束;含义:设置不允许重复,保证不能重复
4.设置主键约束;含义:表示该字段可以唯一的表示所有记录
5.设置字符自动增长;含义:一个数据库表中只能有一个字段使用该约束,该字段类型必须是整形
6.设置外键约束;含义:外加约束则保证多个表之间的参照完整性构建两个表的两个字段之间的关系
字段值自动增长的优点
当为数据库表中插入新纪录时,字段上的值会自动生成唯一的ID
设置字段的默认值有什么优点
如果没有为某个字段赋值那么数据库会自动为这个字段插入默认值。