MySQL数据库学习四 存储引擎和数据类型
2015-06-10 13:40
190 查看
4.1存储引擎
1. 查看MySQL DBMS所支持的存储引擎
Yes表示支持,No表示不支持,DISABLED表示支持但是未开启。
2. 查询默认存储引擎
3. 修改默认存储引擎
打开my.ini配置文件,修改[mysqld]中的default-storage-engine参数,重启MySQL服务。
4.2 数据类型
4.2.1 整数类型
支持标准SQL中的所有整数类型(SMALLINT和INT/INTEGER),扩展增加了TINYINT、MEDIUMINT和BIGINT。
TINYINT类型占一个字节,最大值二进制:01111111,即127;最小值二进制:10000000,即-128.
4.2.2 浮点数类型、定点数类型和位类型
1. 浮点型类型FLOAT、DOUBLE
当需要精确到小数点后10位以上,需要选择DOUBLE类型。
2. 定点数类型DEC(M,D)
FLOAT、DOUBLE数据类型存储数据时存储的是近似值,而DECIMAL存储的是字符串,因此提供了更高的精度。
3. 位类型BIT(M)
位类型的字节数为M,M的取值范围为1~8.
4.2.3 日期和时间类型
如果需要经常插入或者更新日期为当前系统时间,一般会使用TIMESTAMP类型;
如果要表示年份,一般会使用占用空间更少的YEAR类型。
4.2.4 字符串类型
1. CHAR系列
如果要存储少量字符串,则可以选择CHAR和VARCHAR类型。如果存储字符串长度经常发生变化,则可以选择VARCHAR类型,否则选择CHAR类型。
2. TEXT系列
如果需要存储大量字符串(存储文字内容的纯文本),则可以选择TEXT系列字符串类型。
3. BINARY系列
如果需要存储少量二进制数据,可以选择BINARY和VARBINARY类型。如果存储二进制数据长度的发生变化,则可以选择VARBINARY类型,否则选择BINARY类型。
前者可以存储二进制数据(例如图片、音乐或视频文件),后者只能存储字符数据。
4. BLOB系列
如果需要存储大量二进制数据(电影等视频文件),则可以选择BLOB系列字符串类型。
1. 查看MySQL DBMS所支持的存储引擎
SHOW ENGINES;
SHOW VARIABLES LIKE 'have%';
Yes表示支持,No表示不支持,DISABLED表示支持但是未开启。
2. 查询默认存储引擎
SHOW VARIABLES LIKE 'storage_engine%';
3. 修改默认存储引擎
打开my.ini配置文件,修改[mysqld]中的default-storage-engine参数,重启MySQL服务。
4.2 数据类型
4.2.1 整数类型
支持标准SQL中的所有整数类型(SMALLINT和INT/INTEGER),扩展增加了TINYINT、MEDIUMINT和BIGINT。
整数类型 | 字节 | 最小值 | 最大值 |
TINYINT | 1 | -128 0 | 127 255 |
SMALLINT | 2 | -2^15 0 | 2^15-1 2^16-1 |
MEDIUMINT | 3 | -2^23 0 | 2^23-1 2^24-1 |
INT/INTEGER | 4 | -2^31 0 | 2^31-1 2^32-1 |
BIGINT | 8 | -2^63 0 | 2^63-1 2^64-1 |
4.2.2 浮点数类型、定点数类型和位类型
1. 浮点型类型FLOAT、DOUBLE
浮点型类型 | 字节 | 最小值 | 最大值 |
FLOAT | 4 | ±1.75494351E-38 | ±3.402823466E+38 |
DOUBLE | 8 | ±1.225073858072014E-308 | ±1.7976931348623157E+308 |
2. 定点数类型DEC(M,D)
定点数类型 | 字节 | 最小值 | 最大值 |
DEC(M,D)/DECIMAL(M,D) | M+2 | 与DOUBLE相同 | 与DOUBLE相同 |
3. 位类型BIT(M)
位类型 | 字节 | 最小值 | 最大值 |
BIT(M) | 1~8 | BIT(0) | BIT(64) |
4.2.3 日期和时间类型
日期和时间类型 | 字节 | 最小值 | 最大值 |
DATE | 4 | 1000-01-01 | 9999-12-31 |
DATETIME | 8 | 1000-01-01 00:00:00 | 9999-12-31 23:59:59 |
TIMESTAMP | 4 | 19700101080001 | 2038年的某个时刻 |
TIME | 3 | -835:59:59 | 838:59:59 |
YEAR | 1 | 1901 | 2155 |
如果要表示年份,一般会使用占用空间更少的YEAR类型。
4.2.4 字符串类型
1. CHAR系列
CHAR系列字符串类型 | 字节 | 描述 |
CHAR(M) | M | M为0~255之间的整数 |
VARCHAR(M) | M | M为0~65535之间的整数 |
2. TEXT系列
TEXT系列字符串类型 | 字节 | 描述 |
TINYTEXT | 0~255 | 值的长度为2个字节 |
TEXT | 0~65 535 | 值的长度为2个字节 |
MEDIUMTEXT | 0~16 777 215 | 值的长度为4个字节 |
LONGTEXT | 0~4 294 967 295 | 值的长度为8个字节 |
3. BINARY系列
BINARY系列字符串类型 | 字节 | 描述 |
BINARY(M) | M | 允许长度为0~M |
VARBINARY(M) | M | 允许长度为0~M |
前者可以存储二进制数据(例如图片、音乐或视频文件),后者只能存储字符数据。
4. BLOB系列
BLOB系列字符串类型 | 字节 |
TINYBLOB | 0~255 |
BLOB | 0~2^16-1 |
MEDIUMBLOB | 0~2^24-1 |
LONGBLOB | 0~2^32-1 |
相关文章推荐
- mysql备份恢复
- MySQL能支持多大的数据量
- 解决mysql"Access denied for user'root'@'IP地址'"问题
- mysql IF()特殊用法
- mysql—join
- mysql enterprise backup入门使用
- MySQL中的string类型
- Liunx下修改MySQL字符集
- mysql 创建用户并授权
- 修改MYSQL数据库表的字符集
- mysqldump: Error: Binlogging on server not active
- mysql5.6中 order by 多个字段排序问题
- 《mysql 必知必会》学习笔记(三)
- MySqlDataReader在Using中使用
- MySQL主从复制----半同步与异步的配置
- MySQL子查询的优化
- MySQL数据库服务器整体规划(方法论)
- MySQL体系结构浅析
- 浅析MySQL事务隔离级别对其性能的影响
- MySQL数据库学习三 数据库对象和基本操作