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

Có sự khác biệt trong việc sử dụng INT (1) so với TINYINT (1) trong MySQL không?

Số 1 được sử dụng trong ngoặc đơn chỉ để hiển thị chiều rộng. INT (1) và TINYINT (1) không ảnh hưởng đến việc lưu trữ.

TINYINT chiếm 1 byte có nghĩa là nó có phạm vi -128 đến +127 trong khi int chiếm 4 byte; nó có phạm vi -2147483648 đến +2147483647

Để hiểu cách hiển thị chiều rộng, chúng ta hãy tạo một bảng -

mysql> create table intAndTinyint
   −> (
   −> FirstNumber int(1) zerofill,
   −> SecondNumber tinyint(1) zerofill
   −> );
Query OK, 0 rows affected (0.52 sec)

Bây giờ bạn có thể chèn các bản ghi trong bảng. Truy vấn như sau -

mysql> insert into intAndTinyint values(1,1);
Query OK, 1 row affected (0.32 sec)

mysql> insert into intAndTinyint values(12,12);
Query OK, 1 row affected (0.26 sec)

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

Hiển thị tất cả các bản ghi từ bảng với câu lệnh select. Truy vấn như sau -

mysql> select *from intAndTinyint;

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

+-------------+--------------+
| FirstNumber | SecondNumber |
+-------------+--------------+
|           1 |            1 |
|          12 |           12 |
|         123 |          123 |
+-------------+--------------+
3 rows in set (0.00 sec)

Bạn sẽ hiểu điều này khi số 1 của dấu ngoặc đơn sẽ được tăng lên nhiều hơn 1 với số không điền. Hãy để chúng tôi xem một ví dụ chỉ dành cho INT để hiểu khái niệm về zerofill cho chiều rộng.

Tạo một bảng. Sau đây là truy vấn để tạo bảng -

mysql> create table intVsIntAnyThingDemo
   −> (
   −> Number1 int(11) unsigned zerofill,
   −> Number int(13) unsigned zerofill
   −> );
Query OK, 0 rows affected (1.17 sec)

Bây giờ bạn có thể chèn bản ghi trong bảng với sự trợ giúp của lệnh insert. Ở đây, chúng tôi đã đặt chiều rộng khác nhau cho INT. Truy vấn như sau -

mysql> insert into intVsIntAnyThingDemo values(12345,6789);
Query OK, 1 row affected (0.44 sec)

mysql> insert into intVsIntAnyThingDemo values(3,2);
Query OK, 1 row affected (0.20 sec)

mysql> insert into intVsIntAnyThingDemo values(12,89);
Query OK, 1 row affected (0.15 sec)

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

mysql> insert into intVsIntAnyThingDemo values(1234,6789);
Query OK, 1 row affected (0.14 sec)

Hiển thị tất cả các bản ghi với sự trợ giúp của câu lệnh select. Truy vấn như sau -

mysql> select *from intVsIntAnyThingDemo;

Sau đây là đầu ra hiển thị các độ rộng khác nhau và không lấp đầy

+-------------+---------------+
| Number1     | Number        |
+-------------+---------------+
| 00000012345 | 0000000006789 |
| 00000000003 | 0000000000002 |
| 00000000012 | 0000000000089 |
| 00000000123 | 0000000006789 |
| 00000001234 | 0000000006789 |
+-------------+---------------+
5 rows in set (0.00 sec)