mysql(二)存储引擎和数据类型
2016-08-17 23:31
603 查看
存储引擎:
1. 查看支持的存储引擎:
show engines \G;
show variables like ‘have%’;
2. 查看默认存储引擎:
show variables like ‘storage_engine%’;
3. 修改默认的存储引擎:
① 安装版可以通过向导的方式:
”开始”—> “程序” —> “MySQL” —> “MySQL Server 5.5” —> “MySQL Server Instance Configuration Wizard”,进入图形化实例配置向导的欢迎页面。在图形化实例配置向导中,选择单击”next”按钮,进入”MySQL选择用途类型”,在该页面中如果选择”Multifunctional Database”单选按钮,则默认存储引擎为InnoDB。如果选择”Non-Transaction Database Only”单选按钮,则默认为存储引擎为MyISAM。
② 安装版或者免装版另一种修改默认引擎的方式:
打开my.ini配置文件,关于[mysqld]组的内容中添加配置 default-storage-engine=INNODB
数据类型:
数据库管理系统提供了 整数类型、浮点数类型和定点数类型和位类型、日期和时间类型、字符串类型。
整数类型:
tinyint(1字节) smallint(2字节) mediumint(3字节) int和integer(4字节) bigint(8字节)
如果无法区分各个整数的表示范围,可以通过查看mysql的系统帮助查看相关信息。
mysql> help contents;
mysql> help Data Types;
mysql> help int;
浮点数类型、定点数类型、位类型:
浮点数类型:float(4字节) double(8字节) 如果需要精确到小数点后十位以上,就需要选择double
定点数类型:dec(M,D)(M+2字节) decimal(M,D)(M+2字节)
要求小数精确度非常高时选择,通常表示金额等优先选择decimal
位类型:bit(1-8字节)
说明:decimal(18,4)总长18位,包括1位小数点和4位小数,也就是说18-1-4=13整数位只有13位 M:总长度 D:小数的位数
日期和时间类型:
data(4字节)
datatime(8字节)
timestamp(4字节)
time(3字节)
year(1字节)
每种日期和时间数据类型都有一个取值范围,如果插入的值超过了该类型的取值范围,则会插入默认值。
如果要表示年月日,一般会使用date
如果要表示年月日时分秒,一般会使用datetime
如果需要经常插入或者更新日期为当前系统时间,一般会使用timestamp类型
如果要表示时分秒,一般会使用time
如果要表示年份,一般会使用year,因为该类型比date占用更少的空间
字符串类型:
char系列字符串:
char(M) M字符 M为1—255之间的整数
varchar(M) M字符 M为1-65535之间的整数 长度是可变的
备注:UTF-8:一个汉字 = 3个字节,英文是一个字节;GBK: 一个汉字 = 2个字节,英文是一个字节
详细介绍了varchar,参见该文: https://ruby-china.org/topics/24920
text系列字符串类型:
tinytext (1-255字符)
text(1-65535字符)
mediumtext(1-167772150字符)
longtext(1-4294967295字符)
binary系列字符串类型:
binary(M) M为字节 允许长度为1-M
varbinary(M) M为字节 允许长度为1-M
备注:这两个和前面的char 和 varchar类型,区别是char这组存储字符数据,binary可以存储二进制数据(图片、音乐、视频)
blob系列字符串类型:
tinyblob 1-255字节
blob 1-2的16次方
mediumblob 1-2的24次方
longblob 1-2的32次方
备注:这组和text类型,区别是这组可以存储二进制数据(图片、音乐、视频),text的一组只能存储字符数据
1. 查看支持的存储引擎:
show engines \G;
show variables like ‘have%’;
2. 查看默认存储引擎:
show variables like ‘storage_engine%’;
3. 修改默认的存储引擎:
① 安装版可以通过向导的方式:
”开始”—> “程序” —> “MySQL” —> “MySQL Server 5.5” —> “MySQL Server Instance Configuration Wizard”,进入图形化实例配置向导的欢迎页面。在图形化实例配置向导中,选择单击”next”按钮,进入”MySQL选择用途类型”,在该页面中如果选择”Multifunctional Database”单选按钮,则默认存储引擎为InnoDB。如果选择”Non-Transaction Database Only”单选按钮,则默认为存储引擎为MyISAM。
② 安装版或者免装版另一种修改默认引擎的方式:
打开my.ini配置文件,关于[mysqld]组的内容中添加配置 default-storage-engine=INNODB
数据类型:
数据库管理系统提供了 整数类型、浮点数类型和定点数类型和位类型、日期和时间类型、字符串类型。
整数类型:
tinyint(1字节) smallint(2字节) mediumint(3字节) int和integer(4字节) bigint(8字节)
如果无法区分各个整数的表示范围,可以通过查看mysql的系统帮助查看相关信息。
mysql> help contents;
mysql> help Data Types;
mysql> help int;
浮点数类型、定点数类型、位类型:
浮点数类型:float(4字节) double(8字节) 如果需要精确到小数点后十位以上,就需要选择double
定点数类型:dec(M,D)(M+2字节) decimal(M,D)(M+2字节)
要求小数精确度非常高时选择,通常表示金额等优先选择decimal
位类型:bit(1-8字节)
说明:decimal(18,4)总长18位,包括1位小数点和4位小数,也就是说18-1-4=13整数位只有13位 M:总长度 D:小数的位数
日期和时间类型:
data(4字节)
datatime(8字节)
timestamp(4字节)
time(3字节)
year(1字节)
每种日期和时间数据类型都有一个取值范围,如果插入的值超过了该类型的取值范围,则会插入默认值。
如果要表示年月日,一般会使用date
如果要表示年月日时分秒,一般会使用datetime
如果需要经常插入或者更新日期为当前系统时间,一般会使用timestamp类型
如果要表示时分秒,一般会使用time
如果要表示年份,一般会使用year,因为该类型比date占用更少的空间
字符串类型:
char系列字符串:
char(M) M字符 M为1—255之间的整数
varchar(M) M字符 M为1-65535之间的整数 长度是可变的
备注:UTF-8:一个汉字 = 3个字节,英文是一个字节;GBK: 一个汉字 = 2个字节,英文是一个字节
详细介绍了varchar,参见该文: https://ruby-china.org/topics/24920
text系列字符串类型:
tinytext (1-255字符)
text(1-65535字符)
mediumtext(1-167772150字符)
longtext(1-4294967295字符)
binary系列字符串类型:
binary(M) M为字节 允许长度为1-M
varbinary(M) M为字节 允许长度为1-M
备注:这两个和前面的char 和 varchar类型,区别是char这组存储字符数据,binary可以存储二进制数据(图片、音乐、视频)
blob系列字符串类型:
tinyblob 1-255字节
blob 1-2的16次方
mediumblob 1-2的24次方
longblob 1-2的32次方
备注:这组和text类型,区别是这组可以存储二进制数据(图片、音乐、视频),text的一组只能存储字符数据
相关文章推荐
- MySQL常用DDL
- Mysql用户权限管理
- 初始化 mysql时报错
- 安装MYSQL5.7.14遇上的那些小事~
- MySQL 常用命令详解
- 使用cmake安装mysql5.5.13
- mysql5.6 中文乱码问题
- Mysql 查询缓存
- 【MySQL】MySQL快速插入大量数据
- nodejs 连接MySQL数据库及插入数据遇见的问题总结
- MySQL中的行级锁SELECT FOR UPDATE 和LOCK IN SHARE MODE 区别
- ubuntu zabbix 迁移mysql到新硬盘
- MySQL进阶路:从小工到专家的必读书籍和必备工具
- mysql 数据列按照逗号转成行
- windows下mysql互为主从(主主复制)
- 909422229__Mysql全部精华总结
- Mysql 主从出现故障
- mysql-innodb事务隔离级别
- MySql笔记1
- MySQL 预处理语句prepare、execute、deallocate的使用