Mysql-05数据库设计

十、数据库设计

10.1、E-R模型

数据库能够有效存储现实世界中有意义的数据,通过E-R图能够更加有效地模拟现实世界

        ✏️ E-R 模型的基本元素是 : 实体、联系和属性

                ✨ E 表示 entry, 实体 : 描述具有相同特征事物的抽象

                ✨ 属性 : 每个实体的具有的各种特征称之为属性

                ✨ R 表示 relationship, 联系 : 实体之间存在多种关系 关系的类型包括一对一,一对多,多对多

◆ 举例说明

        ✨ 学生 就是一个实体 其具有的属性为 : 学号、姓名、年龄、班级等

        ✨ 学生与学生之间存在角色关系,组长和组员,他们之间有一对多的关系

        

10.1.1、一对一

        实体A对实体 B 为 1 对 1, 则在表 A 或表 B 中创建一个字段,存储另一个表的主键值

                

10.1.2、一对多

        实体A对实体B为1对多: 在表 B 中创建一个字段1存储表 A 的主键值

        

10.1.3、多对多

        实体A对实体 B 为多对多 : 新建一张表 C, 这个表只有两个字段 一个用于存储 A 的主键值,一个用于存储 B 的主键值

        

10.2、主键与外键

10.2.1、概念介绍

主键外键
作用用来保证数据完整性用来和其他表建立联系
定义唯一的标识一条记录,不能重复,不能为空一表的属性是另一表的主键,可以重复,不能为空
个数一个表主键只能有一个一个表可以有多个外键值

10.2.2、设置主键

◆ 语法格式

在创建数据库表时,create table 中指定主键

字段名 数据类型 PRIMARY KEY

◆ 举例说明

# 创建班级表(班级编号,班级名称),以班级编号为主键 
create table class( 
	id int unsigned primary key auto_increment, 
	name varchar(10) 
);

10.2.3、删除主键

◆ 语法格式

alter table 数据表名 drop primary key;

◆ 举例说明

alter table class drop primary key;

10.2.4、设置外键

◆ 语法格式

在创建数据库表时,create table 中设置外键

constraint 外键名 foreign key(自己的字段) references 主表(主表字段)

◆ 举例说明

例: 创建学生表 以班级编号关联超级表

create table class( 
	name varchar(10), 
	class_id int unsigned, 
	constraint stu_kf foreign key(class_id) references class(id) 
);

10.2.5、删除外键

◆ 语法格式

# 删除表student的stu_ibfk_1外键 
alter table student drop foreign key stu_fk;

10.3、索引

10.3.1、索引概念

索引
作用提供查询排序
定义快速查找特定值的记录
个数一个表主键只能有一个

10.3.2、设置索引

◆ 语法格式

表已存在的时候创建索引

create index 索引名称 on 表名(字段名称(长度));

◆ 举例说明

create index name_index on create_index(name(10));

10.3.3、删除索引

◆ 语法格式

drop index 索引名称 on 表名;

◆ 举例说明

drop index name_index on create_index;

10.3.4、案例准备

右键点击某个数据库→运行 sql 文件→选择 test_index.sql→ 点击开始

# 开启运行时间监测 
set profiling=1; 
# 查找第一万条数据test10000 
select * from test_index where title='test10000'; 
# 查看执行的时间 
show prifiles; 
# 为表test_index的title列创建索引 
create index title_index on test_index(10)); 
# 执行查询语句 
select * from test_index where title='test10000'; 
# 查看执行的时间 12. show prifiles;

10.3.5、索引

说明: 可以大幅度提高查询语句的执行效率

注意: 如果大量增加索引设置,会严重影响除数据查询操作以外的其他操作(增/删/改)的操作,不方便过多添加.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值