avatar

刘刚刚的blog

采菊东篱下,悠然见南山🦥

  • 首页
  • 大模型应用
  • 常用软件/工具
  • Halo
  • 关于
Home mysql数据类型
文章

mysql数据类型

Posted 2020-09-13 Updated 2024-12- 10
By Administrator
37~48 min read

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。选择合适的数据字段的类型是数据库的优化重要的一步。


合适的数据类型可以提高数据库存储空间利用率,一定程度上提高数据查询效率.

1.整形

类型

大小

范围(有符号)

范围(无符号)

TINYINT

1 byte

(-128,127)

(0,255)

SMALLINT

2 bytes

(-32 768,32 767)

(0,65 535)

MEDIUMINT

3 bytes

(-8 388 608,8 388 607)8百万

(0,16 777 215)

INT或INTEGER

4 bytes

(-2 147 483 648,2 147 483 647)21亿

(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)

使用:

CREATE TABLE test(id INT,num TINYINT UNSIGNED)

2.浮点型

浮点数并不一定等于小数,浮点数是相对于定点数来说的,因为浮点数的存储机制,导致其精度较低,但表示的范围很广。使用时需要注意有效位数

定点数DECIMAL

image-20200913213254031

在定点数中,小数点的位置是固定的。一般用来存储精确度要求比较高的数字,例如:钱数

浮点数

image-20200913213600349

浮点数由符号位、阶码、尾数组成。

类型

大小

范围(有符号)

范围(无符号)

用途

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) 有效位数为7

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

M位数字

依赖于M和D的值,M范围为1〜65,D的范围是0~30。mysql中要求 D<= M

依赖于M和D的值

小数值

3.字符串

选择合适长度的类型可以减少磁盘IO.提高效率

类型

大小

用途

CHAR

0-255 bytes

定长字符串

VARCHAR

0-65535 bytes

变长字符串

BLOB

0-65 535 bytes

二进制形式的长文本数据

TEXT

0-65 535 bytes

长文本数据

在utf8中每个字使用3个bytes存储

utf8mb64中使用4个bytes进行存储

不常用的包括:

char可以改变大小例:char(20)如果列中的值不够20位,则会自动用空格补全.特点:浪费空间、读取速度

varchar :可以指定最大存储空间,实际添加数据的过程中,占用的大小会根据数据的长度确定.同时会预留1-2个字节

text: 数据占用空间不可以指定.在mysql中实际指挥存储前768字节在数据页中,剩下的会存储在数据表之外的地方.不会因为数据过多导致的数据表变大

4.枚举 集合

enum 枚举: 从列出来的数据当中选一个(性别)
set 集合: 从列出来的数据当中选多个(自动去重)

create table t6(
    id int,
    name varchar(10),
    money float(6,3),
    sex enum('男性','女性'),
    hobby set('读书','跑步','美食')    
    );

5. 时间

详见另外一篇 mysql必知必会文章的内容

数据库
mysql
License:  CC BY 4.0
Share

Further Reading

Jul 19, 2021

PostgreSQL中的逻辑结构

在postgresql中,数据的组织结构可以分为:数据库、表与索引(relation)、数据行(tuple)。本问主要介绍了相关的:claster、database、schema、tablespace的概念。 cluster 当启动数据库服务时,不同的文件夹参数即代表不同的cluster: 一个PG

Jul 19, 2021

PostgreSQL中的逻辑结构

在postgresql中,数据的组织结构可以分为:数据库、表与索引(relation)、数据行(tuple)。本问主要介绍了相关的:claster、database、schema、tablespace的概念。

Jul 18, 2021

PostgreSQL中的TOAST

toast技术主要用来解决可变长度数据类型的存储问题。 简介 在PostgreSQL中,页面的大小是固定的(通常是8k),而PostgreSQL不允许数据的分页存储,因此当存储一些大字段时,大字段通常会被压缩或者切片称为多行,存到的系统表 (toast)中。 可变类型数据在表中的存储 在可变长度类型

OLDER

线程及GIL全局锁

NEWER

mysql存储引擎

Recently Updated

  • 文本切分-语义分割(Semantic Chunking)
  • dify 并发配置优化
  • Typing
  • 大模型返回中json_schema与json_mode的区别
  • Async

Trending Tags

Halo 运维 postgresql 设计模式 linux就该这么学 nas rag odoo python 文本切分

Contents

©2025 刘刚刚的blog. Some rights reserved.

Using the Halo theme Chirpy