Chúng chiếm nhiều dung lượng khác nhau và chúng có các phạm vi giá trị chấp nhận được khác nhau.
Đây là kích thước và phạm vi giá trị cho SQL Server , các RDBMS khác có tài liệu tương tự:
Hóa ra tất cả chúng đều sử dụng cùng một đặc điểm kỹ thuật (với một vài ngoại lệ nhỏ được lưu ý bên dưới) nhưng hỗ trợ nhiều kiểu kết hợp khác nhau (không bao gồm Oracle vì nó chỉ có một NUMBER
kiểu dữ liệu, xem liên kết ở trên):
| SQL Server MySQL Postgres DB2
---------------------------------------------------
tinyint | X X
smallint | X X X X
mediumint | X
int/integer | X X X X
bigint | X X X X
Và chúng hỗ trợ các phạm vi giá trị giống nhau (với một ngoại lệ bên dưới) và tất cả đều có cùng yêu cầu lưu trữ:
| Bytes Range (signed) Range (unsigned)
--------------------------------------------------------------------------------------------
tinyint | 1 byte -128 to 127 0 to 255
smallint | 2 bytes -32768 to 32767 0 to 65535
mediumint | 3 bytes -8388608 to 8388607 0 to 16777215
int/integer | 4 bytes -2147483648 to 2147483647 0 to 4294967295
bigint | 8 bytes -9223372036854775808 to 9223372036854775807 0 to 18446744073709551615
Các loại "không dấu" chỉ có sẵn trong MySQL và phần còn lại chỉ sử dụng các phạm vi có dấu, với một ngoại lệ đáng chú ý: tinyint
trong SQL Server là chưa được ký và có phạm vi giá trị từ 0 đến 255