MySQL - TINYINT:初学者的指南

你好,未来的数据库大师们!今天,我们将深入MySQL的世界,探索一个微小但强大的数据类型:TINYINT。不要被它的大小所迷惑;这个小程序在存储小整数值时非常高效。所以,戴上你的虚拟安全帽,让我们开始探索TINYINT的世界吧!

MySQL - TINYINT

MySQL的TINYINT数据类型

什么是TINYINT?

TINYINT是MySQL的整数数据类型之一,用于存储小整数。把它想象成整数世界的紧凑型汽车——小巧、高效,非常适合短途旅行(或者在我们的例子中,小数字)。

主要特性

  1. 大小:TINYINT使用仅为1字节的存储空间。
  2. 范围
  • 有符号:-128到127
  • 无符号:0到255

何时使用TINYINT

TINYINT非常适合在需要存储小整数值的场景中使用。例如:

  • 年龄(0-255岁应该足够了,对吧?即使是吸血鬼!)
  • 评分(1-5星)
  • 小计数器
  • 布尔值(0或1)

语法

column_name TINYINT[(M)] [UNSIGNED] [ZEROFILL]

让我们分解一下:

  • M:可选的显示宽度(0-255)
  • UNSIGNED:将范围设为0到255
  • ZEROFILL:用前导零填充值的显示

TINYINT实战:使用客户端程序

现在,让我们卷起袖子,看看TINYINT的实际应用。我们将使用一些示例来说明如何在MySQL中处理这个数据类型。

创建带有TINYINT的表

让我们创建一个简单的表来存储关于书籍评分系统的信息:

CREATE TABLE book_ratings (
id INT AUTO_INCREMENT PRIMARY KEY,
book_name VARCHAR(100),
rating TINYINT UNSIGNED,
is_recommended TINYINT(1)
);

在这个例子中:

  • rating 使用TINYINT UNSIGNED来存储0到5的评分。
  • is_recommended 使用TINYINT(1)作为布尔值(0为假,1为真)。

插入数据

让我们添加一些书籍评分:

INSERT INTO book_ratings (book_name, rating, is_recommended)
VALUES
('The MySQL Handbook', 5, 1),
('SQL for Dummies', 3, 0),
('Database Design 101', 4, 1);

查询TINYINT数据

现在,让我们检索我们的数据:

SELECT * FROM book_ratings;

输出:

+----+----------------------+--------+----------------+
| id | book_name            | rating | is_recommended |
+----+----------------------+--------+----------------+
|  1 | The MySQL Handbook   |      5 |              1 |
|  2 | SQL for Dummies      |      3 |              0 |
|  3 | Database Design 101  |      4 |              1 |
+----+----------------------+--------+----------------+

在条件中使用TINYINT

TINYINT在WHERE子句中效果很好:

SELECT book_name, rating
FROM book_ratings
WHERE rating > 3 AND is_recommended = 1;

这个查询会获取评分高且被推荐的书。

TINYINT作为布尔值

虽然MySQL有一个BOOLEAN类型,但它实际上是TINYINT(1)的别名。下面是如何使用它的方法:

CREATE TABLE task_list (
id INT AUTO_INCREMENT PRIMARY KEY,
task_name VARCHAR(100),
is_completed BOOLEAN
);

INSERT INTO task_list (task_name, is_completed)
VALUES
('Learn MySQL', TRUE),
('Master TINYINT', FALSE);

SELECT * FROM task_list;

输出:

+----+----------------+--------------+
| id | task_name      | is_completed |
+----+----------------+--------------+
|  1 | Learn MySQL    |            1 |
|  2 | Master TINYINT |            0 |
+----+----------------+--------------+

TINYINT方法和函数

以下是一些处理TINYINT的有用方法和函数:

方法/函数 描述 示例
ABS() 返回绝对值 SELECT ABS(TINYINT_COLUMN) FROM TABLE;
SIGN() 返回符号(-1,0或1) SELECT SIGN(TINYINT_COLUMN) FROM TABLE;
MOD() 返回余数 SELECT MOD(TINYINT_COLUMN, 3) FROM TABLE;
GREATEST() 返回最大值 SELECT GREATEST(TINYINT_COL1, TINYINT_COL2) FROM TABLE;
LEAST() 返回最小值 SELECT LEAST(TINYINT_COL1, TINYINT_COL2) FROM TABLE;

结论

好了,各位!我们已经对MySQL中的TINYINT数据类型进行了旋风式的介绍。从它紧凑的大小到存储小整数值的多功能性,甚至布尔值,TINYINT证明了有时候最好的东西确实来自小包装。

记住,选择正确的数据类型对数据库性能和效率至关重要。TINYINT可能看起来很小,但在处理数百万行数据时,它可以带来巨大的差异!

在你继续MySQL之旅时,请将TINYINT放入你的工具箱。它就像那把可靠的折叠刀——小巧,但在你需要它的时候非常实用。祝您编程愉快,愿您的数据库永远高效优化!

Credits: Image by storyset