目录
1. 数据库约束
1.1 约束类型
NOT NULL - 指示某列不能存储 NULL 值
UNIQUE - 保证某列的每行必须有唯一的值
DEFAULT - 规定没有给列赋值时的默认值
PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标 识,有助于更容易更快速地找到表中的一个特定的记录
FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性
CHECK - 保证列中的值符合指定的条件。对于MySQL数据库,对CHECK子句进行分析,但是忽略 CHECK子句
1.2 NULL约束
1.3 UNIQUE:唯一约束
在插入数据的时候就需要先把这个表中的其他数据查询一下,看看该数据是否E经存在.如果存在,就失败.不存在才插入
1.4 DEFAULT:默认值约束
DEFAULT给列指定默认值.如果插入的时候没有针对这一列进行插入,此时列的值就取默认值即可
1.5 PRIMARY KEY:主键约束
primary key not null + unique
咱们在设计表的时候一般都需要给表指定一个不重复的主键~
主键就可以理解成这一条记录的唯一身份标识一个表最多只能有一列是主键, 不能有多列主键~~
由于主键不能重复,所以mysql提供了自增主键primary key
自增主键不会因为你删除了数据而改变
有没有办法把自增主键的下一个值还原回1?
truncate [表名]也是清空表.这个操作同时也会导致自增主键的id发生改变
1.6 FOREIGN KEY:外键约束
外键用于关联其他表的主键或唯一键
例:有两张表
学生表(学生id,学生姓名,班级id)
班级表(班级id,班级名称)
要求学生表中的班级id数据,必须要在班级表中存在~,如果不存在,就认为这个数据是不合法的
1.7 约束的作用
2. 数据库设计
表的设计 /数据库设计
解决某个需求的时候,你要创建几个表,每个表都有哪些属性,都是啥类型,都有啥约束
需求场景:
有一些学生, 把这些学生放到不同的班级里
每个学生发一个桌子
每个学生还要选择一些课程
2.1 一对多
2.2 多对多