INT là viết tắt của số nguyên và là một nhóm các kiểu dữ liệu trong nhiều cơ sở dữ liệu lưu trữ số. Có nhiều kiểu dữ liệu INT trong cơ sở dữ liệu SQL chính
Trong hướng dẫn này, bạn sẽ thấy tất cả các loại dữ liệu INT này, xem các hạn chế của chúng và cách chúng so sánh giữa các cơ sở dữ liệu
Hãy cùng xem
Mục lục
Kiểu dữ liệu SQL INT
Chúng ta sẽ xem xét bốn cơ sở dữ liệu SQL chính trong hướng dẫn này. Oracle, Máy chủ SQL, MySQL và PostgreSQL. Mỗi người trong số họ có các loại dữ liệu INT hơi khác nhau và có thể gây nhầm lẫn khi nhớ loại dữ liệu nào làm gì
Vì vậy, trong hướng dẫn này, chúng tôi sẽ xem xét tất cả chúng, cũng như bảng so sánh
Để biết thêm thông tin về tất cả các loại dữ liệu khác nhau trong các cơ sở dữ liệu này, hãy xem bài đăng này về Các loại dữ liệu SQL
Các kiểu dữ liệu SQL Server INT
Dưới đây là các kiểu dữ liệu INT tồn tại trong SQL Server
Loại dữ liệuPhạm viStorageTINYINT0 đến 2551 byteSMALLINT-32,768 đến 32,7672 byteINT-2,147,483,648 đến 2,147,483,6474 byteBIGINT-9,223,372,036,854,775,808 đến 9,223,372,036,854,78 byteKiểu dữ liệu số nguyên chính là INT. Đây là cách phổ biến nhất mà tôi đã thấy trong mã của riêng mình và trong các ví dụ trực tuyến. Nó lưu trữ tới khoảng 2 tỷ, đủ lớn cho nhiều dữ liệu số
Bạn nên sử dụng loại dữ liệu nhỏ nhất có thể chứa các giá trị mà bạn có thể cần. Đôi khi, đây có thể là TINYINT, nếu bạn mong đợi ít hơn 255 giá trị
Lưu ý rằng từ INTEGER là từ đồng nghĩa với INT. Điều này có nghĩa là nếu bạn sử dụng INTEGER, cơ sở dữ liệu sẽ dịch nó thành INT
Ví dụ
Dưới đây là ví dụ về cách tạo bảng với các kiểu dữ liệu này và chèn giá trị vào chúng
CREATE TABLE sql_server_int [
tinyint_col TINYINT,
smallint_col SMALLINT,
int_col INT,
bigint_col BIGINT
];
INSERT INTO sql_server_int [tinyint_col, smallint_col, int_col, bigint_col]
VALUES [255, 32767, 2147483647, 9223372036854775807];
Các giá trị được chèn vào bảng
Các kiểu dữ liệu MySQL INT
MySQL có một số kiểu dữ liệu số nguyên
Data TypeRange [Unsigned]Range [Signed]StorageTINYINT0 to 255-128 to 1271 byteSMALLINT0 to 65,535-32,768 to 32,7672 bytesMEDIUMINT0 to 16777215-8,388,608 to 8,388,6073 bytesINT0 to 4,294,967,295-2,147,483,648 to 2,147,483,6474 bytesBIGINT0 to 18,446,744,073,709,551,616-9,223,372,036,854,775,807 to 9,223,372,036,854,775MySQL là nhà cung cấp duy nhất trong số bốn nhà cung cấp này có kiểu dữ liệu INT không dấu. Kiểu dữ liệu không dấu có nghĩa là không có chỉ báo nào cho biết dữ liệu đó là dương hay âm, vì vậy tất cả các giá trị đều là dương [hoặc 0]. Điều này có nghĩa là phạm vi cao hơn
Ví dụ
Đây là một ví dụ về tạo bảng và chèn dữ liệu bằng kiểu dữ liệu INT của MySQL
CREATE TABLE mysql_int [
tinyint_col TINYINT,
smallint_col SMALLINT,
mediumint_col MEDIUMINT,
int_col INT,
bigint_col BIGINT
];
INSERT INTO mysql_int [tinyint_col, smallint_col, mediumint_col, int_col, bigint_col]
VALUES [127, 32767, 8388607, 2147483647, 9223372036854775807];
Ngoài ra, đây là một ví dụ về việc sử dụng số nguyên UNSIGNED trong MySQL. Bạn chỉ cần thêm chữ UNSIGNED sau khi khai báo kiểu dữ liệu
CREATE TABLE mysql_int_unsigned [
tinyint_col TINYINT UNSIGNED,
smallint_col SMALLINT UNSIGNED,
mediumint_col MEDIUMINT UNSIGNED,
int_col INT UNSIGNED,
bigint_col BIGINT UNSIGNED
];
INSERT INTO mysql_int_unsigned [tinyint_col, smallint_col, mediumint_col, int_col, bigint_col]
VALUES [255, 65535, 16777215, 4294967295, 18446744073709551616];
Các kiểu dữ liệu Oracle INT
Dưới đây là các kiểu dữ liệu INT trong Oracle SQL
Loại dữ liệuPhạm viStorageNUMBER– 1 x 10^-130 đến 9. 99…9 x 10^125Lên đến 21 byteOracle thực sự chỉ có kiểu dữ liệu SỐ để lưu trữ số nguyên. Nó lưu tối đa 38 chữ số và sử dụng tối đa 21 byte để lưu số nên khá linh hoạt
Kiểu dữ liệu SỐ cũng có thể được sử dụng để lưu trữ số thập phân hoặc số có vị trí thập phân
Có một số từ khóa hoặc loại dữ liệu khác trong Oracle, nhưng tất cả chúng đều được dịch sang SỐ
- số nguyên
- TRÔI NỔI
- SỐ THẬP PHÂN
- SỐ
- INT
- NHỎ
Ví dụ
Đây là một ví dụ về cách tạo và chèn kiểu dữ liệu SỐ trong Oracle
CREATE TABLE oracle_int [
number_col NUMBER
];
INSERT INTO oracle_int [number_col]
VALUES [18446744073709551616];
Các kiểu dữ liệu PostgreSQL INT
PostgreSQL có một vài kiểu dữ liệu INT
Loại dữ liệuPhạm viLưu trữSMALLINT-32,768 đến 32,7672 byteINTEGER-2,147,483,648 đến 2,147,483,6474 byteBIGINT-9,223,372,036,854,775,808 đến 9,223,372,036,854,775,8078 byteBa kiểu dữ liệu này tương tự như các cơ sở dữ liệu khác. Loại INTEGER thường được khuyên dùng vì nó lưu trữ một loạt các giá trị thường là đủ. INTEGER giống như INT trong MySQL và SQL Server
Ví dụ
Đây là một ví dụ về tạo và chèn kiểu dữ liệu INT trong PostgreSQL
CREATE TABLE postgresql_int [
smallint_col SMALLINT,
integer_col INTEGER,
bigint_col BIGINT
];
INSERT INTO sql_server_int [smallint_col,integer_col, bigint_col]
VALUES [32767,2147483647, 9223372036854775807];
so sánh
Bây giờ chúng ta đã xem xét các loại dữ liệu khác nhau trong các cơ sở dữ liệu khác nhau, làm thế nào để so sánh giữa chúng?
Data TypeRangeSQL ServerMySQLOraclePostgreSQLTINYINT*-128 to 127YesYesSMALLINT-32,768 to 32,767YesYesYesMEDIUMINT-8,388,608 to 8,388,607YesINT or INTEGER-2,147,483,648 to 2,147,483,647YesYesYesBIGINT-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807YesYesYesNUMBER– 1 x 10^-130 to 9. 99…9 x 10^125CóNgoại lệ đối với TINYINT trong SQL Server chỉ không được ký, do đó, nó lưu trữ phạm vi từ 0 đến 255
Vì vậy, có cách so sánh các kiểu dữ liệu số nguyên khác nhau trong các nhà cung cấp SQL khác nhau. Hầu hết trong số họ chia sẻ một tập hợp các loại dữ liệu phổ biến, với Oracle là ngoại lệ