MySql基础知识----数据类型

1.整数类型:


整数类型 字节 最小值 最大值
TINYINT 1

有符号:-128,无符号:0

有符号127,无符号255
SMALLINT 2 有符号:-32768,无符号:0 有符号:32767,无符号:65535
MEDIUMINT 3 有符号:-8388608,无符号:0 有符号:8388607,无符号:1677215
INT和INTEGER 4 有符号:-2147483648,无符号:0 有符号:2147483647,无符号:4294967295
BIGINT 8 有符号:-9223372036854775808,无符号:0

有符号:9223372036854775807

无符号:18446744073709551615


注:可以通过mysql的帮助系统查看各个类型的取值范围:

mysql> help INT
Name: 'INT'
Description:
INT[(M)] [UNSIGNED] [ZEROFILL]

A normal-size integer. The signed range is -2147483648 to 2147483647.
The unsigned range is 0 to 4294967295.

URL: http://dev.mysql.com/doc/refman/5.7/en/numeric-type-overview.html


2.    浮点数类型,定点数类型和位类型

2.1 浮点数类型

浮点数类型 字节 最小值 最大值
FLOAT 4   

±1.75494351E-38

±3.402823466E+38

DOUBULE 8

±2.2250738585072014E-308

±1.7976931348623157E+308


2.2 定点数

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

DEC和DECMIAL两个定点数类型时候同名词,取值范围与DOUBLE相同,但是有效取值大范围有M和D决定。

2.3 位类型

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

3. 日期和时间类型

日期和时间类型 字节数 最小值  最大值
DATE 4 1000-01-01 9999-12-31
DATETIME 8 1000-01-01 00:00:00 9999-12-31 23:59:59
TIMESTAMP 4 19700101080001 2038年的某个时刻
TIME 3 -835:59:59 838:59:59
YEAR 1 1901 2155

注意:每种日期和时间数据类型都有一个取值范围,若插入的数据超过该取值范围,则会插入默认值。

各个日期和时间类型的应用场合如下:

(1)如果要表示年月日,一般会使用DATE类型

(2)如果要表示年月日时分秒,一般会使用DATETIME类型

(3)如果需要经常插入或者更新日期为当前系统时间,一般会使用TIMESTAMP类型

(4)如果要表示时分秒,一般用TIME类型

(5)如果要表示年份,一般会用YEAR,因为该类型比DATE类型占有更少的空间


4. 字符串类型

4.1 CHAR系列字符串类型

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

存储少量字符串,可以选择CHAR或者VARCHAR,至于选择哪一个,则需要判断所存储字符串长度是否经常变化,如果经常变化,则可以选这VARCHAR,否则选CHAR。


4.2 TEXT系列字符串类型

TEXT系列字符串类型 字节 描述
TINYTEXT 0~255 值的长度为±2个字节
TEXT 0~65535 值的长度为±2个字节
MEDIUMTEXT 0~167772150 值的长度为±3个字节
LONGTEXT 0~4294967295 值的长度为±4个字节

如果需要存储大量字符串(例如文章内容的纯文本),则可以选择TEXT系列的字符串。


4.3 BINARY系列字符串类型

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

如上表中两个字符串类型与CHAR字符串类型十分相似,不同的是,前者可以上表中的类型可以存储二进制数据(例如图片,音乐或者视频文件),而后者只能存储字符数据。注意,上表中的字符串类型只适合存储少量的二进制数据,至于选哪一种数据类型进行存储,则需要判断存储的二进制数据是否经常变化,如果经常发生变化可以选择VARBINARY,否则选择BINARY。


4.4 BOLOB系列字符串类型

BLOB系列字符串类型 字节
TINYBLOB 0~255
BLOB 0~2^16
MEDIUMBLOB 0~2^24
LONGBLOB 0~2^32
上述表格中的字符串数据类型适合存储大量二进制数据,例如电影等视频文件。

猜你喜欢

转载自blog.csdn.net/purple7826/article/details/80261997