MySQL学习--数据类型(三)
MySQL -- 数据类型(三)
1、概述图

2、类型介绍
在数据库中创建表的时候,需要给每一个字段都要指定数据类型,以便限制在列中存储对应的数据类型的值,保证数据的安全性以及程序功能的正确执行。在设计表的时候,特别要注意数据类型的使用,使用错误的数据类型可能会严重的影响应用程序的功能和程序,同时,改变已有数据的表的字段的数据类型很可能会造成数据的丢失。
2.1、字符串类型
字符串类型可以分为两类:定长类与可变长类。
表-1 字符串数据类型
| 数据类型 | 说明 |
| CHAR | 1~255个字符的定长串。它的长度必须在创建的时候指定,否则MySQL会假定CHAR(1)。 |
| VARCHAR | 长度可变,长度最多不超过255字节。如果在创建的时候指定VARCHAR(n),则可以存储0~n的字节的可变长字符串。 |
| ENUM | 接受最多64K个串组成的一个预定义的集合的某个串。 |
| TINYTEXT | (小文本)与TEXT相同,但最大的长度为255个字节。 |
| TEXT | (文本)最大长度为64K的变长文本。 |
| MEDIUMTEXT | (中文本)与TEXT相同,但最大长度为16K。 |
| LONGTEXT | (长文本)与TEXT相同,但最大长度为4GB。 |
| SET | 接受最多64个串组成的一个预定义的集合的零个或多个串。 |
2.2、数值类型
数值类型分为两类:整数类型与浮点类型。MySQL支持多种数值数据类型,每一种的数值都可以有不同的取值范围。当然了,设置的取值范围越大,所需要的内存空间也就会越大,如何具体的使用数值类型,还是一个注意点,有的数值支持十进制,有的数据只是支持整数存储。
|
注意点:有符号与无符号数值。所有的数值数据类型(出BIT和BOOLEAN外)都可以有符号或无符号。有符号数值列可以存储正或负的数值,无符号数值列只能存储正数。默认情况下为有符号的,但如果自己不需要进行存储负值的话,可以使用UNSIGNED关键字,这样做将允许存储两倍大小的值。 |
表-2 数值数据类型
| 数据类型 | 说明 |
| TINYINT | 整数值,支持-128~127(如果设置了UNSIGNED关键字),则存储支持0~255范围的数值。 |
| SMALLINT | 整数值,支持-32768~32767(如果设置了UNSIGNED关键字),则存储支持0~65535的数值。 |
| MEDIUMINT | 整数值,支持-8388608~8388607(如果设置了UNSIGNED关键字),则存储支持0~16777215的数值。 |
| INT | 整数值,支持-2147483648~2147483647(如果设置了UNSIGNED关键字),则存储0~4294967295的数值。 |
| BIGINT | 整数值,支持-9223372036854775808~9223372036854775807(如果设置了UNSIGNED关键字),则存储0~18446744073709551615的数值。 |
| FLOAT | 单精度浮点值。 |
| DOUBLE | 双精度浮点值。 |
| DECIMAL | 精度可变的浮点值。 |
| BIT | 位字段,1~64位,(MySQL5之前,BIT在功能上等价于TINYINT)。 |
| BOOLEAN | 布尔标志,或者为0或者为1,主要用于开、关标志。 |
| REAL | 4字节的浮点值。 |
| 存储货币数据类型:MySQL不像Oracle数据库,没有专门的类型用于存储货币类型,但是一般情况下,使用DECIMAL(8,2)也是可以的。 |
2.3、日期时间数据类型
MySQL使用专门的日期时间来存储时间值。
表-3 日期和时间数据类型
| 数据类型 | 说明 |
| DATE | 表示1000-01-01~9999-12-31 的日期,格式为YYYY-MM-DD。 |
| DATETIME | DATE和TIME的组合。 |
| TIMESTAMP | 功能和DATE相同(但是范围小点)。 |
| TIME | 格式为:HH:MM:SS。 |
| YEAR | 用两位数来表示,范围是70(1970年)~ 69(2069年),用四位数表示的话,范围是1901 ~ 2155年。 |
2.4、二进制数据类型
二进制数据类型可以存储任何数据(甚至包括二进制信息),如:图像、视频、字处理文档等等。
表-4 二进制数据类型
| 数据类型 | 说明 |
| TINYBLOB | Blob长度最大为255字节。 |
| MEDIUMBLOB | Blob长度最大为16MB |
| BLOB | Blob长度最大为64KB |
| LONGBLOB | Blob长度最大为4GB |

浙公网安备 33010602011771号