mysql关系模式_MySQL笔记——关系模型

关系模型

表的每一行称为记录(Record),记录是一个逻辑意义上的数据。

表的每一列称为字段(Column),同一个表的每一行记录都拥有相同的若干字段。

字段定义了数据类型(整型、浮点型、字符串、日期等),以及是否允许为NULL,NULL表示字段数据不存在,不代表它的值为0,也不代表它的值为空串‘’。

关系数据库中的表和表直接需要建立“一对多”,“多对多”和“一对一”的关系。

主键

关系表中能通过某个字段唯一区分出不同的记录,这个字段被称为主键。

选取主键的基本原则:不使用任何业务相关的字段作为主键。(主键最好不要修改)

因此我们可采用自增性的主键,数据库会在插入数据时自动为每一条记录分配一个自增整数,这样就不用担心主键重复,也不用预先生成主键。

联合主键

对于联合主键,允许一列有重复,只要多个字段可唯一标识记录即可。没有必要尽量不要使用。

外键

由于一个班级可以有多个学生,在关系模型中,班级表和学生表的关系可称为“一对多”,即一个classes的记录可以对应多个students表的记录。在students表中,通过class_id的字段,可以把数据与另一张表关联起来,这种列称为外键。

定义外键约束

ALTER TABLEstudentsADD CONSTRAINT fk_class_id //定义外键约束FOREIGN KEY (class_id) //指定class_id为外键REFERENCES classes (id); //将外键关联到classes表的id列

删除外键约束

ALTER TABLEstudentsDROP FOREIGN KEY fk_class_id;

注意:删除外键约束并没有删除外键这一列。删除列是通过DROP COLUMN...实现的。

多对多关系,比如,一个老师可以对应多个班级,一个班级也可以对应多个老师,因此班级表和老师表存在多对多关系。

一对一关系,一个表的记录对应到另一个表的唯一一个记录。

索引

索引是关系数据库中对某一列或多个列的值进行预排序的数据结构。使用索引,可以让数据库系统不必扫描整个表,而是直接定位到符合条件的记录,这样就大大加快了查询速度。

例如,要根据score列进行查询,则对score列创建索引

ALTER TABLEstudentsADD INDED idx_score (score);

由于身份证号、邮箱地址等具有业务含义,因此不宜作为主键;但是又具有唯一性约束。这时就可以给该列添加一个唯一索引。

例如,students表的name不能重复

ALTER TABLEstudentsADD UNIQUE INDEX uni_name (name);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值