首页 > 数据库 >开心档之MySQL 数据类型

开心档之MySQL 数据类型

时间:2023-04-28 17:33:33浏览次数:54  
标签:开心 59 数据类型 bytes Bytes 字符串 MySQL 类型

MySQL 数据类型

MySQL 中定义数据字段的类型对你数据库的优化是非常重要的。

MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。


数值类型

MySQL 支持所有标准 SQL 数值数据类型。

这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。

关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。

BIT数据类型保存位字段值,并且支持 MyISAM、MEMORY、InnoDB 和 BDB表。

作为 SQL 标准的扩展,MySQL 也支持整数类型 TINYINT、MEDIUMINT 和 BIGINT。下面的表显示了需要的每个整数类型的存储和范围。

类型大小范围(有符号)范围(无符号)用途
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 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 Bytes (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 Bytes (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度 浮点数值
DOUBLE 8 Bytes (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度 浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

日期和时间类型

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的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 混合日期和时间值,时间戳

字符串类型

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

类型大小用途
CHAR 0-255 bytes 定长字符串
VARCHAR 0-65535 bytes 变长字符串
TINYBLOB 0-255 bytes 不超过 255 个字符的二进制字符串
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65 535 bytes 二进制形式的长文本数据
TEXT 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 个字符。

CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。

BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。

有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。

标签:开心,59,数据类型,bytes,Bytes,字符串,MySQL,类型
From: https://www.cnblogs.com/sdges/p/17362767.html

相关文章

  • 开心档之MySQL 创建数据库
    MySQL创建数据库我们可以在登陆MySQL服务后,使用create命令创建数据库,语法如下:CREATEDATABASE数据库名;以下命令简单的演示了创建数据库的过程,数据名为RUNOOB:[root@host]#mysql-uroot-pEnterpassword:******#登录后进入终端mysql>createDATABASE......
  • Ubuntu搭建MySQL服务器
    Ubuntu安装MySQL使用apt命令安装”sudoapt-getinstallmysql-server“使用mysqladmin命令检查服务器的版本mysqladmin--version登录MySQL服务器(记录密码:17909)mysql-uroot-p('\h'forhelp.Type'\c'toclearthecurrentinputstatement.)Linux系统启动时启动MySQ......
  • Mysql数据库设计和事务
    一对一在任意一方建立外键,关联另一方主键一对多在多的一方建立外键关联另一方的主键多对多1.建立中间表2.中间表至少包含2个外键,分别关联双方主键内连接1.隐式连接select*fromemp,deptwhereemp.dep_id=dept.did   2.显式连接select*fromemp(inner)joindep......
  • mysql创建索引三种方式
    1.新建表中添加索引①普通索引createtablet_dept(nointnotnullprimarykey,namevarchar(20)null,sexvarchar(2)null,infovarchar(20)null,indexindex_no(no))②唯一索引createtablet_dept(nointnotnullprimarykey,......
  • Python: MySQL
     Pool   使用pool正确方法:从pool取connection,使用完close(),底层CMySQLConnection会return到deque,此时从pool中得到的PooledMySQLConnection底层_cnx变为None ......
  • JAVA+MySQL做一个图书信息管理系统【二次开发】【更新版2.0】【纯java】、Java技术分
    JAVA+MySQL做一个图书信息管理系统【二次开发】【更新版2.0】【纯java】Java技术分享Java技术er集合啦!大家可分享关于Java技术知识,包括但不限于微服务,分布式等前沿技术,快来沉淀自己的技术,一起写出未来吧!你可以从以下几个方面着手(不强制),或者根据自己对话题主题的理解进行创作,参考如......
  • 【第31天】MYSQL进阶-写优化- 插入优化(SQL 小虚竹)
    回城传送–》《100天精通MYSQL从入门到就业》文章目录零、前言一、练习题目二、SQL思路:SQL进阶-写优化-插入优化解法插入优化禁用索引语法如下适用数据库引擎非空表:禁用索引禁用唯一性检查语法如下适用数据库引擎禁用外键检查语法如下适用数据库引擎批量插入数据语法如下适用数据库......
  • Java数据类型
    1.数据类型注意:String是一个类,属于引用类型2.自动类型转换精度小的类型自动转换为精度大的数据类型......
  • pymysql常用的游标类型
    #导入pymysql库importpymysql#连接数据库connection=pymysql.connect(host="10.83.0.83",#数据库主机名port=31379,#数据库端口号user="root",#数据库用户名password="weshare123",#数据库密码database="acc_cu......
  • 关于MySQL8.0 访问账户登录的先关问题汇总
    背景介绍:接到其它开发团队小伙伴的反馈,说我们线上的测试的MySQL无法访问了,随展开问题查询。查询流程和用到的命令:1.自己分别使用Windows的Navicat、Linux的mysql命令行链接测试。确实有链接不通的问题。1.排查了当前ECS的网络链接的状态,数据库运行的状态,包括端口绑定的状态......