【MySQL从入门到精通】:SQL的数据类型

前言
作者简介:大家好,我是翼同学,一名大学生。
个人主页:翼同学的CSDN博客
系列专栏:【MySQL从入门到精通】---- 持续更新
备注:如果文章有误,请指正,万分感谢!让我们一起学习,一起进步。
✅最后:如果文章对您有帮助,请三连支持一下博主哦。

目录

  • 1.概述
  • 2.数值类型
    • 2.1.整数类型
    • 2.2.浮点数类型
    • 2.3.定点数类型
  • 3.字符串类型
    • 3.1.CHAR类型
    • 3.2.TEXT类型
    • 3.3.BLOB类型
    • 3.4.BINARY类型
  • 4.日期和时间类型
    • 4.1.DATE类型
    • 4.2.TIME类型
    • 4.3.DATETIME类型
    • 4.4.TIMESTAMP类型
    • 4.5.YEAR类型
  • 5.小结

1.概述

数据类型指的是当我们在数据库里创建一个表时,用于存储什么样的数据。

在实际开发过程中,选择合适的数据类型,可以提高数据库性能,因此我们必须了解SQL的数据类型。

MySQL支持所有标准的 SQL 数据类型,大致可分为三种:

  • 数值型
  • 字符串类型
  • 日期和时间型

声明:

之前已经讲过,SQL不区分大小写


2.数值类型

2.1.整数类型

整数类型存储整数

其关键字分别为:

  • TINYINT----(tinyint)----1字节
  • SMALLINT----(smallint)----2字节
  • MEDIUMINT----(mediumint)----3字节
  • INT----(int)----4字节
  • BIGINT----(bigint)----8字节

2.2.浮点数类型

浮点数类型是近似值类型,会四舍五入,所以有时会有误差。

其关键字分别是:

  • FLOAT----(float)----4字节
  • DOUBLE----(double)----8字节

2.3.定点数类型

定点数类型是精确值类型,当我们想避免误差时可以使用定点数类型。

其关键字是:

DECIMAL----(decimal)----decimal(M,D)----M为精度,D为标度
注:M表示整数位 + 小数位,D表示位于 . 后面的小数位数


3.字符串类型

在MySQL里,我们使用单引号或双引号来把字符串类型的字段值括起来,这使得我们能更加灵活地保存数据。

如果我们想保存的数据记录里既有单引号又有双引号,这时我们可以使用转义字符反斜杠" \ "进行转义。

下面我们看看具体的字符串关键字


3.1.CHAR类型

  • CHAR----(char)----范围0~255
  • VARCHAR----(varchar)----范围0~65535

这两种数据类型很相似,区别:

  • 存储的方式不同
  • 检索的方式不同(CHAR类型的字符串检索速度要比VARCHAR 类型快。
  • 是否尾部空格被保留不同(在字符串检索的时候,CHAR 会去掉尾部的空格)
  • 最大长度不同:
    char类型是定长类型,即一但定义便固定了,定义长度的范围是:0~255
    varchar类型是一种可变长字符串类型,范围在0~65535

3.2.TEXT类型

  • TINYTEXT----(tinytext)----范围0~255
  • TEXT----(text)----范围0~65535
  • MEDIUMTEXT----(mediumtext)----范围0~16777215
  • LONGTEXT----(longtext)----范围0~4294967295

TEXT以文本方式存储,上述4种TEXT类型的区别在于可容纳的存储范围不同,我们根据实际情况选择适合的类型。


3.3.BLOB类型

  • TINYBLOB----(tinyblob)----范围0~255
  • BLOB----(blob)----范围0~65535
  • MEDIUMBLOB ----(mediumblob)----范围0~16777215
  • LONGBLOB----(longblob)----范围0~4294967295

BLOB是一个二进制大对象,以二进制方式存储,可容纳可变数量的数据。


3.4.BINARY类型

  • BINARY----(binary(M))----范围:0~M字节
  • VARBINARY----(varbinary(M))----范围:0~M字节
    注:BINARYVARBINARYCHARVARCHAR有点类似,区别在于BINARYVARBINARY只包含二进制字符串,而且定义范围时,它们定义的是字节长度,而CHARVARCHAR则定义字符长度

4.日期和时间类型


4.1.DATE类型

  • DATE----(date)----范围1000-01-01 ~ 9999-12-31

当我们想表示年月日时,可以使用DATE类型,其字节数为3


4.2.TIME类型

  • TIME----(time)----范围'-838:59:59' ~ '838:59:59'

当我们想表示时分秒时,可以使用TIME类型,其字节数为3


4.3.DATETIME类型

  • DATETIME----(datetime)----范围1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

当我们想表示年月日时分秒时,可以使用DATETIME类型,其字节数为8


4.4.TIMESTAMP类型


  • TIMESTAMP----(timestamp)----范围1970-01-01 00:00:00 ~ 2038-1-19 11:14:07

当我们想表示当前时间,可以使用TIMESTAMP类型,其字节数为4


4.5.YEAR类型

  • YEAR----(year)----范围1901 ~ 2155

当我们只想表示年份,可以使用YEAR类型,其字节数为1


5.小结

好了,常用的SQL数据类型就看到这。

最后来张思维导图梳理一下:

【MySQL从入门到精通】:SQL的数据类型_第1张图片

你可能感兴趣的:(MySQL数据库学习,学习,sql,数据库,后端)