Tôi đang sử dụng MySQL phiên bản 5.1.49-1ubuntu8.1. Nó cho phép tôi xác định các cột của hai kiểu dữ liệu khác nhau: BOOL
và BOOLEAN
. Sự khác biệt giữa hai loại là gì?
Câu trả lời:
Như đã thiết lập trong các nhận xét khác, chúng đồng nghĩa với TINYINT (1).
* Vì vậy, tại sao họ bận tâm phân biệt giữa bool, boolean, tiny * int (1)?
Chủ yếu là ngữ nghĩa.
Bool và Boolean: Mặc định của MySQL chuyển đổi chúng thành kiểu tinyint. Theo một câu lệnh MySQL được đưa ra vào khoảng thời gian viết bài này, "Chúng tôi dự định triển khai xử lý kiểu boolean đầy đủ, phù hợp với SQL tiêu chuẩn, trong bản phát hành MySQL trong tương lai."
0 = FALSE 1 = TRUE
TINYINT: Chiếm một byte; nằm trong khoảng từ -128 đến +127; hoặc, 0 - 256.
Thường được đưa ra trong so sánh này: Sau MySQL 5.0.3 - Bit: Sử dụng 8 byte và chỉ lưu trữ dữ liệu nhị phân.
BOOL
và là BOOLEAN
gì?
Bit: Uses 8 bytes and stores only binary data.
là thông tin không chính xác. Khi bạn thêm một cột bit vào bảng của mình, nó sẽ chiếm toàn bộ byte trong mỗi bản ghi, không chỉ một bit đơn lẻ. Khi bạn thêm một cột bit thứ hai, nó sẽ được lưu trữ trong cùng một byte. Cột bit thứ chín sẽ yêu cầu byte lưu trữ thứ hai.
kiểm tra tổng quan về tài liệu MySQL của các kiểu số:
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html