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

SQL SQL Server
この記事は約4分で読めます。
スポンサーリンク

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

SQLServerで利用できる数値型

データ型 説明
bigint 8バイトの整数値(-2^63~2^63-1)
int 4バイト整数値(約-21億~約21億)
smallint 2バイトの整数値(-32768~32767)
tinyint 0~255の整数値
bit 0または1
decimal or numeric 固定長の有効桁数と小数点桁数を持つ数値
float 4バイトまたは8バイトの浮動小数点数値
real 4バイトの浮動小数点数値
money 8バイトの通貨型
smallmoney 4バイトの通貨型

数値型の場合は、整数値の場合は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で利用できる日付と時刻型

データ型 説明 範囲 精度 記憶容量
time 1日の時刻 00:00:00.0000000~23:59:59:9999999 100ナノ秒 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をコピーしました