MySQL_数据类型

版权声明:由于作者水平有限,文中难免有误,欢迎各位业界同仁斧正! https://blog.csdn.net/UserPython/article/details/82776681


数据类型是指数据列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型

整型

数据类型 取值范围 说明 字节
TINYINT 有符号值:-127~127
无符号值:0~255
最小的整数 1字节
BIT 有符号值:-127~127
无符号值:0~255
最小的整数 1字节
BOOL 有符号值:-127~127
无符号值:0~255
最小的整数 1字节
SMALLINT 有符号值:-32 768 ~32 767 小型整数 2字节
MEDIUMINT 有符号值:-8 388 608~8 388 607
无符号值:0~16 777 215
中型整数 3字节
INT 有符号值:-2 147 683 648~2 147 683 647
无符号值:0~4 294 967 295
标准整数 4字节
BIGINT 有符号值:-9 223 372 036 854~9 223 372 036 854 775 807
无符号值:0~18 446 744 073 709 551 615
大整数 8字节

浮点型和定点数

  • MySQL中使用浮点数和定点数来表示小数
数据类型 取值范围 说明 字节
FLOAT -3.402823464E+38到1.175494351E-38 、0和
1.175494351E-38到3.402823466E+38
单精度浮点数 4字节
DOUBLE +(-) 1.797 693 134 862 315 7E+308、0和
+(-) 2.225 073 858 507 201 4E+308
双精度浮点数 8字节
DECIMAL(n, m) 表示树脂中共有n位数,其中整数n-m位,小数m
例:decimal(10, 6), 数值中共有10位数,其中整数占4位,小数占6位
定点数类型 自定义长度

日期时间型

类型 取值范围 表达形式 字节
YEAR 1901~2155 YYYY 1
TIME -838:59:59~838:59:59 HH:MM:SS 3
DATE 1000-01-01~9999-12-31 YYYY-MM-DD
DATETIME 1000-01-01 00:00:00~9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 8
TIMESTAMP 1970010180001~20380119111407 YYYY-MM-DD HH:MM:SS 4

字符型

  • 字符串类型用来存储字符串数据,除了可以存储字符串数据之外,还可以存储其他数据,比如图片和声音的二进制数据
类型 存储需求 说明
CHAR(M) M 个字节, 0 <= M <= 255 M是定长,在创建时就固定长度(一个字节存储一个汉字)
VARCHAR(M)1 L + 1个字节,其中L<=M且0<=M<=65535 L为实际使用字符的范围
TINYTEXY 0~255 一般储存比较大的文本,如一篇文章
TEXT 0~65535
MEDIUMTEXT 0 - 224 -1
LONGTEXT 0 - 223 - 1
ENUM(‘value1’, ‘value2’, …) 取决于枚举值得个数(最多65,535)例:性别 enum(男,女) 只能选择一个值
SET(‘value’, ‘value2’, …) 取决于set成员的数目(最多64个成员) 可以取多个值

  1. 假如你向一个长度为四十个字符的VARCHAR型字段中输入数据Bill Gates。当你以后从这个字段中取出此数据时,你取出的数据其长度为十个字符——字符串Bill Gates的长度。 假如你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取出数据时,所取出的数据长度将是四十个字符。字符串的后面会被附加多余的空格。
    当你建立自己的站点时,你会发现使用VARCHAR型字段要比CHAR型字段方便的多。使用VARCHAR型字段时,你不需要为剪掉你数据中多余的空格而操心。
    VARCHAR型字段的另一个突出的好处是它可以比CHAR型字段占用更少的内存和硬盘空间。当你的数据库很大时,这种内存和磁盘空间的节省会变得非常重要.
    虽然VARCHAR使用起来较为灵活,但是从整个系统的性能角度来说,CHAR数据类型的处理速度更快,有时甚至可以超出VARCHAR处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡。 ↩︎

猜你喜欢

转载自blog.csdn.net/UserPython/article/details/82776681