Có. Trong MySQL, BOOL và BOOLEAN là **từ khóa đồng nghĩa (alias)** của TINYINT(1). MySQL lưu trữ nội bộ là TINYINT(1).
Minh chứng
Tạo bảng cột BOOL:
CREATE TABLE boolToTinyIntDemo (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(20),
isAgeGreaterThan18 BOOL
);
Kiểm tra cấu trúc (DESC):
+--------------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+-------------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | Name | varchar(20) | YES | | NULL | | | isAgeGreaterThan18 | tinyint(1) | YES | | NULL | | +--------------------+-------------+------+-----+---------+----------------+
→ Cột isAgeGreaterThan18 kiểu BOOL hiển thị là tinyint(1).
Chèn dữ liệu:
INSERT INTO boolToTinyIntDemo (Name, isAgeGreaterThan18) VALUES ('Larry', TRUE), ('Sam', FALSE);
SELECT:
+----+-------+--------------------+ | Id | Name | isAgeGreaterThan18 | +----+-------+--------------------+ | 1 | Larry | 1 | | 2 | Sam | 0 | +----+-------+--------------------+
Tóm tắt:
TRUE= 1,FALSE= 0 (không phân biệt hoa/thường).IS TRUE,IS FALSE,IS NULLdùng cho kiểm tra boolean.- Khi migration sang DB khác (PostgreSQL, SQL Server), chú ý: PostgreSQL có kiểu
BOOLEANthực sự, SQL Server dùngBIT.