4.MySQL三大范式、存储引擎、数据库类型、数据类型

目录


MySQL专栏目录(点击进入…)



人就是这样,只有受伤了,才知道身体健康有多重要;
只有经受了一些磨难,才知道生活有多美好;
只有遇到了生活的裂缝,才知道阳光有多温暖。

快来加入我们的互动学习群吧,与我们一起成长和进步吧! QQ交流群:948912943

E-R图

数据库设计的图像表达方式(E-R,Entity Relationship)
实体(Entity)
属性:实体的特征
联系:两各或多个实体之间的关联关系

E-R图的的组成
(1)矩形表示实体集
(2)椭圆形表示属性
(3)菱形表示联系集
(4)直线用来连接属性和实体集。也用来连接实体集和联系集


三大范式(Normal Formal)

(1)第一范式(1NF)

要求每列必须是最小的原子单位,即不能再细分


(2)第二范式(2NF)

要求每列必须和主键相关,不相关的列放到别的表中,即要求一个表只描述一件事情


(3)第三范式(3NF)

要求表中的各列必须和主键直接相关。不能直接相关
即需要拆分客房信息表为客房表、客房状态表、客房类型表


MySQL储存引擎

MySQL支持的存储引擎

MySQL支持的存储引擎有InnoDB、MyISAM、Memory、Merge、Archive、CSV、BLACKHOLE等

命令描述
show engines;查看系统所支持的引擎类型

在这里插入图片描述
Support列的值表示某种引擎是否能使用,YES表示可以使用,NO表示不能使用,DEFAULT表示该引擎为当前默认的存储引擎


存储引擎描述
ARCHIVE用于数据存档的引擎,数据被插入后就不能在修改了,且不支持索引。
CSV在存储数据时,会以逗号作为数据项之间的分隔符。
BLACKHOLE会丢弃写操作,该操作会返回空内容。
FEDERATED将数据存储在远程数据库中,用来访问远程表的存储引擎。
InnoDB具备外键支持功能的事务处理引擎
MEMORY置于内存的表
MERGE用来管理由多个 MyISAM 表构成的表集合
MyISAM主要的非事务处理存储引擎
NDBMySQL 集群专用存储引擎

有几种存储引擎的名字还有同义词,例如:MRG_MyISAM和NDBCLUSTER分别是MERGE和NDB的同义词。存储引擎MEMORY和InnoDB在早期分别称为HEAP和Innobase。虽然后面两个名字仍能被识别,但是已经被废弃了


InnoDB和MyISAM储存引擎比较

 InnoDB(默认)MyISAM
支持事务支持不支持
支持全文索引不支持支持
外键约束支持不支持
表空间大小较大较小
数据行锁定支持不支持

(1)MyISAM储存引擎

不支持事务,也不支持外键,访问速度比较快,因此对不需要事务处理,以访问为主的应用适合使用该引擎


(2)InnoDB储存引擎(默认)

在事务处理上有优势,即支持具有提交,回滚和崩溃恢复能力的事务安装,所以比MyISAM引擎占用更多的磁盘空间,因此需要进行频繁的更新、删除操作,同时还对事务的完整性要求比较高,需要实现并发控制,适合使用该储存引擎

查看当前的默认储存引擎

Show variables like ‘storage_engine%’

修改默认储存引擎

如需修改默认储存引擎,可以通过配置向导,也可以通过配置文件my.ini来实现


修改my.ini
my.ini是隐藏文件,在C:\ProgramData\MySQL\MySQL Server 8.0目录下

在这里插入图片描述

default-storage-engine=InnoDB

如需将默认储存引擎改为MyISAM,只需修改default-storage-engine参数值为MyISAM即可,重启服务后生效


指定表的储存引擎

数据表默认使用当前MySQL的默认储存引擎,有时为了达到数据表的特殊功能的要求,也可以重新设置表的储存类型

create table 表名(
  #省略代码
)engine=储存引擎;

MySQL数据文件

(1)文件的储存位置

不同操作系统的默认储存位置不同,可通过配置my.ini文件中的参数datadir获取或修改该路径


(2)MyISAM类型的表文件

进入datadir指定的文件夹,有类型为MyISAM的表myisam的数据文件有三个,扩展名为frm、MYI、MYD

MyISAM引擎表文件类型描述
frm表结构定义文件。其主要存放表的元数据,包括表结构定义信息等。与储存引擎无关,任何储存类型都有
myi表索引文件。主要存放MyISAM类型表的索引信息,每个MyISAM类型的表有一个MYI文件,存放位置和frm相同
myd表数据文件。存放表中数据文件

(3)InnoDB类型的表文件

datadir指定的数据库文件目录下,InnoDB类型的表innodb.frm相关文件如下

InnoDB引擎表文件类型描述
frm表结构定义文件
ibd索引 + 部分表数据
ibdata1所有表共享空间,数据文件。其保存所有InnoDB类型表的数据。这个文件保存位置与frm不同可以通过my.ini文件中的参数innodb_data_home_dir查询或修改

MySQL数据库类型

系统数据库

数据库类型描述
information_schema主要储存系统中的一些数据库对象信息;如用户表信息、字段信息、权限信息、字符集信息、分区信息
performance_schema主要储存数据库服务器性能参数
mysql主要储存系统的用户权限信息
test数据库管理系统自动创建的测试数据库,任何用户都可以使用

MySQL数据类型

数值类型

数据类型字节数取值范围
tinyint[(M)]1字节有符号值:-27~27 无:0~2^8-1
smallint[(M)}2字节有:-215~215-1 无:0~2^16-1
Mediumint3字节有:-223~223-1 无:0~2^23-1
int[(M)]4字节有:-231~231-1 无:0~2^32-1
float[(M,D)]4字节有:-3.4028+38~-1.175
Double[(M,D)]8字节 
Decimal[(M[D])]M+2字节 

字符串类型

数据类型字节数
Char[(M)]M字节 (字符)
Varchar[(M)]可变长度
Tinytext0~255
Text0~65535
enum()枚举,数据值只能是()中的值

日期类型

数据类型格式
DateYYYY-MM-DD
DatetimeYY-MM-DD hh:mm:ss
Timehh:mm:ss
TimestampYYYYMMDDHHMMSS:年月日时分秒
YearYYYY格式年份
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未禾

您的支持是我最宝贵的财富!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值