Hướng dẫn tinyint mysql

Tôi biết boolean trong mysql là tinyint (1).

Hôm nay tôi thấy một bảng có định nghĩa một số nguyên như tinyint(2), và các bảng khác cũng như int(4), int(6)...

Kích thước có nghĩa là gì trong trường loại nguyên và tinyint?

  • mysql
  • sqldatatypes

150 hữu ích 3 bình luận 182k xem chia sẻ

answer

55

Hướng dẫn tinyint mysql

Nó có nghĩa là chiều rộng màn hình

Cho dù bạn sử dụng tinyint (1) hay tinyint (2), nó sẽ không tạo ra bất kỳ sự khác biệt nào.

Tôi luôn sử dụng tinyint (1) và int (11), tôi đã sử dụng một số máy khách mysql (navicat, sequel pro).

Nó không có nghĩa gì cả TẤT CẢ! Tôi đã chạy thử nghiệm, tất cả các máy khách ở trên hoặc thậm chí máy khách dòng lệnh dường như bỏ qua điều này.

Nhưng, chiều rộng hiển thị là quan trọng nhất nếu bạn đang sử dụng ZEROFILLtùy chọn, ví dụ: bảng của bạn có 2 cột sau:

Một zerofill nhỏ xíu (2)

B nhỏ xíu (4) zerofill

cả hai cột có giá trị là 1, đầu ra cho cột A sẽ là 010001cho B , như được thấy trong ảnh chụp màn hình bên dưới :)

55 hữu ích 4 bình luận chia sẻ

answer

204

Chỉ (m)ra chiều rộng hiển thị cột; các ứng dụng như máy khách MySQL sử dụng điều này khi hiển thị kết quả truy vấn.

Ví dụ:

| v   | a   |  b  |   c |
+-----+-----+-----+-----+
| 1   | 1   |  1  |   1 |
| 10  | 10  | 10  |  10 |
| 100 | 100 | 100 | 100 |

Ở đây a, bcđang sử dụng TINYINT(1), TINYINT(2)TINYINT(3)tương ứng. Như bạn có thể thấy, nó đệm các giá trị ở phía bên trái bằng chiều rộng màn hình.

Điều quan trọng cần lưu ý là nó không ảnh hưởng đến phạm vi giá trị được chấp nhận cho loại cụ thể đó, tức là TINYINT(1)vẫn chấp nhận [-128 .. 127].

204 hữu ích 5 bình luận chia sẻ

answer

18

mysql> CREATE TABLE tin3(id int PRIMARY KEY,val TINYINT(10) ZEROFILL);
Query OK, 0 rows affected (0.04 sec)

mysql> INSERT INTO tin3 VALUES(1,12),(2,7),(4,101);
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM tin3;
+----+------------+
| id | val        |
+----+------------+
|  1 | 0000000012 |
|  2 | 0000000007 |
|  4 | 0000000101 |
+----+------------+
3 rows in set (0.00 sec)

mysql>

mysql> SELECT LENGTH(val) FROM tin3 WHERE id=2;
+-------------+
| LENGTH(val) |
+-------------+
|          10 |
+-------------+
1 row in set (0.01 sec)


mysql> SELECT val+1 FROM tin3 WHERE id=2;
+-------+
| val+1 |
+-------+
|     8 |
+-------+
1 row in set (0.00 sec)

18 hữu ích 1 bình luận chia sẻ

answer

13

Giới thiệu về INT, TINYINT ... Đây là các loại dữ liệu khác nhau, INT là số 4 byte, TINYINT là số 1 byte. Thêm thông tin ở đây - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT .

Cú pháp của kiểu dữ liệu TINYINT là TINYINT (M), trong đó M chỉ chiều rộng hiển thị tối đa (chỉ được sử dụng nếu máy khách MySQL của bạn hỗ trợ nó).

Thuộc tính kiểu số .

13 hữu ích 3 bình luận chia sẻ

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm