MySQL的数据类型(三)下

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: MySQL的数据类型(三)

四. 字符串类型


  1. 字符串存储时的类型有: char,varchar,tinytext,text,medinumtext,longtext,enum,set


  1. 存储需求:

20191114134511694.png

四.一 char


1 .char 是固定长度字符串。


2 . 所能存储的范围是 0~255个字符,与编码无关


3 . 当插入的字符长度不足时,在右侧进行填空格补充


在检索的时候,如果尾部有空格,则先将空格删除后,才进行展示。


4 .定长,所以效率高。 通常用于固定长度的数据存储, 如性别,身份证号等。


四.二 varchar


varchar 是长度可变的字符串, 所能存储的范围是 0~65535.


可以存储65532个字节的数据, 起始位和结束位要占去3个字节,即-1 -2.


-1 是因为实际行存储从第二个字节开始


-2 是因为 varchar头部的2个字节表示长度。


3 . 最大的实际长度,是由最长的行的大小和使用的字符集确定, 而实际占用的空间为字符串的实际长度+1 .


如果编码类型是 gbk, 每个字符最多占2个字节,最大长度不超过 32766. 即 (65535-3)/2


如果编码类型是 utf8, 每个字符最多占3个字节, 最大长度不超过 21844. 即(65535-3)/3


4 . 当插入的字符长度不足时, 不需要在右侧进行填空格补充。 所以,当保存和检索时,发现尾部有空格,那是插入的字符自带的空格, 要进行保留。


5 . char(4) 和varchar(4) 存储时的区别:


20191114134522300.png


四.三 text


用于非常大的字符串, 当超过65535长度之后使用的。 如存储一部小说的内容。


有 tinytext, text,medinumtext,longtext 四种。


不同的text类型的存储空间和数据长度不同。


20191114134526804.png


一般存储时,直接用 varchar 即可。


如果内容过长时,常常将内容放置到一个文件里面,mysql数据库里面存放的是文件的路径。 在项目里面,用InputStream 去读取 file(路径) 里面的内容,进行展示出来。


四.四 枚举 Enum


网上有详细的教程, 但不建议使用, 所以老蝴蝶不写教程了。


四.五 集合 Set


网上有详细的教程,但也不建议使用,所以老蝴蝶也不写教程了。


四.六 二进制 Blob


二进制 Blob, 主要存储的是二进制数据, 如图片,视频等。 是的,MySQL数据库可以直接存储图片。 但没有人会这么用,一般存储的是图片的所在路径。


所具有的类型有, Bit, Binary, Varbinary,Tinyblob,Blob,MediumBlob, LogBlob.


占用字节数:


20191114134534725.png


但一般不用Blob存储,而是存放在磁盘中的路径,进行展示。


五. 如何选择数据类型


为了优化存储,提高数据库性能,在任何情况下均应该使用最精确的类型。 但往往实际运用,却是哪个方便用哪个。 在学习的过程中,老蝴蝶建议也是哪个方便用哪个。


五.一 整数和浮点数,定点数


如果不需要小数部分,如年龄之类的, 直接用 int 类型。


如果有小数部分,但不是财务数据,科学数据之类的,直接用 double 类型。 如果 是财务数据,或者科学数据,用decimal


五.二 日期和时间


如果只记录年份, 用int(4) 即可,不需要用Year.


如果 只记录日期, 用date 即可。


如果需要记录日期和时间,用datetime.


如果当插入数据同时还要插入当前时间,用 timestamp.


如果没有特殊说明, 就用datetime.


五.三 字符串


固定长度,但不是主键的, 如身份证号 用char,


其他的都用 varchar .


Enum, Set, Blob,Text 均不建议使用。


谢谢!!!

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8月前
|
存储 关系型数据库 MySQL
MySQL数据类型详解及实例应用
MySQL数据类型详解及实例应用
|
3月前
|
关系型数据库 MySQL 数据库
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
46 5
|
7月前
|
存储 关系型数据库 MySQL
MySQL数据库的数据类型、语法和高级查询
MySQL数据库的数据类型、语法和高级查询
91 0
|
3月前
|
存储 关系型数据库 MySQL
MySQL支持多种数据类型
MySQL支持多种数据类型
154 3
|
3月前
|
存储 关系型数据库 MySQL
什么是mysql的数据类型?
什么是mysql的数据类型?
57 2
|
3月前
|
存储 关系型数据库 MySQL
MySQL数据类型
MySQL数据类型
64 2
|
8月前
|
SQL 存储 关系型数据库
RDS for MySQL的SQL分类与数据类型
小明需在MySQL中管理商品信息,使用SQL完成业务操作。SQL分为DQL(查询)、DML(增删改)、DDL(定义)、DCL(权限控制)和TCL(事务)五大类。DDL用于创建、修改和删除数据库结构,DML处理数据,DCL控制权限,TCL管理事务,DQL则用于查询数据。MySQL有多种数据类型,如数值型(整数、小数)、日期型和字符串型等,选择合适的数据类型是高效开发的关键。
89 0
|
5月前
|
关系型数据库 MySQL Linux
数据类型和运算符(MySQL服务器的安装,MySQL客户端,数据类型,运算符,MySQL的语法规范)
无论是对于初学者还是有经验的开发者,了解MySQL的安装、客户端使用、数据类型、运算符和语法规范都是至关重要的。这不仅有助于高效地管理和查询数据,而且对于设计和实现数据库解决方案来说是基础工作。通过深入学习和实践这些知识,您可以更好地发挥MySQL数据库的强大功能。
41 2
|
5月前
|
存储 关系型数据库 MySQL
MySQL 中的 BLOB 数据类型深入解析
【8月更文挑战第31天】
625 0
|
5月前
|
存储 关系型数据库 MySQL