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

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

命令: mysql> show engines;

这里写图片描述

也可以 mysql> show engines \G;

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

我们看到,MySQL 5.5版本支持9中存储引擎,分别为:PERFORMANCE_SCHEMA、MRG_MYISAM、CSV、BLACKHOLE、MEMORY、InnoDB、ARCHIVE、MyISAM、FEDERATED。
其中,

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

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

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

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

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

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

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

命令: mysql> show variables like ‘storage_engine%’;

这里写图片描述

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

3.3 数据类型

MySQL查看数据类型命令: mysql> help data types;

这里写图片描述

3.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……..

3.3.2 查看系统帮助

命令: mysql> help contents;

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

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

3.3.3 浮点数、定点数类型

(1)浮点数

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

(2)定点数

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

3.3.4 位类型

位类型字节最小值最大值
BIT(M)1~8BIT(1)BIT(64)

位类型的使用方法如下:

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; //查看表中的数据(二进制显示)

这里写图片描述

3.3.5 日期和时间类型

日期和时间类型字节最小值最大值
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 //查看表中的数据

这里写图片描述

3.3.6 字符串类型

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; //先选择一个数据库

这里写图片描述

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; //查看表中的数据

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值