mysql 一 、关系模型——主键——外键——索引

关系模型

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

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

段定义了数据类型(整型、浮点型、字符串、日期等)。NULL是空的,不是0也不是空字符串

关系数据库的表和表之间需要建立“一对多”,“多对一”和“一对一”的关系,这样才能够按照应用程序的逻辑来组织和存储数据。

一对多:一个表里的一行数据对应另一个表里的多行数据

一对一:一个表里的一行数据对应另一个表里的一行数据

在关系数据库中,关系是通过主键和外键来维护的。

主键

主键是关系表中记录的唯一标识。主键的选取非常重要:主键不要带有业务含义,而应该使用BIGINT自增或者GUID类型。主键也不应该允许NULL。

可以使用多个列作为联合主键,但联合主键并不常用

外键

在students表中,通过class_id的字段,可以把数据与另一张表关联起来,这种列称为外键。
外键并不是通过列名实现的,而是通过定义外键约束实现的:
1 定义外键约束

ALTER TABLE students  (更改表格)
ADD CONSTRAINT fk_class_id (添加外键约束)
FOREIGN KEY (class_id) (外键)          
REFERENCES classes (id);(关联)

2 要删除一个外键约束,也是通过ALTER TABLE实现的:

ALTER TABLE students(修改表)
DROP FOREIGN KEY fk_class_id;   (删除外键)

关系数据库通过外键可以实现一对多、多对多和一对一的关系。外键既可以通过数据库来约束,也可以不设置约束,仅依靠应用程序的逻辑来保证。

索引

在关系数据库中,如果有上万甚至上亿条记录,在查找记录的时候,想要获得非常快的速度,就需要使用索引。

索引是关系数据库中对某一列或多个列的值进行预排序的数据结构。通过使用索引,可以让数据库系统不必扫描整个表,而是直接定位到符合条件的记录,这样就大大加快了查询速度。
1 创建索引,索引如果有多列,可以在括号里依次写上,用逗号隔开

ALTER TABLE students(更改表格)
ADD INDEX idx_score (添加索引)
ADD INDEX idx_name_score (name, score);(添加多列索引)

2 添加唯一索引

ALTER TABLE students(更改表格)
ADD CONSTRAINT uni_name UNIQUE (name); (添加唯一索引)

3 也可以只对某一列添加一个唯一约束而不创建唯一索引:

ALTER TABLE students (更改表格)
ADD CONSTRAINT uni_name UNIQUE (name); (添加唯一索引)

通过对数据库表创建索引,可以提高查询速度。

通过创建唯一索引,可以保证某一列的值具有唯一性。

数据库索引对于用户和应用程序来说都是透明的。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值