MySQL_数据类型简介

|------------------------------------------------------------------------------------------------------------------|
| 课 程 推 荐 |
| 我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 |
| 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 |
| 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 |
| PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)教程合集 👈👈 |
| Oracle数据库教程:👉👉 Oracle数据库教程合集 👈👈 |
| MySQL数据库教程:👉👉 MySQL数据库教程合集 👈👈 |
| 优 质 资 源 下 载 :👉👉 资源下载合集 👈👈 |
| 优 质 教 程 推 荐:👉👉 Python爬虫从入门到入狱系列 合集 👈👈 |
| . |


MySQL_数据类型简介

MySQL数据类型简介

  • 整数类型
  • 浮点数类型
  • 定点数类型
  • 日期与实际类型
  • 字符串类型
  • 二进制类型

数值类型

  • MySQL 支持所有标准 SQL 数值数据类型
  • 这些类型包括严格数值数据类型(INTEGERSMALLINTDECIMALNUMERIC),以及近似数值数据类型(FLOATREALDOUBLE PRECISION)
  • 关键字INTINTEGER的同义词,关键字DECDECIMAL的同义词
  • BIT数据类型保存位字段值,并且支持MyISAMMEMORYInnoDBBDB表。
  • 作为SQL标准的扩展,MySQL也支持整数类型TINYINTMEDIUMINTBIGINT
  • 下面的表显示了需要的每个整数类型的存储和范围
类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 Bytes (-128,127) (0,255) 小整数值
SMALLINT 2 Bytes (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 Bytes (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 Bytes (-2147483648,2147483647) (0,4294967295) 大整数值
BIGINT 8 Bytes (-9223372036854775808,9223372036854775807) (0,18446744073709551615) 极大整数值
FLOAT 4 Bytes (-3.402823466E+38,-1.175494351E-38),0,(1.175494351E-38,3.402823466351E+38) 0,(1.175494351E-38,3.402823466E+38) 浮点数值 单精度
DOUBLE 8 Bytes (-1.7976931348623157E+308,-2.2250738585072014E-308),0,(2.2250738585072014E-308,1.7976931348623157E+308) 0,(2.2250738585072014E-308,1.7976931348623157E+308) 浮点数值 双精度
DECIMAL DECIMAL(M,D) 字节数为M+2 同Double 同Double 定点数类型 小数值
  • DECIMAL(M,D)
    • M:数据的总长度(不包含小数点)

    • D:小数位

    • 例:

      复制代码
      Decimal(5,2) ------------> 123.45
      Decimal存入数据的时候,会按四舍五入计算
      123.456 ------------> 123.46
      123.451 ------------> 123.45

日期和时间类型

  • 表示时间值的日期和时间类型为DATETIMEDATETIMESTAMPTIMEYEAR
  • 每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值
  • TIMESTAMP类型有专有的自动更新特性,将在后面描述
类型 大小 (bytes) 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4 1970-01-01 00:00:00/2038 结束时间是第2147483647 秒, 北京时间:2038-1-19 11:14:07 , 格林尼治时间:2038年1月19日 凌晨 03:14:07 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

字符串类型

  • 字符串类型指CHARVARCHARBINARYVARBINARYBLOBTEXTENUMSET
  • 该节描述了这些类型如何工作以及如何在查询中使用这些类型
类型 大小 用途
CHAR 0-255 bytes 固定长度字符串(char(10))
VARCHAR 0-65535 bytes 变长字符串
TEXT 0-65 535 bytes 长文本数据
ENUM 枚举类型(只能取一个元素)
SET 集合类型(能取多个元素)
TINYBLOB 0-255 bytes 不超过 255 个字符的二进制字符串
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65 535 bytes 二进制形式的长文本数据
MEDIUMBLOB 0-16 777 215 bytes 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215 bytes 中等长度文本数据
LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295 bytes 极大文本数据
  • 注意
  • char(n)varchar(n)
    • 两者括号中n代表字符的个数,并不代表字节个数(比如:CHAR(30)就可以存储30个字符
    • CHARVARCHAR类型类似,但它们保存和检索的方式不同
    • 它们的最大长度和是否尾部空格被保留等方面也不同,在存储或检索过程中不进行大小写转换
  • BINARYVARBINARY
    • 类似于CHARVARCHAR
    • 不同的是它们包含二进制字符串而不要非二进制字符串
    • 也就是说,它们包含字节字符串而不是字符字符串
    • 这说明它们没有字符集,并且排序和比较基于列值字节的数值值
  • BLOB
    • 是一个二进制大对象,可以容纳可变数量的数据
    • 有4种BLOB类型:TINYBLOBBLOBMEDIUMBLOBLONGBLOB
    • 它们区别在于可容纳存储范围不同
    • 有4种TEXT类型:TINYTEXTTEXTMEDIUMTEXTLONGTEXT
    • 对应的这4种BLOB类型,可存储的最大长度不同,可根据实际情况选择

二进制类型

类型 大小 用途
BINARY(M) 字节数为M 允许长度为0~M的定长二进制字符串
VABINARY(M) 字节数为值的长度加1 允许长度为0~M的变长二进制字符串
BIT(M) 最多255个字节 M位二进制数据
TINYBLOB 最多255个字节 可变长二进制数据
BLOB 最多(2^16-1)个字节 可变长二进制数据
MEDIUMBLOB 最多(2^24-1)个字节 可变长二进制数据
lONGBLOB 最多(2^32-1)个字节 可变长二进制数据
  • 二进制类型一般用来存储图片或者视频
  • 开发过程中,图片/视频一般是存放在web目录下
  • 数据库存的是图片/数据路径(除非图片是机密文件)
相关推荐
Paraverse_徐志斌1 小时前
MySQL 线上大表 DDL 如何避免锁表(pt-online-schema-change)
数据库·mysql·ddl·mysql锁·锁表·pt-osc
哈哈幸运2 小时前
MySQL运维三部曲初级篇:从零开始打造稳定高效的数据库环境
linux·运维·数据库·mysql·性能优化
愚公搬代码2 小时前
【愚公系列】《Python网络爬虫从入门到精通》055-Scrapy_Redis分布式爬虫(安装Redis数据库)
数据库·爬虫·python
pwzs2 小时前
深入浅出 MVCC:MySQL 并发背后的多版本世界
数据库·后端·mysql
大熊猫今天吃什么2 小时前
【一天一坑】空数组,使用 allMatch 默认返回true
前端·数据库
双叶8363 小时前
(51单片机)LCD显示数据存储(DS1302时钟模块教学)(LCD1602教程)(独立按键教程)(延时函数教程)(I2C总线认识)(AT24C02认识)
c语言·数据库·单片机·嵌入式硬件·mongodb·51单片机·nosql
XY.散人3 小时前
初识Redis · C++客户端list和hash
数据库·redis·缓存
码上飞扬3 小时前
深入 MySQL 高级查询:JOIN、子查询与窗口函数的实用指南
数据库·mysql
海洋与大气科学4 小时前
【matlab】地图上的小图
开发语言·数据库·matlab
Geek__19924 小时前
Sqlite3交叉编译全过程
jvm·数据库·sqlite