MySQL操作之数据类型

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: MySQL操作之数据类型




MySQL提供了5种数据类型:整数类型、浮点数类型、定点数类型、日期和时间类型、字符串类型和二进制类型。

1、整数类型(INT)

有5种数据类型:tinyINT、samllINT、mediumINT、INT、bigINT。

特点:

  • 占用字节数最小的:TINYINT。
  • 占用字节数最小的:BIGINT。

2、浮点数类型和定点数类型(Float/Double)

存储小数都是使用浮点数和定点数来表示的

浮点数类型:单精度浮点数(Float)和双精度浮点数(Double)。

定点数类型:decimal

浮点数:

定点数:

Decimal类型的取值范围与Double类型相同。有效取值范围由M和D的值决定。使用(M, D)来表示。其中M代表精度(数据长度),即总位数,默认值为10;D代表标度,即小数的位数,默认值为0。

  • DECIMAL(6,2):数据3.1415插入数据后为3.14。

3、日期与时间类型(DATE)

方便在数据库中存日期和时间。提供了表示时间和日期的数据类型。

包括:Year、Date、Time、DateTime、和Timestamp。

3.1、Year类型

用于表示年份。

  • 使用4位字符串或数字表示。例如:输入’2014’或2014,结果为2014。
  • 使用2位字符串表示。例如:输入’14’,结果为2014。
  • 使用2位数字表示。例如:输入’14’,结果为2014。

3.2、Date类型(YYYY-MM-DD)

用于表示日期值,不包含时间部分。

  • YYYY-MM-DDYYYYMMDD字符串格式表示。例如:输入’2014-01-21’或2014-01-21,结果为2014-01-21。
  • YY-MM-DDYYMMDD字符串格式表示。例如:输入’14-01-21’或14-01-21,结果为2014-01-21。
  • YY-MM-DDYYMMDD数字格式表示。例如:输入14-01-21或14-01-21,结果为2014-01-21。
  • 使用CURRENT_DATE或者NOW( )表示当前系统时间。

3.3、Time类型(HH-MM-SS)

用户表示时间值。

  • D HH:MM:SS字符串格式表示,启动D表示日,可以取0~34之间的值。插入数据时,小时的值等于(Dx24+HH)。例如:输入2 11:30:50,结果为59:30:50
  • HHMMSS字符串格式或HHMMSS数字格式来表示。例如:输入’345454’或345454,结果为345454。
  • 使用CURRENT_DATE或者NOW( )表示当前系统时间。

3.4、DateTime类型(HH-MM-SS)

用户表示日期和时间,显示形式为YYYY-MM-DD HH:MM:SS

  • YYYY-MM-DD HH:MM:SS或者YYYYMMDDHHMMSS字符串形式表示日期和时间。例如:输入’2013-01-23 09:12:21’或20130123091221,结果为2013-01-23 09:12:21。
  • YY-MM-DD HH:MM:SS或者YYMMDDHHMMSS字符串形式表示日期和时间。例如:输入’13-01-23 09:12:21’或130123091221,结果为2013-01-23 09:12:21。
  • 以YYMMDDHHMMSS或YYYYMMDDHHMMSS数字形式表示日期和时间。例如:输入20130123091221或130123091221,结果为2013-01-23 09:12:21。
  • 使用NOW( )表示当前系统时间。

3.5、TimeStamp类型

显示形式与DateTime相同,但取值范围比DateTime小。

  • 使用CURRENT_TimeStamp来输入系统当前时间和日期。
  • 输入NULL时,系统会输入系统当前日期和时间。
  • 无任何输入时,系统会输入系统当前日期和时间。

4、字符串和二进制类型(CHAR)

4.1、Char和Varchar

Char和Varchar类型都是用来表示字符串数据,不同的是Varchar可以存储可变长度的字符串。

定义方式:

CHAR(M)
VARCHAR(M)

其中M表示字符串的最大长度。

从图中可以看出:

  • CAHR(4)类型:无论插入值长度是多少,所占用的存储空间都是4个字节。
  • VARCHAR(4)类型:所对应的数据所占用的字节数为实际长度+1.

