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
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 ZEROFILL
tù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à 01
và 0001
cho 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
, b
và
c
đang sử dụng TINYINT[1]
, TINYINT[2]
và 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ẻ