MySql教程

mysql 从入门到精通笔记-第五章 存储引擎和数据类型

本文主要是介绍mysql 从入门到精通笔记-第五章 存储引擎和数据类型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
5.1 MySQL存储引擎 存储引擎是如何存储数据、如何为存储的数据建立索引、更新索引、查询数据的技术的实现方法。 关系型数据库中,数据是按照表进行存储的,所以存储引擎也称为表类型(存储+操作此表的类型)。
  • Oracel + sql server只有一种存储类型。
  • MySQL 具有多个存储引擎,用户可以为不同需求选择、编写存储引擎。
  1、show engines\g; 来查询当前数据库使用的存储引擎。   可以看到当前默认的是InnoDB   2、查询默认的存储引擎     5.1.1 InnoDb 存储引擎 1、支持自动增长列 AUTO_INCREMENT ,不能为空,并且为主键; 2、支持外键(foreign key) ;   优点:
  • 更新密集,适合处理多重并发更新请求;
  • 事务;
  • 自动灾难恢复,能从自动灾难中恢复;
  5.1.2 MyISAM 存储引擎
  • mysql 5.5之前版本默认的存储引擎;
  • 优点:。。。。
  • 缺陷:占用空间小、处理速度快、不支持十五完整性和并发性;
  5.1.3 Memory存储引擎
  • 设计是为了速度;
  • 用于存储临时数据;
  • 但是如果mysqld崩溃,所有数据丢失;
查看数据库存储位置:   5.2 MySql 数据类型 5.2.1 数字类型 主要为整型 + 浮点型 TINYINT : -127~127  或者 0~255  BIT         :-127~127 或者 0~255 BOOL     : SMALLINT : -32768-32768 或者 0-65535 MEDIUMINT :-8388608 -~8388607 或者 0~16777215 INT :-2147683648 ~2147683647   或者 -~4294967295 BIGINT:8字节  最大2^64-1 FLOAT:8或者4字节 DOUBLE:8字节 DECEMAL:长度自定义   5.2.2 字符串类型 文本字符串 创建表声明的长度:
  • char 1   255字符
  • varchar  255字符
CHAR类型是定长的,MySQL总是根据定义的字符串长度分配足够的空间。当保存CHAR值时,在它们的右边填充空格以达到指定的长度,当检索到CHAR值时,尾部的空格被删除掉。 VARCHAR类型用于存储可变长字符串,存储时,如果字符没有达到定义的位数,也不会在后面补空格。但是,由于行是变长的,在UPDATE时可能使行变得比原来更长,这就导致需要做额外的工作。如果一个行占用的空间增长,并且在页内没有更多的空间可以存储,在这种情况下InnoDB需要分裂页来使行可以放进页内,这样会增加碎片。   可变类型:
  • text : 存储长文本 tinytext 8位 ,text16位 longtext 32位
  • blob: 存储二进制数据 图片、声音、图像等等 tinyblob 、mediumblob、longblob
  特殊类型:
  • set    :容纳一组值或者null,最大64
  • enum :枚举,只能容纳指定的值或者null ,最大65535
  适用场景: 1、速度方面考虑,使用char 2、节省空间使用vchar 3、列中的内容限制在一种选择,使用enum; 4、搜索内容不区分大小,使用text; 5、内容却分大小写使用blob   5.2.3 日期 和时间类型
  • datetime:YYYY-MM-DD HH:MM:SS
  • date : 日期格式 YYYY-MM-DD
  • timstamp :YYYY-MM-DD HH:MM:SS 需要设定时区,默认为UTC时区,可以使用SET TIMEZONE='+03:00';
  • time : HH:MM:SS
  • year: 范围1901-2155
每个类型都有取值范围,如果赋予一个非法值,将会使用0代替。
这篇关于mysql 从入门到精通笔记-第五章 存储引擎和数据类型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!