Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ý nghĩa của tham số TINYINT (tham số) là gì?

Dữ liệu khôn ngoan, tinyint(1) , tinyint(2) , tinyint(3) vv tất cả đều hoàn toàn giống nhau. Tất cả chúng đều nằm trong khoảng -128 đến 127 cho SIGNED hoặc 0-255 cho UNSIGNED . Như các câu trả lời khác đã lưu ý rằng số trong ngoặc đơn chỉ là gợi ý về độ rộng màn hình.

Tuy nhiên, bạn có thể muốn lưu ý rằng ứng dụng =những thứ khôn ngoan có thể trông khác. Đây, tinyint(1) có thể mang một ý nghĩa đặc biệt. Ví dụ:Trình kết nối / J (Trình kết nối Java) xử lý tinyint(1) dưới dạng giá trị boolean và thay vì trả về kết quả số cho ứng dụng, nó chuyển đổi giá trị thành truefalse . điều này có thể được thay đổi thông qua tinyInt1isBit=false tham số kết nối.

Một tinyint (1) có thể chứa các số trong phạm vi -128 đến 127, do kiểu dữ liệu là 8 bit (1 byte) - rõ ràng là tinyint không có dấu có thể giữ các giá trị 0-255.

Nó sẽ tự động cắt bớt các giá trị ngoài phạm vi:

mysql> create table a
    -> (
    ->    ttt tinyint(1)
    -> );
Query OK, 0 rows affected (0.01 sec)

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

mysql> insert into a values ( -128 );
Query OK, 1 row affected (0.00 sec)

mysql> insert into a values ( 128 );
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into a values ( -129 );
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from a;
+------+
| ttt  |
+------+
|  127 |
| -128 |
|  127 |
| -128 |
+------+
4 rows in set (0.00 sec)

mysql>

... trừ khi bạn thay đổi sql_mode hoặc thay đổi cấu hình máy chủ:

mysql> set sql_mode=STRICT_ALL_TABLES;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into a values ( -129 );
ERROR 1264 (22003): Out of range value for column 'ttt' at row 1
mysql>

Giá trị được sử dụng trong DDL cho kiểu dữ liệu (ví dụ:tinyint (1)), như bạn đã nghi ngờ, là chiều rộng hiển thị. Tuy nhiên, nó là tùy chọn và khách hàng không cần phải sử dụng nó. Ví dụ:máy khách MySQL tiêu chuẩn không sử dụng nó.

https://dev.mysql .com / doc / refman / 5.1 / en / integer-styles.html

https:// dev .mysql.com / doc / refman / 5.0 / en / numeric-type-Overview.html

MySql:Tinyint (2 ) so với tinyint (1) - sự khác biệt là gì?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự cố với các ký tự UTF-8; những gì tôi thấy không phải là những gì tôi đã lưu trữ

  2. Chọn trong MySQL nơi tất cả các hàng đáp ứng một điều kiện

  3. Tải CSV vào bảng MySQL bằng PHP

  4. Bảo mật cơ sở dữ liệu 101:Bảo mật trong cơ sở dữ liệu nguồn mở

  5. Email Xác nhận Php không gửi