MySQL的数据类型(三)下

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: 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 均不建议使用。


谢谢!!!

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
存储 关系型数据库 MySQL
MySQL数据库的数据类型、语法和高级查询
MySQL数据库的数据类型、语法和高级查询
23 0
|
1月前
|
存储 关系型数据库 MySQL
MySQL数据类型详解及实例应用
MySQL数据类型详解及实例应用
|
1月前
|
SQL 存储 关系型数据库
RDS for MySQL的SQL分类与数据类型
小明需在MySQL中管理商品信息,使用SQL完成业务操作。SQL分为DQL(查询)、DML(增删改)、DDL(定义)、DCL(权限控制)和TCL(事务)五大类。DDL用于创建、修改和删除数据库结构,DML处理数据,DCL控制权限,TCL管理事务,DQL则用于查询数据。MySQL有多种数据类型,如数值型(整数、小数)、日期型和字符串型等,选择合适的数据类型是高效开发的关键。
31 0
|
1月前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
|
21天前
|
SQL 存储 关系型数据库
MySQL数据库案例实战教程:数据类型、语法与高级查询详解
MySQL数据库案例实战教程:数据类型、语法与高级查询详解
35 3
|
5天前
|
存储 JSON 关系型数据库
Mysql都有哪些数据类型?
Mysql都有哪些数据类型?
8 0
|
5天前
|
存储 Java 关系型数据库
数据类型的取值范围以及Java和Mysql数据库的类型对照--强调时间类型的转换(jdk1.8)
数据类型的取值范围以及Java和Mysql数据库的类型对照--强调时间类型的转换(jdk1.8)
7 0
|
5天前
|
存储 关系型数据库 MySQL
MySQL中的数据类型
MySQL中的数据类型
|
6天前
|
存储 关系型数据库 MySQL
MySQL中的Decimal数据类型用法详解
MySQL中的Decimal数据类型用法详解
|
22天前
|
存储 JSON 关系型数据库
2.Mysql 数据类型
2.Mysql 数据类型
14 0