数据库
首页 > 数据库> > MySQL基础之数据类型

MySQL基础之数据类型

作者:互联网

概述

非常基础的知识点,避免每次搜索网络资源,然后甄选辨别真伪,故记录于此。

MySQL的整型类型有5种,type(M),M表示最大显示宽度,每种类型有默认的最大显示宽度,建表时若设置zerofill(0填充),会在数字前面补充0:

类型占用字节最大显示宽度(默认值)
tinyint1tinyint(4)
smallint2smallint(6)
mediumint3mediumint(9)
int4int(11)
bigint8bigint(20)

类型决定存储需要占用多少字节。

tinyint

从 -2^7 (-128) 到 2^7 - 1 (127) 的整型数据。存储大小为 1 个字节。
unsigned 是从 0 到 255 的整型数据。
建表时只能是tinyint(3),最大只支持3位,当然支持你建表语句写其他位数;

smallint

从 -2^15(-32768) 到 2^15 - 1 (32767) 的整型数据。存储大小为 2 个字节。
unsigned 是从 0 到 65535 的整型数据。
建表时只能是smallint(5),最大只支持5位。

mediumint

从 -2^23(-8 388 608) 到 2^23- 1 (8388607) 的整型数据。存储大小3字节。
unsigned范围:0~16777215。
建表时只能是smallint(5),最大只支持5位。

int

从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字),存储大小为 4 个字节。
unsigned 是从 0 到 4294967296 的整型数据。
建表时只能是int(10),最大只支持10位。

bigint

从 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807) 的整型数据(所有数字)。存储大小为 8 个字节。
unsigned 是
建表时只能是bigint(20),最大只支持20位。

注意

MySQL提供五种整型: tinyint、smallint、mediumint、int和bigint。int,即integer。这些类型在可表示的取值范围上是不同的。 整数列可定义为unsigned从而禁用负值;这使列的取值范围为0以上。各种类型的存储量需求也是不同的。取值范围较大的类型所需的存储量较大。

char、varchar

char、varchar的长度是指字符的长度,如CHAR[3]则只能放字符串"123",如果插入数据"1234",则报错:Data truncation: Data too long for column '' at row 1

float、double和decimal

MySQL提供三种浮点类型: float、double和decimal。与整型不同,浮点类型不能是unsigned的,其取值范围也与整型不同,这种不同不仅在于这些类型有最大值,而且还有最小非零值。最小值提供相应类型精度的一种度量,这对于记录科学数据来说是非常重要的(当然,也有负的最大和最小值)。

float(Length, Decimals),4字节;
double(Length, Decimals),8字节;
decimal(Length, Decimals),Length+1字节或Length+2字节,存储为字符串的DOUBLE,允许固定的小数点。

date、datetime、timestamp、time

DATE,3字节,采用YYYY-MM-DD格式
DATETIME,8字节,采用YYYY-MM-DD HH:MM:SS格式
TIMESTAMP,4字节,采用YYYYMMDDHHMMSS格式;可接受的范围终止于2037年
TIME,3字节,采用HH:MM:SS格式

enum、set

ENUM,1或2字节,Enumeration,枚举,这意味着每一列都可以具有多个可能的值之一
SET,1、2、3、4或8字节,与ENUM一样,只不过每一列都可以具有多个可能的值

标签:存储,字节,建表时,数据类型,基础,unsigned,Length,整型,MySQL
来源: https://blog.csdn.net/lonelymanontheway/article/details/116332407