Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistem Platform Analitik (PDW)
Titik akhir analitik SQL di Microsoft Fabric
Gudang di Microsoft Fabric
Database SQL di Microsoft Fabric
Jenis data angka yang tepat yang menggunakan data bilangan bulat. Untuk menghemat ruang dalam database, gunakan tipe data terkecil yang dapat dengan andal berisi semua nilai yang mungkin. Misalnya, tinyint akan cukup untuk tabel pencarian kecil dengan nilai status, karena dapat menyimpan sebanyak 256 baris. Tapi tinyint tidak cukup untuk daftar karyawan, karena perusahaan Anda bisa memiliki ratusan atau ribuan karyawan.
| Jenis data | Range | Ekspresi rentang | Storage |
|---|---|---|---|
| bigint | -9,223,372,036,854,775,808 hingga 9,223,372,036,854,775,807 | -2^63 hingga 2^63-1 | 8 byte |
| int | -2,147,483,648 hingga 2,147,483,647 | -2^31 hingga 2^31-1 | 4 byte |
| smallint | -32,768 hingga 32,767 | -2^15 hingga 2^15-1 | 2 byte |
| tinyint | 0 hingga 255 | 2^0-1 hingga 2^8-1 | 1 byte |
Remarks
Jenis data int adalah jenis data bilangan bulat utama di SQL Server. Jenis data bigint dimaksudkan untuk digunakan ketika nilai bilangan bulat mungkin melebihi rentang yang didukung oleh jenis data int .
bigint cocok antara smallmoney dan int dalam bagan prioritas jenis data.
Fungsi mengembalikan bigint hanya jika ekspresi parameter adalah jenis data bigint . SQL Server tidak secara otomatis mempromosikan jenis data bilangan bulat lainnya (tinyint, smallint, dan int) ke bigint.
Konversi dan parameterisasi
Saat Anda menggunakan +operator aritmatika , , -*, /atau % untuk melakukan konversi implisit atau eksplisit dari nilai konstanta int, smallint, tinyint, atau bigint ke jenis data float, nyata, desimal, atau numerik, aturan yang diterapkan SQL Server ketika menghitung jenis data dan presisi hasil ekspresi berbeda tergantung pada apakah kueri diparameterisasi otomatis atau tidak.
Oleh karena itu, ekspresi serupa dalam kueri terkadang dapat menghasilkan hasil yang berbeda. Saat kueri tidak diparameterkan otomatis, nilai konstanta pertama kali dikonversi ke desimal, yang presisinya hanya cukup besar untuk menahan nilai konstanta, sebelum mengonversi ke jenis data yang ditentukan. Misalnya, nilai 1 konstanta dikonversi menjadi desimal(1,0), dan nilai 250 konstanta dikonversi menjadi desimal(3,0).
Saat kueri diparameterkan otomatis, nilai konstanta selalu dikonversi ke desimal (10,0) sebelum dikonversi ke jenis data akhir. Ketika operator / terlibat, tidak hanya presisi jenis hasil yang berbeda di antara kueri serupa, tetapi nilai hasilnya juga dapat berbeda. Misalnya, nilai hasil kueri berparameter otomatis yang menyertakan ekspresi SELECT CAST (1.0 / 7 AS float), berbeda dari nilai hasil kueri yang sama yang tidak diparameterkan otomatis, karena hasil kueri yang diparameterisasi otomatis, dipotong agar pas dengan tipe data desimal(10,0 ).
Jenis data kecil tidak didukung di Microsoft Fabric.
Mengonversi data bilangan bulat
Ketika bilangan bulat dikonversi secara implisit ke jenis data karakter, jika bilangan bulat terlalu besar agar pas dengan bidang karakter, SQL Server menggunakan karakter ASCII 42, tanda bintang (*).
Konstanta bilangan bulat yang lebih besar dari 2.147.483.647 dikonversi ke jenis data desimal , bukan jenis data bigint . Contoh berikut menunjukkan bahwa ketika nilai ambang terlampaui, jenis data hasil berubah dari int menjadi desimal.
SELECT 2147483647 / 2 AS Result1,
2147483649 / 2 AS Result2;
Berikut set hasilnya.
Result1 Result2
----------- ------------------
1073741823 1073741824.500000
Examples
Contoh berikut membuat tabel menggunakan jenis data bigint, int, smallint, dan tinyint . Nilai disisipkan ke dalam setiap kolom dan dikembalikan dalam SELECT pernyataan.
CREATE TABLE dbo.MyTable
(
MyBigIntColumn BIGINT,
MyIntColumn INT,
MySmallIntColumn SMALLINT,
MyTinyIntColumn TINYINT
);
GO
INSERT INTO dbo.MyTable
VALUES (9223372036854775807, 2147483647, 32767, 255);
GO
SELECT MyBigIntColumn,
MyIntColumn,
MySmallIntColumn,
MyTinyIntColumn
FROM dbo.MyTable;
Berikut set hasilnya.
MyBigIntColumn MyIntColumn MySmallIntColumn MyTinyIntColumn
-------------------- ----------- ---------------- ---------------
9223372036854775807 2147483647 32767 255