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目录下
  • 数据库存的是图片/数据路径(除非图片是机密文件)
相关推荐
战神刘玉栋2 小时前
《程序猿之设计模式实战 · 适配器模式》
数据库·设计模式·适配器模式
Lansonli2 小时前
大数据Flink(一百二十三):五分钟上手Flink MySQL连接器
大数据·mysql·flink
AI-入门2 小时前
【LangChain系列】实战案例5:用LangChain实现灵活的Agents+RAG,该查时查,不该查时就别查
数据库·人工智能·深度学习·面试·职场和发展·langchain
一休哥助手2 小时前
MySQL中的ON DUPLICATE KEY UPDATE详解与应用
数据库·mysql
油爆酥葱2 小时前
MySQL中去除重复
数据库·mysql
腾飞的信仰2 小时前
Mysql
数据库·mysql
代码江2 小时前
【速成Redis】04 Redis 概念扫盲:事务、持久化、主从复制、哨兵模式
java·数据库·mysql
终末圆3 小时前
探索RESTful风格的网络请求:构建高效、可维护的API接口【后端 20】
java·开发语言·数据库·后端·mysql·算法·restful
懒洋洋大魔王3 小时前
1.数据库-初识MySQL
数据库·mysql