Sự khác biệt giữa kiểu dữ liệu cột MySQL BOOL và BOOLEAN là gì?


88

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: BOOLBOOLEAN. Sự khác biệt giữa hai loại là gì?

Câu trả lời:


136

Cả hai đều là từ đồng nghĩa của TINYINT (1) .


11
Adam nói gì. Không có kiểu BOOLEAN thực tế trong MySQL.
Mchl,

25

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.


2
Điều này không thực sự trả lời câu hỏi. Sự khác biệt giữa BOOLvà là BOOLEANgì?
nalply

7
Các bài đăng trước đó đã được thiết lập rằng cả hai đều đồng nghĩa với TINYINT (1). Lý tưởng nhất, câu hỏi tiếp theo sẽ là "Tại sao họ phân biệt giữa các kiểu dữ liệu?"
Thứ sáu trước

3
@Sixthfore 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.
Kolyunya

4

Một điều tôi vừa nhận thấy - với một cột được định nghĩa là BOOL trong MySql, Spring Roo tạo chính xác mã Java để không quản lý giá trị thành Boolean, vì vậy, có lẽ việc chỉ định BOOL có thể thêm một số giá trị, ngay cả khi nó chỉ mang tính chất gợi ý về mục đích sử dụng của cột.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.