`

选择合适的 MySQL 布尔数据类型

阅读更多
在 MySQL 数据库中,你是如何实现 True/False 字段的呢?

有这么几种类型:

1. 枚举 ENUM

例如:ENUM(‘F’, ‘T’), ENUM(‘N’,'Y’), ENUM(‘0′, ‘1′)。MySQL 的系统库的 user 表也是使用这种方式,简单而直观,仅限两个值,占用空间小,只需要一个字节(byte)

缺点:数据库内部使用数值来存储,第一个值是1,因此 False = 1,True = 2,而且在一个布尔表达式中总是返回 True

2. CHAR(1)

同样简单,可选择多个值,包括 T 和 F,所以可能会引入一些无效的值,如 X,如果使用 UTF8 编码,那么 CHAR(1) 将会占用 3 个字节空间

3. CHAR(0)

这是一种很奇怪的方法,0 怎么表示呢?但事实上 MySQL 确实可以这样做。看看下面这个例子:

CREATE TABLE `t1` (
`bval` char(0) DEFAULT NULL
);
mysql> INSERT INTO t1 VALUES ('');
mysql> INSERT INTO t1 VALUES ('');
mysql> INSERT INTO t1 VALUES (NULL);

mysql> SELECT * FROM t1;
+------+
| bval |
+------+
|      |
|      |
| NULL |
+------+
这种方法比较怪,尽管适合用来表示布尔值,但不直观。

4. TINYINT

本人就喜欢这种,使用0来表示False,1表示True,不管数据库编码如何,只占用一个字节宽度,可以有256种值,但不能阻止使用其他非0和1的值。

分享到:
评论

相关推荐

    MySql于Java数据类型对应列表

    ### MySQL与Java数据类型对应详解 ...在实际开发过程中,选择合适的数据类型对于提高程序性能和维护性至关重要。此外,了解这些类型的映射关系也有助于避免因类型转换问题导致的错误,确保应用程序能够高效稳定地运行。

    sql mysql oracle数据类型

    【标题】: "SQL MySQL Oracle 数据类型对比与理解" 【描述】: "本文将深入探讨 MySQL、Oracle 和 SQL Server 三大主流数据库系统中的数据类型,以及它们与 JDBC 数据类型的对应关系,帮助读者全面理解各数据库的...

    java_mysql_数据类型对照.doc

    - **整型与浮点型**:选择合适的数据类型对性能和存储空间有直接影响。例如,使用TINYINT而非INTEGER可以节省存储空间,但其范围较小;使用FLOAT而非DOUBLE牺牲了精度,但在不需要极高精度的情况下可以提高效率。 ...

    MySql数据类型,非常详细!

    MySQL是一种广泛使用的开源关系型数据库管理系统,其数据类型是数据库设计的基础,理解并熟练掌握MySQL的数据类型对于数据库的...在设计数据库时,还需要考虑数据的扩展性和一致性,避免因数据类型选择不当导致的问题。

    MYSQL 数据类型

    【MySQL 数据类型】是数据库设计中的关键概念,它决定了数据的存储方式、占用空间以及可接受的值的范围。MySQL 提供了丰富的数据类型,包括整数类型、浮点数类型、定点数类型、日期和时间类型、字符串类型以及二进制...

    MS-sql、Oracle、Mysql、Informix数据类型集锦

    在数据库管理领域,数据类型是定义数据结构的关键部分,它们决定了可以存储的数据种类以及数据的存储方式。...在设计数据库时,应根据数据的特性选择最适合的数据类型,确保数据的有效管理和高效利用。

    mysql加强 布尔教育 40-46 共46集

    在“mysql加强 布尔教育 40-46 共46集”这个系列中,我们深入探讨了MySQL的一些关键概念和技术,旨在提升数据库性能和管理效率。下面我们将逐个分析涉及的课程内容。 1. **40 - 存储引擎的概念**: MySQL支持多种...

    MySQL常用数据类型[文].pdf

    MySQL是一种广泛使用的开源关系型数据库管理系统,...在设计数据库时,应根据实际需求来选择最适合的数据类型,以确保数据的有效存储和高效查询。理解这些数据类型的特点和应用场景,有助于创建更加优化的数据库结构。

    第12章_MySQL数据类型精讲1

    MySQL 数据类型是数据库设计的基础,它决定了数据存储的格式和占用的空间。在第12章“MySQL数据类型精讲”中,讲师宋红康详细介绍了MySQL...在实际应用中,应根据数据的需求选择合适的数据类型,以优化存储和查询性能。

    mysql加强 布尔教育 27-39 共46集

    通过布尔教育的这一系列课程,学习者将深入理解MySQL的核心概念,掌握数据类型的选择、表的设计原则、主键和索引的运用,以及高级查询技术。这些知识点对于从事数据库开发、管理和维护的人员来说,是提高工作效率和...

    mysql数据类型.doc

    在MySQL中,有多种数据类型可供选择,每种类型都有其特定的用途和限制。以下是对这些数据类型的详细解释: 1. 整数类型: - TINYINT(M):占用1字节,可选布尔类型(BIT, BOOL, BOOLEAN)。无符号时范围为0到255,...

    MySQL第四讲[数据类型].rar

    了解并正确选择MySQL中的数据类型对于创建高效且易于管理的数据库至关重要。 首先,我们来谈谈MySQL中最基础的数据类型: 1. **整数类型**:包括TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和BIGINT。它们分别...

    mysql与oracle数据类型对应关系.pdf

    在Java应用程序中,使用JDBC连接数据库时,需要将Java对象转换为适合特定数据库的数据类型。例如,当从Oracle数据库读取NUMBER类型时,可能需要使用`BigDecimal`来存储精确数值,而从MySQL读取FLOAT时,可能使用`...

    mysql与oracle数据类型对应关系.docx

    在实际开发中,选择合适的数据类型能有效提高数据库性能和存储效率。例如,如果存储的数字不需要精确到小数,可以选择 `INTEGER` 而不是 `DECIMAL`;对于日期和时间,根据需要可以选择 `DATE`、`TIME` 或 `TIMESTAMP...

    mysql 数据类型

    MySQL 数据类型是数据库设计的基础,它决定了数据在存储和处理时的精确度、...正确选择MySQL中的数据类型对数据库性能、存储效率和数据准确性至关重要。在设计数据库时,应根据实际需求仔细考虑每个字段的数据类型。

    MySql Oracle SqlServer三大数据库的数据类型列表.pdf

    MySQL、Oracle 和 SQL Server 是三大主流的关系型数据库管理系统,它们都拥有各自的数据类型来支持不同的数据存储...在实际应用中,应根据数据的具体特性和需求选择合适的数据类型,以确保数据的正确存储和高效操作。

    SQL标准数据类型-mysql

    MySQL,作为广泛使用的开源关系型数据库,遵循SQL标准,提供了多种数据类型以适应不同类型的存储需求。以下是对这些主要数据类型的详细说明: 1. **整型数据**: - `int`:整型数据,存储范围是 -2,147,483,648 至...

    Java数据类型与MySql数据类型对照表

    这篇文章将详细探讨Java数据类型与MySQL数据类型之间的对照,并提供选择和使用这些数据类型的方法。 首先,我们来看Java的数据类型,它们分为两大类:基本类型和引用类型。基本类型包括整型(如byte、short、int、...

    MySQL数据库应用案例视频教程下载第5讲 数据类型和运算符.zip

    了解这些数据类型后,我们还需要掌握如何在SQL语句中正确使用它们,以及它们在实际场景中的应用,比如选择适合的数据类型可以优化存储空间和查询性能。 接下来是运算符,它是执行计算和比较的基础。MySQL中的运算符...

    PostgreSQL与mysql字段对比.docx

    本文档对比了PostgreSQL和MySQL的数据类型,包括BIT、BOOLEAN、CHAR、DATE、DATETIME、DECIMAL... 上述是PostgreSQL和MySQL数据类型的详细对比,了解这些数据类型的差异将有助于开发者更好地选择合适的数据库管理系统。

Global site tag (gtag.js) - Google Analytics