当前位置: 首页 > news >正文

mysql学习教程,从入门到精通,MySQL数据类型基础教程(4)

1、MySQL 数据类型基础教程文档

数据类型指定了特定的数据类型,例如整数,浮点数,布尔值等。它还标识了该类型的可能值,操作可以在该类型上执行的操作以及该类型的值的存储方式。在MySQL中,每个数据库表都有许多列,并且每个列包含特定的数据类型。
我们可以确定MySQL中具有以下特征的数据类型:
它代表的值的类型(固定或可变)。
它占用的存储空间取决于这些值是固定长度还是可变长度。
其值可以建立索引或不建立索引。
MySQL如何执行特定数据类型的值的比较。
MySQL支持各种类别中的许多 SQL 标准数据类型。它使用许多不同的数据类型,这些数据类型可以分为以下几类: 数字,日期和时间,字符串类型,空间类型和 JSON 数据类型。

1.1、数字数据类型

MySQL具有所有必需的SQL数字数据类型。这些数据类型可以包括精确的数字数据类型(例如,整数,十进制,数字等),以及近似的数字数据类型(例如,浮点数,实数和双精度)。它还支持BIT数据类型来存储位值。在MySQL中,数字数据类型分为两类,有符号的和无符号的(比特数据类型除外)。
下表包含 MySQL :
数据类型语法说明
TINYINT 这是一个非常小的整数,可以带符号或无符号。如果是带符号的,则允许的范围是-128到127、如果是无符号的,则允许的范围是0到255、我们可以指定最多4位数字的宽度。存储需要1个字节。
SMALLINT 这是一个可以签名或不签名的小整数。如果是带符号的,则允许的范围是-32768到32767、如果是无符号的,则允许的范围是0到65535、我们可以指定最多5位数字的宽度。存储需要2个字节。
MEDIUMINT 它是一个中等大小的整数,可以带符号或无符号。如果是带符号的,则允许的范围是-8388608到8388607、如果没有带符号的,则允许的范围是0到16777215、我们可以指定最多9位数字的宽度。它需要3个字节来存储。
INT 它是一个普通大小的整数,可以带符号或无符号。如果是带符号的,则允许的范围是-2147483648到2147483647、如果没有带符号的,则允许的范围是0到4294967295、我们可以指定11位数字的宽度。存储需要4个字节。
BIGINT 这是一个大整数,可以带符号或无符号。如果签名,则允许范围是-9223372036854775808至9223372036854775807、如果未签名,则允许范围是0至18446744073709551615、我们可以指定20位数字的宽度。存储需要8个字节。
FLOAT(m,d) 这是一个不能无符号的浮点数。您可以定义显示长度(m)和小数位数(d)。这不是必需的,默认值为10,2,其中2是小数位数,而10是数字总数(包括小数位数)。对于浮点型,小数精度可以达到24位。存储需要2个字节。
DOUBLE(m,d) 这是一个不能取消签名的双精度浮点数。您可以定义显示长度(m)和小数位数(d)。这不是必需的,它将默认为16,4,其中4是小数位数。小数精度可以达到53个位的两倍。 Real是double的同义词。存储需要8个字节。
DECIMAL(m,d) 不能解签名的解压缩浮点数。在未压缩的十进制中,每个十进制对应一个字节。需要定义显示长度(m)和小数位数(d)。数字是十进制的同义词。
BIT(m) 用于将位值存储到表列中。在此,M确定每个值的位数,范围为1到64、
BOOL 它仅用于真假条件。它认为数值1为true,0为false。
BOOLEAN 类似于BOOL。
日期和时间数据类型:
此数据类型用于表示时间值,例如日期,时间,日期时间,时间戳和年份。每个时间类型都包含值,包括零。当我们插入无效值时,MySQL无法表示它,然后使用零值。
下表说明了MySQL支持的所有日期和时间数据类型:
语法 大小 说明
YEAR[(2|4)] 年份值是2位或4位。 默认为4位数字。存储需要1个字节。
DATE 值的范围从"1000-01-01"到"9999-12-31"。 显示为"yyyy-mm-dd"。存储需要3个字节。
TIME 值的范围从’-838:59:59’到’838:59:59’。 显示为"HH:MM:SS"。存储需要3个字节再加上小数秒。
DATETIME 值的范围从" 1000-01-01 00:00:00"到" 9999-12-31 23:59:59"。 显示为"yyyy-mm-dd hh:mm:ss"。存储需要5个字节加上小数秒的时间。
TIMESTAMP(m) 值的范围是从1970年1月1日00:00:01(UTC)到" 2038-01-19 03:14:07"(TC)。 显示为"YYYY-MM-DD HH:MM:SS"。存储需要4个字节加上小数秒的时间。
字符串数据类型:
字符串数据类型用于保存纯文本和二进制数据,例如文件,图像等。MySQL可以执行搜索并根据模式匹配(例如LIKE运算符,正则表达式等)对字符串值进行比较。
下表说明了MySQL支持的所有字符串数据类型:
语法 大小 说明
CHAR(size) 最大长度为255个字符。 大小是要存储的字符数。定长字符串。在右边填充空格以等于大小的字符。
VARCHAR(size) 最大长度为255个字符。 大小是要存储的字符数。可变长度的字符串。
TINYTEXT(size) 最大长度为255个字符。 这里的大小是要存储的字符数。
TEXT(size) 最大大小为65,535个字符。 这里的大小是要存储的字符数。
MEDIUMTEXT(size) 最大大小为16,777,215个字符。 这里的大小是要存储的字符数。
LONGTEXT(size) 最大大小为4GB或4,294,967,295个字符。 这里的大小是要存储的字符数。
BINARY(size) 最大长度为255个字符。 这里的大小是要存储的二进制字符数。定长字符串。在右边填充空格以等长字符。
(在MySQL 4.1.2中引入)
VARBINARY(size) 最大长度为255个字符。 大小是要存储的字符数。可变长度的字符串。
(在MySQL 4.1.2中引入)
ENUM 需要1或2个字节,具体取决于枚举值的数量。一个ENUM最多可以有65,535个值。 它是枚举的缩写,表示每个列可能具有指定的可能值之一。它使用数字索引(1、2、3 …)表示字符串值。
SET 需要1、2、3、4或8个字节,具体取决于集合成员的数量。它最多可以存储64个成员。 它可以容纳零个或多个,或任意数量的字符串值。必须从创建表时指定的预定义值列表中选择它们。
二进制大对象数据类型(BLOB):
MySQL中的BLOB是一种数据类型,可以容纳可变数量的数据。根据可容纳的最大长度,将它们分为四种不同的类型。
下表显示了MySQL支持的所有Binary Large Object数据类型:
语法 大小
TINYBLOB 它最多可以容纳255个字节。
BLOB(size) 最大容量为65,535个字节。
MEDIUMBLOB 它最多可以容纳16,777,215字节。
LONGBLOB 最大容量为4GB或4,294,967,295字节。
空间数据类型
这是一种特殊的数据类型,用于保存各种几何和地理值。它对应于OpenGIS类。下表显示了MySQL支持的所有空间类型:
数据类型 说明
GEOMETRY 它是一个点或点的集合,可以容纳具有位置的任何类型的空间值。
POINT 几何图形中的点表示单个位置。它存储X,Y坐标的值。
POLYGON 这是一个表示多面几何的平面。它可以由零个或多个内部边界和仅一个外部边界定义。
LINESTRING 它是具有一个或多个点值的曲线。如果仅包含两个点,则始终代表线。
GEOMETRYCOLLECTION 它是一种几何,具有零个或多个几何值的集合。
MULTILINESTRING 这是一个多曲线几何,其中包含线串值。
MULTIPOINT 它是多个点元素的集合。在这里,该点不能以任何方式连接或排序。
MULTIPLYGON 这是一个多表面对象,代表多个多边形元素的集合。这是一种二维几何。
JSON数据类型
MySQL从版本v5.7.8开始支持本机JSON数据类型。这种数据类型使我们能够快速有效地存储和访问JSON文档。
与在字符串列中存储JSON格式的字符串相比,JSON数据类型具有以下优点:
它提供JSON文档的自动验证。如果我们将无效文档存储在JSON列中,则会产生错误。
它提供了最佳的存储格式。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 若依框架(前后端分离)增加手机号验证码登录
  • SpringBoot项目集成支付宝
  • VS-E5PH3006L-N3 600V 30A 高效低损耗整流器 二极管 电动 / 混动汽车电池充电的可靠之选
  • 【Python】3.基础语法(3)函数
  • 【每日刷题】Day106
  • GoF 代理模式
  • 什么是 AWS CloudWatch?
  • Day54 | Floyd 算法 A * 算法
  • [Algorithm][综合训练][拜访][买卖股票的最好时机(四)]详细讲解
  • 第四章 Java核心类库 第四节 异常处理
  • 重头开始嵌入式第三十天(Linux系统编程 ip头)
  • 骨灵冷火!Solon Cloud Gateway 照面发布
  • rabbitmq高可用集群搭建
  • 【软件测试专栏】软件测试 — 用例篇
  • docker 启动ElasticSearch
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • IOS评论框不贴底(ios12新bug)
  • Java深入 - 深入理解Java集合
  • Linux Process Manage
  • Swift 中的尾递归和蹦床
  • Travix是如何部署应用程序到Kubernetes上的
  • 包装类对象
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 机器学习中为什么要做归一化normalization
  • 计算机常识 - 收藏集 - 掘金
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 使用API自动生成工具优化前端工作流
  • 无服务器化是企业 IT 架构的未来吗?
  • 小而合理的前端理论:rscss和rsjs
  • 在weex里面使用chart图表
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • scrapy中间件源码分析及常用中间件大全
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • # .NET Framework中使用命名管道进行进程间通信
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #laravel 通过手动安装依赖PHPExcel#
  • #传输# #传输数据判断#
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • %@ page import=%的用法
  • ()、[]、{}、(())、[[]]命令替换
  • (003)SlickEdit Unity的补全
  • (1)(1.11) SiK Radio v2(一)
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (MIT博士)林达华老师-概率模型与计算机视觉”