適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric の SQL 分析エンドポイント
Microsoft Fabric のウェアハウス
Microsoft Fabric の SQL データベース
整数データを使用する実数データ型です。 データベースの容量を節約するために、すべての可能な値を確実に含めることができる最小のデータ型を使用します。 たとえば、 tinyint は、状態値を持つ小さな参照テーブルでは 256 行まで格納できるため、十分です。 しかし、会社には数百または数千人の従業員が存在する可能性があるため、 tinyint は従業員のリストには不十分です。
| データの種類 | Range | 範囲式 | Storage |
|---|---|---|---|
| bigint | -9,223,372,036,854,775,808 から 9,223,372,036,854,775,807 | -2^63 から 2^63-1 | 8 バイト |
| int | -2,147,483,648 ~ 2,147,483,647 | -2^31 から 2^31-1 | 4 バイト |
| smallint | -32,768 ~ 32,767 | -2^15 から 2^15-1 | 2 バイト |
| tinyint | 0 ~ 255 | 2^0-1 から 2^8-1 | 1 バイト |
Remarks
Int データ型は、主要な整数データ型が SQL Serverです。 Bigint データ型は、整数値が int データ型でサポートされる範囲を超える可能性がある場合に使用されます。
bigint 間に位置 smallmoney と int データ型の優先順位表でします。
関数を返します。 bigint 、パラメーター式が場合にのみ、 bigint データ型。 SQL Server では、他の整数データ型 (tinyint、 smallint、および int) が自動的に bigintに昇格されることはありません。
変換とパラメーター化
+、-、*、/、または%算術演算子を使用して、int、smallint、tinyint、または bigint 定数値を float、real、decimal、または numeric データ型に暗黙的または明示的に変換する場合、SQL Server が式の結果のデータ型と精度を計算するときに適用される規則は、クエリが自動パラメーター化されているかどうかによって異なります。
したがって、クエリで同じ式を使用しても異なる結果が得られることがあります。 クエリが自動パラメーター化されていない場合、定数値は最初に decimal に変換されます。その有効桁数は、指定したデータ型に変換する前に、定数の値を保持するのに十分な大きさです。 たとえば、定数値 1 は decimal(1,0)に変換され、定数値 250 は decimal(3,0)に変換されます。
クエリが自動パラメーター化されると、定数値は常に decimal(10,0) に変換されてから、最終的なデータ型に変換されます。 / 演算子を使用すると、同様のクエリで結果の型の有効桁数が異なるだけでなく、結果の値も異なる場合があります。 たとえば、式 SELECT CAST (1.0 / 7 AS float)を含む自動パラメーター化クエリの結果値は、自動パラメーター化されていない同じクエリの結果値とは異なります。これは、自動パラメーター化されたクエリの結果が、 decimal(10,0) データ型に収まるように切り捨てられるためです。
tinyint データ型は、Microsoft Fabric ではサポートされていません。
整数データの変換
整数が文字データ型に暗黙的に変換される場合、整数が大きすぎて文字フィールドに収まらない場合、SQL Server では ASCII 文字 42 のアスタリスク (*) が使用されます。
2,147, 483,647 に変換されます。 よりも大きい整数の定数、 decimal データ型ではなく、 bigint データ型。 次の例は、しきい値を超過すると、結果のデータ型変更から、 int を decimalです。
SELECT 2147483647 / 2 AS Result1,
2147483649 / 2 AS Result2;
結果セットは次のとおりです。
Result1 Result2
----------- ------------------
1073741823 1073741824.500000
Examples
次の例を使用してテーブルを作成、 bigint, 、int, 、smallint, 、および tinyint データ型。 各列に値が挿入され、 SELECT ステートメントで返されます。
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;
結果セットは次のとおりです。
MyBigIntColumn MyIntColumn MySmallIntColumn MyTinyIntColumn
-------------------- ----------- ---------------- ---------------
9223372036854775807 2147483647 32767 255