首页 > 数据库 >MySQL基本数据类型

MySQL基本数据类型

时间:2024-08-22 08:55:20浏览次数:10  
标签:基本 01 数据类型 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:01' UTC 到 '2038-01-19 03:14:07' UTC结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 YYYY-MM-DD hh:mm:ss 混合日期和时间值,时间戳

字符串类型

字符串类型指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 类型,可存储的最大长度不同,可根据实际情况选择。

枚举与集合类型(Enumeration and Set Types)

  • ENUM: 枚举类型,用于存储单一值,可以选择一个预定义的集合。
  • SET: 集合类型,用于存储多个值,可以选择多个预定义的集合。

空间数据类型(Spatial Data Types)

GEOMETRY, POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION: 用于存储空间数据(地理信息、几何图形等)。

标签:基本,01,数据类型,bytes,Bytes,字符串,MySQL,类型
From: https://www.cnblogs.com/ZWJ7671277/p/18372930

相关文章

  • 银河麒麟系统V10(arm版)安装Mysql-5.7.29说明
    #银河麒麟系统适配#随着2024年微软全球蓝屏丑闻的出现,系统安全越来越重要。目前很多企业开始尝试国产化操作系统上,本文介绍如何在国产化银河麒麟系统V10(arm)版上安装mysql。本资源使用的是arm版本的Mysql-5.7.29离线安装包,能够在arm版国产化银河麒麟系统上进行安装,并配置防火......
  • MySQL 源码|51 - 语法解析:高级表达式
    目录文档:MySQL源码|源码剖析文档目录源码位置(版本=MySQL8.0.37):sql/sql_yacc.yy前置文档:MySQL源码|50-语法解析:基础表达式(simple_expr)在梳理了基础表达式simple_expr之后,我们就可以梳理更高级的表达式了。高级表达式的相关关系如下图所示:其中绿色节点为本章节梳......
  • 数据库MySQL之事务、索引
    目录1.概述2.事务3.索引3.1索引结构3.2操作语法1.概述场景:假如我们需要解散教学部,那么该部门下的所有员工都需要删除。如果教学部成功删除了,但员工出于某些原因(比如SQL语句写错了等)并没有删除,此时就会出现数据不一致的问题。这时我们可以通过数据库中的事务来解决。......
  • MySQL 源码|50 - 语法解析:基础表达式(simple_expr)
    目录文档:MySQL源码|源码剖析文档目录源码位置(版本=MySQL8.0.37):sql/sql_yacc.yy前置文档:MySQL源码|37-语法解析:聚集函数MySQL源码|38-语法解析:窗口函数MySQL源码|43-语法解析:关键字函数MySQL源码|44-语法解析:非关键字函数MySQL源码|45-语法解析:通用函数MySQL......
  • 学习python基础二之python基本图形绘制
    1.课前实例  1.1蟒蛇绘制importturtleast#turtle库取别名为tt.setup(650,350,200,200)t.penup()t.fd(-250)t.pendown()t.pensize(25)t.pencolor("purple")t.seth(-40)foriinrange(4):t.circle(40,80)t.circle(-40,80)t.circle(40,80/2......
  • 登录注册java版:结合mysql数据库
    packagecom.shujia.day18.logindemo;importcom.shujia.day18.utils.MysqlTool;importjava.io.*;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.Statement;importjava.util.ArrayList;importjava.u......
  • java变量定义与数据类型
    变量:在java程序运行过程中,其值可以发送改变的量定义变量的语句格式:数据类型变量名=初始化值;使用变量的注意事项:1、使用基本数据类型的变量,实际上使用的是变量中存储的值2、在同一作用域(同一个大括号)中,变量名不能重复3、变量名是区分大小写的4、java中整数默认是int类型......
  • 关于http基本认识
    一、概念引入HTTP协议是HyperTextTransferProtocol(超文本传输协议)的缩写,平时上网时,浏览器基本都是基于该协议与服务器通信的,HTTP是基于TCP/IP协议来传输数据的,包括HTTP文件、图片、查询结果等。HTTP是一个典型的C/S(即client-server)协议:请求通过一个实体被发出,实体也就是......
  • canal同步mysql,监听单实例,多实例配置
    1、下载canal安装包canal.adapter-1.1.7.tar.gzcanal.deployer-1.1.7.tar.gz2、修改涉及的文件canal_deployer:/conf/canal.properties/conf/example/instance.propertiescanal_adapter:/conf/application.yml/conf/rdb在rdb中添加对应的数据配置表,即便监听多个mysq......
  • MySQL8.0安装教程
    一、下载二、解压、初始化数据库以windows管理员打开cmd进入MySQL解压后的bin目录执行mysqld--initialize--user=mysql--consoleMySQL初始化完成三、安装mysqld服务mysqld--install四、启动mysql服务netstartmysql五、修改root用户密码mysql-uroot-p输入......