一步一步学MySQL----19 MySQL中的存储引擎和数据类型

存储引擎制定了表的类型,即如何存储和索引数据、是否支持事务等,同时存储引擎也决定了表在计算机中的存储方式。

19.1 查看MySQL5.5所支持的存储引擎

命令:

mysql> show engines;

这里写图片描述

也可以

mysql> show engines \G;

这里写图片描述
这里写图片描述

我们看到,MySQL 5.5版本支持9中存储引擎,分别为:PERFORMANCE_SCHEMAMRG_MYISAMCSVBLACKHOLEMEMORYInnoDBARCHIVEMyISAMFEDERATED

其中,

  • 参数Engine表示存储引擎名称;

  • 参数Support表示MySQL是否支持该存储引擎(YES表示支持、NO表示不支持、DEFAULT表示该存储引擎是数据库管理系统默认支持的存储引擎);

  • 参数Comment表示关于存储引擎的评论;

  • 参数Transactions表示存储引擎是否支持事务(YES表示支持、NO表示不支持);参数XA表示存储引擎所支持的分布式是否符合XA规范(YES表示符合、NO表示不符合);

  • 参数Savepoints表示存储引擎是否支持事务处理中的保存点(YES表示支持、NO表示不支持)。

通过执行结果,我们发现MySQL5.5默认的存储引擎为InnoDB存储引擎

19.2 查看MySQL5.5默认的存储引擎

命令:

mysql> show variables like ‘storage_engine%’;

这里写图片描述

说明:
如果想修改默认存储引擎,只需要修改配置文件my.ini,修改其中的[mysqld]组中的字段default-storage-engine

19.3 数据类型

MySQL查看数据类型命令:

mysql> help data types;

这里写图片描述

19.3.1 整数类型

整数类型字节最小值最大值
TINYINT1有符号:-128 无符号:0有符号:127 无符号:255
SMALLINT2有符号:-32768 无符号:0有符号:32767 无符号:65535
MEDIUMINT3有符号:-8388608 无符号:0有符号:8388607 无符号:1677215
INT和INTEGER4有符号:-2147483648 无符号:0有符号:2147483647 无符号:4294967295
BIGINT8有符号:-922……… 无符号:0有符号:922…….. 无符号:184……..

查看系统帮助

mysql> help contents;

说明:这条命令可以查看MySQL帮助文档支持的目录列表,然后根据需要查看的条目选择查看。

比如:输入help int即可查看int类型的帮助
这里写图片描述

19.3.2 浮点数、定点数类型

浮点数

浮点数类型字节最小值最大值
FLOAT4+1.75494351E - 38+3.402823466E + 38
DOUBLE8+2.2250738585072014E - 308+1.7976931348623157E + 308

定点数

定点数类型字节最小值最大值
DEC(M,D)和DECIMAL(M,D)M+2与DOUBLE相同与DOUBLE相同

19.3.3 位类型

位类型的使用方法如下:

(1) mysql> show databases; //查看数据库

这里写图片描述

(2) mysql> use databasetest; //先选择一个数据库

(3) mysql> create table bit_test(id bit(8)); //在选择的数据库中创建一个数据表

这里写图片描述

(4) mysql> show tables; //查看该数据库中数据表的情况

这里写图片描述

(5) mysql> insert into bit_test values (11), (b’11’); //向表bit_test中插入数据

这里写图片描述

注意:这里insert语句中,插入的第一个参数为十进制数字11,插入的第二个参数为二进制表示的数字“11”,即十进制数字3

(6) mysql> select id+0 from bit_test; //查看表中的数据(十进制显示)

这里写图片描述 这里写图片描述

(7) mysql> select bin(id+0) from bit_test; //查看表中的数据(二进制显示)

这里写图片描述

19.4 日期和时间类型

日期和时间类型字节最小值最大值
DATE41000-01-019999-12-31
DATETIME81000-01-01 00:00:009999-12-31 23:59:59
TIMESTAMP4197001010800012038年的某个时刻
TIME3-835:59:59838:59:59
YEAR119012155

日期和时间类型的使用方法如下:

(1) mysql> show databases; //查看数据库

这里写图片描述

(2) mysql>use databasetest; //先选择一个数据库
(3) mysql>create table d_test(f_date DATE, f_datetime DATETIME, f_timestamp TIMESTAMP, f_time TIME, f_year YEAR); //创建一个表

这里写图片描述

(4) mysql> show tables; //查看该数据库中数据表的情况

这里写图片描述

(5) mysql> select curdate(), now(), now(), time(now()), year(now()) \G //查看相关函数

这里写图片描述

(6) mysql> insert into d_test values(curdate(), now(), now(), time(now()), year(now())); //向表中插入数据

这里写图片描述

(7) mysql> select * from d_test \G //查看表中的数据

这里写图片描述

19.5 字符串类型

MySQL有多种表示字符串的数据类型

(1) CHAR系列字符串类型

CHAR系列字符串类型字节描述
CHAR(M)MM为0~255之间的整数
VARCHAR(M)MM为0~65535之间的整数

(2) TEXT系列字符串类型

TEXT系列字符串类型字节描述
TINYTEXT0~255值的长度为+2个字节
TEXT0~65535值的长度为+2个字节
MEDIUMTEXT0~167772150值的长度为+3个字节
LONGTEXT0~4294967295值的长度为+4个字节

(3) BINARY系列字符串类型

BINARY系列字符串类型字节描述
BINARY(M)M允许长度为0~M
VARBINARY(M)M 允许长度为0~M

(4) BLOB系列字符串类型

BLOB系列字符串类型字节
TINYBLOB0~255
BLOB0~216
MEDIUMBLOB0~224
LONGBLOB0~232

说明:
BLOB类型与TEXT类型比较相似,不同的是,BLOB类型可以存储二进制数据(如:图片、音乐或者视频文件),而TEXT类型只能存储字符数据。

字符串类型的使用方法如下:

(1) mysql> show databases; //查看数据库

这里写图片描述

(2) mysql> use databasetest; //先选择一个数据库

(3) mysql> create table user(id INT, name VARCHAR(20)); //创建一个user表,含有VARCHAR类型,长度为20

这里写图片描述

(4) mysql> show tables; //查看该数据库中数据表的情况

这里写图片描述

(5) mysql> insert into user values(1, ‘bob’),(2,’jack’),(3,’sdadjsahdcajsdcfksdkfjasdfjaskfjdashvdaskj’); //向user表中插入数据

这里写图片描述

注意:这里出现了一个警告,这是由于插入的第3个数据的name值超过了字符串的长度

(6) mysql> show warnings; //查看警告

(7) mysql> select * from user; //查看表中的数据

这里写图片描述

我们看到,如果输入的字符串的长度超过了字符串定义的长度,字符串会被截断并显示警告信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值