Computer >> Máy Tính >  >> Lập trình >> MySQL

Sự khác biệt giữa BIT và TINYINT trong MySQL là gì?

BIT có thể được sử dụng để lưu trữ giá trị của 1 bit. Nó có thể là 0 hoặc 1. Chúng tôi không thể lưu trữ, ví dụ 2 với kiểu dữ liệu BIT. Nếu chúng tôi cố gắng chèn 2 với kiểu dữ liệu BIT, MySQL sẽ phát sinh lỗi.

TINYINT có thể được sử dụng để lưu trữ giá trị 8 bit. Giá trị tối đa chúng tôi có thể lưu trữ là 127. Chúng tôi không thể lưu trữ, ví dụ:987 với giá trị 8 bit. Nếu chúng tôi cố gắng chèn 987 với kiểu dữ liệu TINYINT, MySQL sẽ phát sinh lỗi.

Hãy để chúng tôi làm việc đó thông qua MySQL phiên bản 8.0.12.

Để kiểm tra phiên bản được cài đặt trên hệ thống của bạn.

mysql> select version();

Sau đây là kết quả.

+-----------+
| version() |
+-----------+
| 8.0.12    |
+-----------+
1 row in set (0.00 sec)

Loại BIT

Tạo bảng với kiểu BIT.

mysql> create table BitDemo
   -> (
   -> Id BIT
   -> );
Query OK, 0 rows affected (0.56 sec)

Chèn bản ghi vào bảng ‘BitDemo’.

mysql> insert into BitDemo values(1);
Query OK, 1 row affected (0.13 sec)

mysql>  insert into BitDemo values(0);
Query OK, 1 row affected (0.33 sec)

Chúng tôi gặp lỗi bất cứ khi nào chúng tôi chèn 2 vào Bit.

mysql> insert into BitDemo values(2);
ERROR 1406 (22001): Data too long for column 'Id' at row 1

TINYINT

Tạo bảng với kiểu dữ liệu TINYINT.

mysql> create table TinyIntDemo
   -> (
   -> Id TINYINT
   -> );
Query OK, 0 rows affected (0.69 sec)

Chèn hồ sơ.

mysql> insert into TinyIntDemo values(123);
Query OK, 1 row affected (0.17 sec)

mysql>  insert into TinyIntDemo values(97);
Query OK, 1 row affected (0.15 sec)

mysql>  insert into TinyIntDemo values(127);
Query OK, 1 row affected (0.16 sec)

Chúng tôi gặp lỗi bất cứ khi nào chúng tôi cố gắng chèn giá trị vượt quá 127.

mysql> insert into TinyIntDemo values(9876);
ERROR 1264 (22003): Out of range value for column 'Id' at row 1
mysql>  insert into TinyIntDemo values(987);
ERROR 1264 (22003): Out of range value for column 'Id' at row
mysql> insert into TinyIntDemo values(255);
ERROR 1264 (22003): Out of range value for column 'Id' at row 1
mysql> insert into TinyIntDemo values(254);
ERROR 1264 (22003): Out of range value for column 'Id' at row 1
mysql>  insert into TinyIntDemo values(200);
ERROR 1264 (22003): Out of range value for column 'Id' at row 1
mysql>  insert into TinyIntDemo values(199);
ERROR 1264 (22003): Out of range value for column 'Id' at row 1

Giá trị tối đa mà chúng tôi có thể lưu trữ là 127.

Để hiển thị tất cả các bản ghi được chèn hợp lệ, hãy sử dụng lệnh SELECT.

mysql> select *from TinyIntDemo;

Đây là kết quả đầu ra.

+------+
| Id   |
+------+
|  123 |
|   97 |
|  127 |
+------+
3 rows in set (0.00 sec)