4.2、Binary和VarBinary类型

Binary和VarBinary类型类似于Char和Varchar,不同的是,它们所表示的是二进制。

定义方式:

BINARY(M)
VARBINARY(M)

其中:M表示二进制数据的最大字节长度。

  • Binary类型的长度是固定的,长度不满足最大长度时,将在后面以\0补齐,最终达到指定长度。

4.3、Text类型

Text类型表示大文本数据。类型分为4类

数据类型 存储范围
TinyText 0~255字节
Text 0~65 535字节
MediumText 0~16 777 215字节
LongText 0~4294 967 295字节

4.4、Blob类型

Blob是一种特殊的二级制类型,用于表示数据量很大的二级制数据。分4中类型。

数据类型 存储范围
TinyBlob 0~255字节
Blob 0~65 535字节
MediumBlob 0~16 777 215字节
LongBlob 0~4294 967 295字节

Blob类型和Text类型很相似。但是Blob是根据二级制编码进行比较和排序的。Text类型是根据文本模式进行比较和排序的。

4.5、Enum类型

Enum枚举类型。定义格式:

ENUM('值1','值2','值3'...)
  • ('值1','值2','值3'...)称为枚举列表。
  • Enum类型的数据只能从枚举列表中取,并且只能取一个。
  • 枚举列表中每个值都有一个顺序编号,MySQL存入的是顺序编号,而不是列表中的值。

4.6、Set类型

Set类型表示字符串对象,它的值可以有0个或者多个,Set类型数据的定义格式与Enum类似。定义格式:

SET('值1','值2','值3',...)

与Enum类型相同。列表中每个值都有一个顺序编号,MySQL存入的是顺序编号,而不是列表中的值。

4.7、Bit类型

Bit类型用于表示二级制数据。定义:

BIT(M)
  • M表示每个值的位数,范围是1~64。
  • 数据长度小于M,在数据左边补0。
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
22天前
|
SQL 关系型数据库 MySQL
python操作mysql
python操作mysql
|
28天前
|
安全 关系型数据库 MySQL
轻松入门MySQL:MySQL8权限管理详解,角色和用户操作实例(18)
轻松入门MySQL:MySQL8权限管理详解,角色和用户操作实例(18)
|
1天前
|
SQL DataWorks 关系型数据库
DataWorks操作报错合集之DataWorks在同步mysql时报错Code:[Framework-02],mysql里面有个json类型字段,是什么原因导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
12 0
|
1天前
|
关系型数据库 MySQL Java
使用shardingjdbc执行MySQL游标操作时报错
使用shardingjdbc执行MySQL游标操作时报错
|
1天前
|
存储 SQL 关系型数据库
mysql查询数据库表大小怎么操作
mysql查询数据库表大小怎么操作
|
1天前
|
SQL 关系型数据库 MySQL
使用Python的pymysql库连接MySQL,执行CRUD操作
使用Python的pymysql库连接MySQL,执行CRUD操作:安装pymysql,然后连接(host='localhost',user='root',password='yourpassword',database='yourdatabase'),创建游标。查询数据示例:`SELECT * FROM yourtable`;插入数据:`INSERT INTO yourtable...`;更新数据:`UPDATE yourtable SET...`;删除数据:`DELETE FROM yourtable WHERE...`。
6 0
|
2天前
|
存储 SQL 关系型数据库
【mysql】mysql中的数据类型知多少?
【mysql】mysql中的数据类型知多少?
|
2天前
|
SQL 关系型数据库 数据库
【MySQL】:DDL数据库定义与操作
【MySQL】:DDL数据库定义与操作
8 0
|
4天前
|
关系型数据库 MySQL
MySQL基础(二:常用数据类型及MySQL创建过程实例)
MySQL基础(二:常用数据类型及MySQL创建过程实例)
MySQL基础(二:常用数据类型及MySQL创建过程实例)
|
6天前
|
存储 缓存 关系型数据库
【Mysql】Schema与数据类型优化
【Mysql】Schema与数据类型优化
7 0