SQL Serverデータ型
SQL Serverデータ型について解説しています。データベースでテーブル作成時は、データ型を必ず定義する必要があります。
目次
数値型
【対象】
- SQL Server (サポートされているすべてのバージョン)
- Azure SQL データベース
- Azure SQL Managed Instance
- Azure Synapse Analytics
- Parallel Data Warehouse
整数データ
型 | 頻度 | SqlDbType | 範囲・説明 | サイズ | 用途 |
bigint | ★ | Int64 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 8バイト | 主キー |
int | ★ | Int32 | -2,147,483,648 ~ 2,147,483,647 | 4バイト | 数量、商品数量 |
smallint | Int16 | -32,768 ~ 32,767 | 2バイト | レベル(Lv) | |
tinyint | ★ | Byte | 0 ~ 255 | 1バイト | 年齢 |
金額値または通貨値を表すデータ型。
型 | SqlDbType | 範囲・説明 | サイズ |
money | Decimal | – 214,748.3648 ~ 214,748.3647 | 8バイト |
smallmoney | Decimal | -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807 | 4バイト |
※通貨単位の 10,000 の精度はします。
1、0、または NULL の値をとる整数型
型 | SqlDbType | 範囲・説明 | サイズ |
bit | Boolean | 0、1、NULL のいずれか。※1 | 可変 |
※1テーブル内で 8 個以下の bit 列がある場合は、列が 1 バイトとして格納されます。 bit 列が 9 ~ 16 ある場合には、列は 2 バイトとして格納されます。
固定長の有効桁数と小数点以下保持桁数を持つ数値データ型
decimalとnumericは同じためどちらを使用してもよい。
型 | 頻度 | SqlDbType | 範囲・説明 | サイズ | 用途 |
decimal[ ( p[ , s] ) ] | ★ | Decimal | 固定長の有効桁数と小数点以下桁数を指定した固定小数点データ。 十進での最大有効桁数は、38桁。デフォルトでは18桁。 例)「10.02」の場合は、「精度:4」「小数桁:2」と入力する p (precision)精度 格納される 10 進数の桁数の最大合計数。 この数には、小数点の左右両方が含含まれる。 有効桁数の値は、1 – 38 (最大有効桁数) にする必要があります。 既定の有効桁数は 18 です。 | 可変 | 外貨、合計金額 |
numeric[ ( p[ , s] ) ] | Decimal | decimal型と同様 | 可変 |
【サイズ】
precision(精度) | サイズ |
1-9 | 5バイト |
10~19 | 9バイト |
20~28 | 13バイト |
29~38 | 17バイト |
浮動小数点型(概数)
【対象】
- SQL Server (サポートされているすべてのバージョン)
- Azure SQL データベース
- Azure SQL Managed Instance
- Azure Synapse Analytics
- Parallel Data Warehouse
型 | SqlDbType | 範囲・説明 | サイズ |
float[(n) ] | Double | 倍精度浮動小数点実数。 1.79E + 38 ~ -2.23E – 38,0,2.23E -38 ~ 1.79E + 38 n は、科学的表記法で float 型 の数の仮数を格納するために 使用するビット数。 nは1-53。デフォルトで53。 | 4 バイト(1<=n<=24) 8 バイト(25<=n<=53) n は、科学的表記法で float 型の数の仮数を格納 するために使用する ビット数。 |
real | – 3.40E+38 ~ -1.18E-38、0、および 1.18E-38 ~ 3.40E+38 | 4バイト |
日付と時刻
型 | 頻度 | SqlDbType | 範囲・説明 | サイズ | 用途 |
date | ★ | 0001-01-01~9999-12-31の範囲の日付型 | 3バイト(固定) | 売上日、予定日 | |
time[(p)] | 1日の時刻を定義します。時刻は24時間形式 日付:1753 年 1 月 1 日~ 9999 年 12 月 31 日 時間:00:00:00 から 23:59:59.997 ※有効桁数が規定値のとき5 精度:100 ナノ秒 (Informatica では 1 ミリ秒) | 8バイト | |||
datetime | ★ | DateTime | 日付:1753 年 1 月 1 日~ 9999 年 12 月 31 日 時間:00:00:00 から 23:59:59.997 ※24 時間形式の時刻 (1 秒未満の秒を含む) と組み合わせた日付を定義します。 | 8バイト | ログ、登録日時、更新日時 |
smalldatetime | DateTime | 日付が 1900-01-01 ~ 2079-06-06、 時刻が00:00:00 ~ 23:59:59の範囲の日付型秒数は 常にゼロ (:00) で、1 秒未満の秒を持ちません。 精度:1 分 | 4バイト(固定) | ||
datetime2[(p)] | 日付が 0001-01-01 ~ 9999-12-31、 時刻が00:00:00 ~ 23:59:59.9999999の範囲の日付型p:秒の小数点以下の有効桁数。0~7 (規定値7) ※24 時間形式の時刻と組み合わせた日付を定義します 精度:100 ナノ秒 | 有効桁数が 3 より小さい= 6 バイト 有効桁数が 3 または 4 =7 バイト その他のすべての有効桁数では 8 バイト | |||
datetimeoffset[(p)] | 日付が 0001-01-01 ~ 9999-12-31、 時刻が00:00:00 ~ 23:59:59.9999999の範囲のタイム ゾーンを認識する日付型タイムゾーンの範囲は-14:00 ~ +14:00。 p:秒の小数点以下の有効桁数。0~7 (規定値7) 精度:100 ナノ秒 | 既定では 10 バイト固定 (秒部分の既定の有効桁数は 100ns) です。 |
文字列型
型 | 頻度 | SqlDbType | 範囲・説明 | サイズ | 用途 |
char [ ( n ) ] | String | Unicode ではない固定長の文字列型n:桁数。1 ~ 8,000 | 可変 | ||
varchar[ ( n | max ) ] | ★ | String | Unicode ではない可変長の文字列型n:桁数。1 ~ 8,000 max:最大値。2^31-1 バイト (2 GB) | 可変 | 伝票番号(例:001)、主キー |
text | String | Unicode ではない可変長の文字列型 文字列の最大長は 2^31-1 (2,147,483,647) | サーバー コード ページが 2 バイト文字を使用する場合、格納サイズは、そのまま 2,147,483,647 バイト |
Unicode文字列
型 | 頻度 | SqlDbType | 範囲・説明 | サイズ | 用途 |
nchar [ ( n ) ] | String | Unicode固定長文字列。nは、1~4000まで。 | 可変 | ||
nvarchar[ ( n | max ) ] | ★ | String | Unicode の可変長の文字列型n: 桁数。1 ~ 4,000 max:最大値。2^31-1 バイト (2 GB) | 可変 | 氏名 商品名 メモ |
ntext | String | 2^30 – 1 (1,073,741,823) 文字以内の可変長の Unicode データを格納するデータ型 | 可変 |
バイナリ文字列
型 | SqlDbType | 範囲・説明 | サイズ |
binary [ ( n ) ] | Byte[] | 固定長バイナリデータ。nは、1~8000まで。 | 固定長 |
varbinary [ ( n| max) ] | Byte[] | 可変長バイナリデータ。nは、1から8000まで。 max の場合の最大ストレージ容量は、2^31-1 bytes。 ストレージサイズは、データ量+2 bytes。 | 可変 |
image | Byte[] | 0 ~ 2^31-1 (2,147,483,647) バイト の可変長のバイナリ型 | 可変 |
その他
型 | SqlDbType | 範囲・説明 | サイズ |
cursor | カーソル型。CREATE TABLEの列には使用できない。 | ||
timestamp | Byte[] | 行が更新されたときに値が更新されるタイムスタンプとして 使われることが多い。 自動生成されるバイナリ数のデータ型。 データベース内でのユニーク性が保障されている。 | 8バイト |
sql_variant | text, ntext, image, timestamp, and sql_variant以外の SQL サーバデータ型をサポートするバリアント型 | 可変 | |
uniqueidentifier | Guid | 16-byte のGUID (globally unique identifier). | 16バイト |
table | テーブル型の関数のリザルトセットとして、使用される特別なデータ型。 | ||
xml | XML value | xmlデータを格納するためのデータ型。 xmlインスタンスまたxml型の変数を列に格納できる。 | 可変 |