1、本章目标
存储引擎
数据类型(重点)
2、存储引擎
在关系型数据库中,数据存储在表中,表由行和列组成。
开发中,可能需要各种不同的表,有的表简单,有的表复杂,有的表读取快,有的读取数据慢,有的表更新快等。
根据对数据的不同的处理需求,使用不同的存储引擎,可以将MySQL数据库的性能发挥到最大。
查询MySQL数据库中的存储引擎:show engines;
mysql5.5 默认使用的存储引擎是:innodb
MyISAM:
MySQL默认数据库引擎,不支持事务、外键,速度快,用于无事务要求或者select、insert为主的场景。
会创建3个文件.frm(存储表定义),.MYD(MYData,存储数据),.MYI(MYIndex,存储引擎)。
支持3中存储格式,静态(固定长度)表,动态表,压缩表。
静态表是默认格式,固定长度速度快,但是占空间大。记录长度不够时会用空格填充,读取数据时会清除空格,存在吃尾部空格的情况。
动态表包含变长字段,记录不是固定长度,占用空间少,但是频繁更新和删除会产生随便,需要定期整理,并且在出现故障时恢复比较困难。
压缩表由mysiampack工具创建,空间小。
InnoDB:
提供了具有提交、回滚、崩溃恢复能力的事务安全,但是会占用更多空间用以保存数据和索引。
支持外键,创建外键的时候,要求父表必须有对应的碎银,子表在创建索引的时候也会自动创建对应的索引。
存储表和索引有两种方式,
使用共享表空间存储,表结构保存在.frm文件中,数据和索引在innodb_data_home_dir和innodb_data_file_path定义的表空间中,可以是多个文件。
使用多表空间存储,表结构保存在.frm文件中,每个表的数据和索引单独保存在.ibd中。
3、数据类型
日期
date 2019-3-20
datetime 2019-3-20 10:27:37
timestamp 时间戳,类datetime相似
数值
整型(整数)
int
浮点型(小数)
float
double
decimal(有效位,精度) decimal(5,2)
字符串
char(n) 固定
varchar(n) 可变
char(10)和varchar(10) 同时 存储 'abc',前者占用10个字符空间,后者占3个字符空间
text
详细请参照:https://www.cnblogs.com/-xlp/p/8617760.html
4、属性
主键:primary key
标识列(自增):auto_increment
唯一:unique
默认:default
非空:not null
外键:foreign key 外建名(字段名) references 主表(字段)
检查:check,MySQL没有实现check约束的功能,若要实现,可以使用后面学习的触发器
获取当前系统时间:now(),sysdate()