DB

【SQL Server】データ型の種類

SQL Server において、よく使うデータ型の種類をまとめます。

文字列型

SQL Server の文字列型は主に下記の4種類あります。

  • char
  • varchar
  • nchar
  • nvarchar

char / varchar

char と varchar は文字列データを格納するためのデータ型です。
char は固定長文字列、varchar は可変長文字列です。

固定長文字列と可変長文字列の違い

char(10)とvarchar(10)を例にして説明します。

固定長文字列は、定義したバイト数分の領域を使用します。
半角1文字(1バイト)で登録しようとすると、残りの9バイトが余白として10バイトのデータとして登録されます。

可変長文字列は、登録するデータ分の領域のみ使用します。
半角1文字(1バイト)で登録しようとすると、1バイトのデータとして登録されます。

ncahr / nvarchar

nchar と nvarchar も文字列データを格納するためのデータ型です。
nchar は固定長文字列、nvarchar は可変長文字列です。

charとnchar、varcharとnvarchar の違い

nが付かない char や varchar はShift-JISです。
つまり、半角だと1文字1バイトで、全角だと1文字2バイトになります。
char(10)や varchar(10)は最大10バイトまでという意味になります。

nが付く nchar や nvarchar はUnicodeです。
つまり、半角全角にかかわらず、1文字2バイトになります。
nchar(10)や nvarchar(10)は最大10文字までという意味になります。

また、Unicodeであるnchar や nvarchar は外国の文字を格納することが可能です。
Shift-JISであるchar や varchar に外国の文字を格納すると、文字化けします。
下記画像はハングル文字を格納した結果です。

バイナリ文字列型

SQL Server の バイナリ文字列型 は主に下記の2種類あります。

  • binary
  • varbinary

binary / varbinary

binary と varbinary はバイナリ文字列を格納するためのデータ型です。
binary は固定長、varbinary は可変長です。

varbinary(max)で定義すると、最大で2GBまで格納することができます。

整数型

SQL Server の整数型は主に下記の4種類あります。

  • tinyint
  • smallint
  • int
  • bigint

tinyint

tinyint は0 ~ 255までの数値扱うデータ型です。
使用する領域は1バイト(8ビット)です。

smallint

smallint は-32,768 ~ 32,767までの数値を扱うデータ型です。
使用する領域は2バイト (16ビット)です。

int

int は-2,147,473,648 ~ 2,147,473,647 までの数値を扱うデータ型です。
使用する領域は4バイト (32ビット)です。

bigint

bigint は-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 までの数値を扱うデータ型です。
使用する領域は8バイト (64ビット)です。

少数型

SQL Server の少数型は主に下記の3種類あります。

  • decimal
  • real
  • float

decimal

decimal は少数のデータを格納するためのデータ型です。

deciaml(10, 3)のように定義すると、全体の桁数が10、小数点以下の桁数が3までという意味になります。
4桁目以降の数値は四捨五入されます。

この場合に1.1111 という数値を入ると、少数第4位が切り捨てされ1.111となります。
また、1.1115という数値を入れると、少数第4位が切り上げされ1.112となります。

real / float

real と float は少数のデータを格納するためのデータ型です。
decimalとは異なり、小数点以下の桁数を指定することができません。

real は整数部と小数部の合計桁数が7桁まで、float は15桁までとなっています。

日付型

SQL Server の日付型は主に下記の3種類あります。

  • datetime
  • smalldatetime
  • date

datetime

datetime は 日付と、300分の1秒単位までの時刻を扱います。

例)2021-09-09 00:00:00.000

smalldatetime

smalldatetime は 日付と、1秒単位までの時刻を扱います。

例)2021-09-09 00:00:00

date

date は 日付を扱います。

例)2021-09-09

エンジニアの転職ならこれ!

【第二新卒向け】マイナビジョブ20's

マイナビジョブ20'sは、20代・第二新卒・既卒向けの転職エージェントです。

▼こんな方におすすめ
・はじめて転職しようと思っている
・転職できるだけのスキルが自分にあるか不安
・手厚いサポートを受けたい

【フリーランス向け】安心保障と豊富な案件紹介 Midworks

Midworksは豊富な案件と「フリーランス」と「正社員」の良いとこ取りをした働き方を実現する手厚い保障が特徴です。

▼こんな方におすすめ
・現在正社員でフリーランスになろうか悩んでいる
・フリーランスとして働いているが、先行きが不安がある  (安定的な案件確保や保障など)
・自分の市場価値を知りたい、見合った案件で参画したい
・今後のキャリアビジョンを踏まえて案件を選びたい

【未経験向け】自宅で現役エンジニアから学べる TechAcademy

テックアカデミーは、現役エンジニアから学べるオンラインに特化したプログラミングスクールです。
講師は全員、通過率10%の選考に合格した現役エンジニア。
確かなスキルをもとに受講生をマンツーマンサポートします。


▼こんな方におすすめ
・自宅にいながらオンライン完結で勉強できる
・受講生に1人ずつ現役エンジニアのパーソナルメンターが専属でつく
・チャットで質問すればすぐに回答が返ってくる
・オリジナルサービスやオリジナルアプリなどの開発までサポート