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
posted @ 2021-10-27 11:18  心向未来  Views(24)  Comments(0)    收藏  举报