SQLServerのデータ型一覧、サイズ、数値、日付、小数点、配列型はない

データベース
スポンサーリンク

SQLServerのデータ型一覧、サイズをまとめてみました。

スポンサーリンク

 SQLServerのデータ型一覧、サイズ

SQLServerのデータ型の範囲とサイズは次の通りです。

説明 ストレージ上のサイズ
整数型 bigint -2^63 (-9,223,372,036,854,775,808)
~ 2^63-1(9,223,372,036,854,775,807)
の範囲の整数型
8
int -2^31 (-2,147,483,648)
~ 2^31-1(2,147,483,647)
の範囲の整数型
4
smallint -2^15 (-32,768)
~ 2^15-1 (32,767)
の範囲の整数型
2
tinyint 0 ~ 255
の範囲の整数型
1
bit 1または0
の範囲の整数型
decimal
[(p[ ,s])]
固定長の有効桁数と小数点以下桁数を持つ数値

-10^38 +1 から 10^38 ?1
の範囲の固定長の有効桁数と
小数点部桁数の数値データを格納するデータ型

p (precision):有効桁数。
整数、小数部を合せた数値桁数。
1 ~ 38 (初期値18)

s (scale):小数部桁数 (初期値0)

有効桁数により変動
numeric
[(p[ ,s])]
decimal 型と同機能
浮動小数点型 float
[(n)]
– 1.79E+308 ~ 1.79E+308
の範囲の浮動小数点型n:有効桁数。
1~53 (規定値53)
有効桁数により変動
real – 3.40E+38 ~ 3.40E+38
の範囲の浮動小数点型
4
通貨型 money -922,337,203,685,477.5808
~ 922,337,203,685,477.5807
の範囲の通貨型表している通貨単位の
10,000 分の 1 までの精度を持ちます。
8
smallmoney – 214,748.3648 ~ 214,748.3647
の範囲の通貨型表している通貨単位の
10,000 分の 1 までの精度を持ちます。
4
日付型 date 0001-01-01~9999-12-31
の範囲の日付型
3
time
[(p)]
00:00:00.0000000 ~ 23:59:59.9999999
の範囲の時間型p:秒の小数点以下の有効桁数。
0~7 (規定値7)
有効桁数が規定値のとき5
datetime 日付が 1753年1月1日~9999年12月31日、

時刻が00:00:00~23:59:59.997の範囲の日付型

8
datetime2
[(p)]
日付が 0001-01-01 ~ 9999-12-31、

時刻が00:00:00 ~ 23:59:59.9999999
の範囲の日付型

p:秒の小数点以下の有効桁数。0~7 (規定値7)

有効桁数により変動
(有効桁数が 3 未満の場合は 6 バイト、
有効桁数が 3 および 4 の場合は 7 バイト、
5以上の場合は8バイト)
smalldatetime 日付が 1900-01-01 ~ 2079-06-06、

時刻が00:00:00 ~ 23:59:59
の範囲の日付型秒数は常にゼロ (:00) で、
1 秒未満の秒を持ちません。

4
datetimeoffset
[(p)]
日付が 0001-01-01 ~ 9999-12-31、

時刻が00:00:00 ~ 23:59:59.9999999
の範囲のタイム ゾーンを認識する日付型

タイムゾーンの範囲は-14:00 ~ +14:00。

p:秒の小数点以下の有効桁数。0~7 (規定値7)

有効桁数が規定値のとき10
文字列型 char
[(n)]
Unicode ではない固定長の文字列型

n:桁数。1 ~ 8,000

nバイト
varchar
[(n | max)]
Unicode ではない可変長の文字列型

n:桁数。1 ~ 8,000
max:最大値。2^31-1 バイト (2 GB)

入力したデータサイズ+2バイト
maxを指定した場合は2GB
text Unicode ではない可変長の文字列型
文字列の最大長は 2^31-1 (2,147,483,647)
サーバー コード ページが 2 バイト文字を
使用する場合、格納サイズは、
そのまま 2,147,483,647 バイト
Unicode 文字型 nchar
[(n)]
Unicode の固定長の文字列型

n:桁数。1 ~ 4,000

n×2バイト
ただし、照合順序のコード ページで
2 バイト文字が使用されている場合、
記憶領域のサイズは n バイト
nvarchar
[(n | max)]
Unicode の可変長の文字列型

n:桁数。1 ~ 4,000
max:最大値。2^31-1 バイト (2 GB)

入力したデータサイズ×2+2バイト
maxを指定した場合は2GB
ntext 2^30 – 1 (1,073,741,823)
文字以内の可変長の
Unicode データを格納するデータ型
入力したデータサイズ×2バイト
バイナリ型 binary
[(n)]
固定長のバイナリ データ

n:桁数。1 ~ 8,000

nバイト
varbinary
[(n | max)]
可変長のバイナリ データ

n:桁数。1 ~ 8,000
max:最大格納サイズ2^31-1 バイト

入力したデータサイズ+2バイト
image 0 ~ 2^31-1 (2,147,483,647) バイト
の可変長のバイナリ型
入力したデータサイズ

SQLServerに配列型はない

SQL99では配列型というのがあって、DBMSによっては実装されています。

http://www.atmarkit.co.jp/fnetwork/tokusyuu/01sql99/sql99_2a.html

 

しかし、SQL Serverには、配列のデータ型は無いようです。

よって、配列型と同じようなことをするには、文字列型を作って自分で分割・格納するしか方法はありません。

 

Postgresでは、配列型のデータ型が用意されています。

↓Postgresの配列型

https://www.postgresql.jp/document/9.4/html/arrays.html

 

 

コメント