文章目录

  • mysql常用数据类型
  • 1. 数值类型:
  • 2. 日期和时间类型:
  • 3. 字符串类型:
  • 4. 二进制类型:
  • 5. 其他类型:
  • 表格对比分析
  • 数值类型
  • 字符串类型
  • 日期时间类型
  • 什么时候用等长数据类型,什么时候用变长数据类型?
  • 什么时候用char,什么时候用binary?
  • 怎么区分文本数据和二进制数据?
  • mysql字符集与数据类型的区别与联系


mysql常用数据类型

MySQL支持多种数据类型,以下是一些最常用的:

1. 数值类型:

  • INT:用于存储整数。
  • FLOAT:用于存储浮点数。
  • DOUBLE:用于存储双精度浮点数。
  • DECIMAL:用于存储精确的小数,常用于金融计算。

2. 日期和时间类型:

  • DATE:用于存储日期(YYYY-MM-DD)。
  • TIME:用于存储时间(HH:MM:SS)。
  • DATETIME:用于存储日期和时间(YYYY-MM-DD HH:MM:SS)。
  • TIMESTAMP:用于存储时间戳。

3. 字符串类型:

  • CHAR:用于存储固定长度的字符串。它的长度范围是0到255个字符。
  • VARCHAR:用于存储可变长度的字符串。它的长度范围是0到65535个字符。
  • TEXT:用于存储长文本字符串。

4. 二进制类型:

  • BINARY:类似于 CHAR 类型,但存储的是二进制字节串。
  • VARBINARY:类似于 VARCHAR 类型,但存储的是二进制字节串。
  • BLOB:用于存储二进制大对象,例如图片、音频等。

5. 其他类型:

  • ENUM:枚举类型,用于创建有限的列表。
  • SET:与 ENUM 类似,但每个值可以保存零个或多个列出的值。

表格对比分析

数值类型

mysql中性别只能是男或女的check约束 mysql性别用什么类型_数据类型

  • 示例:
    年龄:age tinyint unsigned 分数:score double(4,1),表示最长四位有效数字(100.0),然后1表示有1位小数。

字符串类型

mysql中性别只能是男或女的check约束 mysql性别用什么类型_数据类型_02


定长字符串性能较好,变长字符串性能较差。

  • 示例:
    用户名:username varchar(50) 性别:gender char(1)

日期时间类型

mysql中性别只能是男或女的check约束 mysql性别用什么类型_数据_03

  • 示例:
    生日:birthday date

什么时候用等长数据类型,什么时候用变长数据类型?

CHARVARCHAR为例,它们 都是 MySQL 中用来存储字符串的数据类型,但它们之间存在一些关键差异。选择哪一个取决于你的具体需求:

  • 使用 CHAR:当你存储的字符串长度固定或者非常接近时,例如性别、国家代码、邮政编码等。CHAR 类型会为每一行分配相同的空间,无论实际存储的内容是否占满。因此,对于这种情况,CHAR 可以提供更快的查询速度。
  • 使用 VARCHAR:当你存储的字符串长度变化较大时,例如名称、地址、描述等。VARCHAR 只占用必要的空间(加上额外的1或2个字节来记录实际长度)。如果某个字段可能包含短文本也可能包含长文本,那么 VARCHAR 将更节省空间。

总的来说,如果字符长度变动不大,选择 CHAR 会有更好的性能;如果字符长度变动很大,选择 VARCHAR 可以节省存储空间。

什么时候用char,什么时候用binary?

CHARBINARY 都是 MySQL 中的数据类型,但它们用于处理不同类型的数据:

  • 使用 CHAR:当你需要存储非二进制字符串(例如文本)时,应该使用 CHAR。MySQL 会根据字符集对 CHAR 类型的列进行排序和比较。
  • 使用 BINARY:当你需要存储二进制数据时,应该使用 BINARY。比如,当你想保存一个小图片或者其他非文本类的二进制数据时,可以使用 BINARY。对于 BINARY 类型的列,MySQL 会进行字节级别的比较。

总的来说,选择哪个类型主要取决于你需要处理的数据类型。如果你在处理文本数据,那么应该使用 CHAR;而如果你在处理二进制数据,那么应该使用 BINARY。

怎么区分文本数据和二进制数据?

文本数据和二进制数据的主要区别在于它们的内容和用途。

文本数据 是指可以直接读取和理解的数据,比如英文、中文等其他语言的字符、数字、标点符号等。这些数据通常是用户可读的,并且常常会进行诸如排序、搜索、比较等操作。例如,姓名、地址、描述等都是文本数据。

二进制数据 是指不直接面向人类阅读,而是面向计算机或其他设备的数据。这种数据以二进制形式存储,不能(或者不需要)转化为人类可读的形式。例如,图片、音频文件、视频文件、压缩文件等都属于二进制数据。

如何确定数据是文本还是二进制,主要看这个数据是否能直接被人类阅读和理解,以及这个数据的使用方式。如果一个数据主要用来显示给用户看,那么大概率上它是文本数据;如果一个数据主要用来在系统内部传输、处理,或者保存到磁盘但并不直接显示给用户,那么它可能是二进制数据。

mysql字符集与数据类型的区别与联系

字符集和数据类型是MySQL数据库中的两个重要概念,它们各自有不同的作用,但也有一定的联系。

字符集(Character Set):

字符集决定了数据库如何解读存储的数据。在MySQL中,字符集可以理解为一个编码规则,用来定义如何将字符转换为字节以及如何从字节序列转换回字符。例如,"UTF-8"是一种常见的字符集,能够支持世界上几乎所有的语言。

数据类型(Data Type):

数据类型决定了什么样的数据可以被存储在数据库表的字段中。例如,INT用于存储整数,VARCHAR用于存储可变长度的字符串,DATE用于存储日期等。每种数据类型都有其特定的范围和需求。

区别:

  1. 字符集是关于字符如何存储和解释的规则,而数据类型是关于数据应该如何被处理和存储的规则。
  2. 数据类型主要关注数据的性质,比如是整数、浮点数还是字符串等,而字符集更关注数据的展示和存储方式,比如数据应该以哪种编码存储和显示。

联系:

字符集和数据类型都是用来管理和控制数据库中数据的方式。对于某些数据类型,比如文本或者字符串类型,字符集就显得尤为重要。例如,如果我们选择了VARCHAR类型来存储字符串,那么字符集将决定这些字符串如何被存储和解释。另外,选择不同的字符集可能会影响到数据的存储需求和性能。

总的来说,字符集和数据类型是在创建数据库或表时必须考虑的两个因素,正确的选择可以提高数据库的性能和准确性。