【SQL Server】データ型で設定できる項目

SQL
スポンサーリンク

SQL Serverで使用できるデータ型について細かい内容がわからなかったのでまとめてみました。

SQLServerで利用できる数値型

データ型説明
bigint8バイトの整数値(-2^63~2^63-1)
int4バイト整数値(約-21億~約21億)
smallint2バイトの整数値(-32768~32767)
tinyint0~255の整数値
bit0または1
decimal or numeric固定長の有効桁数と小数点桁数を持つ数値
float4バイトまたは8バイトの浮動小数点数値
real4バイトの浮動小数点数値
money8バイトの通貨型
smallmoney4バイトの通貨型

数値型の場合は、整数値の場合はint小数点の桁指定などdecimal,小数点の有効桁数の指定が必要ないのであればfloatやrealが主流。

SQL Serverで利用できる文字列型

データ型説明
char(n)8000文字以内の非unicode固定長文字(nは1~8000)
varchar(n)8000文字以内の非unicode可変長文字(nは1~8000)
varchar(max)1073741823文字(約10億)以内の非unicode可変長文字。
※同じ内容でtext型があるが将来的には削除される予定
nchar(n)8000文字以内のunicode固定長文字(nは1~8000)
nvarchar(n)8000文字以内のunicode可変長文字(nは1~8000)
nvarchar(max)1073741823文字(約10億)以内のunicode可変長文字。
※同じ内容でntext型があるが将来的には削除される予定

unicode文字の場合は頭文字にnが付く。unicodeは、全角/半角関係なく1文字を2バイトとして扱っている。項目に入力する値が8000文字を超過する場合は(max)に設定する。

また、SQLでunicode文字を検索する際は、普通シングルクォーテーション”でくくるがシングルクォーテーションの前にNを付加することでunicode文字と認識してくれる。

SQL Serverで利用できるバイナリ型

データ型説明
binary(n)8000バイト以内の固定長バイナリーデータ(nは1~4000)
varbinary(n)8000バイト以内の可変長バイナリーデータ(nは1~4000)
varbinary(max)2147483647(約20億)以内の可変長バイナリーデータ※

※同じ内容でimageがあるが将来削除される予定。

Binary文字列を扱う場面は、画像データなどを扱う場面がほとんど

SQL Serverで利用できる日付と時刻型

データ型説明範囲精度記憶容量
time1日の時刻00:00:00.0000000~23:59:59:9999999100ナノ秒3~5バイト
date日付1年1月1日~9999年12月31日1日3バイト
smalldatetime日付と時刻1900年1月1日 00:00:00~
2079年6月6日 23:59:59:59
1分4バイト
datetime日付と時刻1753年1月1日00:00:00~
9999年12月31日23:59:59.997
3.33ミリ秒8バイト
datetime2日付と時刻1年1月1日00:00:00.0000000~
9999年12月31日23:59:59:9999999
100ナノ秒6~8バイト

日付と時刻型は、秒数まで必要な場合は大体datetime or datetime2が主流 

データ型についてのまとめ

SQL Serverで主に使用できるデータ型は、上記のようにたくさんあります。データに入力されうる値を考え、また将来的に入力されうる値を考慮して設定することが必要です。その他にもcursor型やgeographyなど特殊なデータ型がありますが、通常のシステムではあまり利用することはないと思います。

 

コメント

タイトルとURLをコピーしました