世界中に大量のデータが存在するため、適切なデータベースなしでデータを管理することはほぼ不可能です。 SQLは、データを処理するためのさまざまなオプションを提供するリレーショナルデータベースのコアであるため、SQLスキルはほとんどの職務に不可欠です。 SQLデータ型に関するこの記事では、SQLで使用されるさまざまなデータ型について説明します。
この記事では以下について説明します:
- 数値データ型
- 正確な数値データ型
- おおよその数値データ型
- 文字列データ型
- Unicode文字列のデータ型
- バイナリデータ型
- 日付と時刻のデータ型
- その他のデータ型
では、それぞれについて始めましょう。
SQLデータ型:数値型
この記事のこのセクションでは、数値データ型について説明します。これらのデータ型では、符号付き整数と符号なし整数の両方を使用できます。数値データ型を次の2つのセクションに分けました:
-
- 正確な数値データ型
- おおよその数値データ型
正確な数値データ型
データ型 | 説明/範囲 | ストレージ | ||
説明 | FROM | TO | ||
bit | 0、1、またはNULLのいずれかの整数。 | – | ||
tinyint | 整数を許可 | 0 | 255 | 1バイト |
smallint | 整数を許可 | -32,768 | 32-767 | 2バイト |
int | 整数を許可 | -2,147,483,648 | 2,147,483,647 | 4バイト |
bigint | 整数を許可 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 | 8バイト |
neuro(p、s) | 数値を許可します。ここで「p ‘は精度値 および「s ‘はスケール値 | -10 ^ 38 +1 | 10 ^ 38 -1 | 5〜17バイト |
10進数(p、s) | 10進値を許可します。ここで「p ‘は精度値 および「s ‘はスケール値 | -10 ^ 38 +1 | 10 ^ 38 -1 | 5〜17バイト |
smallmoney | データを通貨として許可 | -214,748.3648 | + 214,748.3647 | 4バイト |
お金 | データを通貨として許可 | -922,337,203,685,477.5808 | 922,337,203,685,477.5807 | 8バイト |
では、おおよその数値データ型を調べてみましょう。
おおよその数値データ型
データ型 | 説明/範囲 | ストレージ | ||
説明 | FROM | TO | ||
float(n) | 浮動精度の数値データを許可します | -1.79E + 308 | 1.79E + 308 | 4または8バイト |
実際の | 浮動精度の数値データを許可します | -3.40E + 38 | 3.40E + 38 | 4バイト |
次に、この記事では、SQLで使用される文字列データ型を調べます。
SQLデータ型: 文字列データ型
この記事のこのセクションでは、文字のデータ型について説明します。これらのデータ型では、固定長および可変長の文字を使用できます。以下の表を参照してください。
データ型 | 説明/最大サイズ | ストレージ | |
説明 | 最大サイズ | ||
text | 可変長の文字列を許可します | 2GBのテキストデータ | 4バイト+文字数 |
varchar(max) | 可変長の文字列を許可します | 2E+31文字 | 2バイト+文字数 |
varchar | 可変長の文字列を許可します | 8,000文字 | 2バイト+文字数 |
char | 固定長の文字列を許可します | 8,000文字 | 定義された幅 |
注:
質問:VARCHAR(8000)より大きい値を宣言できないのはなぜですか?回答:VARCHAR(n)は、行ページにデータを格納する役割を果たします。すべてのページで、ページヘッダーが最初の96バイトを占め、行のオーバーヘッドとオフセットに使用できるデータは8096バイト(8192 -96)のみであるため、VARCHAR(8000)より大きい値を宣言することはできません。
また、私たちの業界では、世界のほとんどのライティングシステムでテキストの一貫した表現と処理にUnicodeを使用しているため、文字列のデータ型セクションをUnicodeデータ型に拡張しました。
Unicode文字列のデータ型
データ型 | 説明/最大サイズ | ストレージ | |
説明 | 最大サイズ | ||
ntext | 可変長のUnicode文字列を許可します | 2GBのテキストデータ | 4バイト+文字数 |
nvarchar(max) | 可変長のUnicode文字列を許可します | 2E+31文字 | 2バイト+文字数 |
nvarchar | 可変長のUnicode文字列を許可します | 4,000文字 | 2バイト+文字数 |
nchar | 固定長のUnicode文字列を許可します | 4,000文字 | 定義された幅* 2 |
次に、この記事では、SQLで使用されるバイナリデータ型を調べます。
SQLデータ型: バイナリデータ型
この記事のこのセクションでは、バイナリデータ型について説明します。これらのデータ型では、固定長と可変長のバイナリ値を使用できます。以下の表を参照してください。
データ型 | 説明/最大サイズ | |
説明 | 最大サイズ | |
image | 可変長のバイナリデータを許可します | 2,147,483,647バイト |
varbinary(max) | 可変長のバイナリデータを許可します | 2E+31バイト |
varbinary | 可変長のバイナリデータを許可します | 8,000バイト |
binary | 固定長のバイナリデータを許可します | 8,000バイト |
次に、この記事では、SQLで使用される日付と時刻のデータ型を調べます。
SQLデータ型: 日付と時刻 データ型
この記事のこのセクションでは、日付と時刻のデータ型について説明します。これらのデータ型では、さまざまな形式の日付と時刻を使用できます。以下の表を参照してください。
データ型 | 説明/範囲 | ストレージ | ||
説明 | FROM | TO | ||
date | 日付を年、月、日の形式で保存します。 | 0001年1月1日 | 9999年12月31日 | 3バイト |
時間 | 時間を時、分、秒の形式で保存します。 | 3-5バイト | ||
datetime | 日付と時刻の両方を保存します(3.33ミリ秒の精度で) | 1753年1月1日 | 9999年12月31日 | 8バイト |
datetime2 | 日付と時刻の両方を(100ナノ秒の精度で)保存します | 0001年1月1日 | 9999年12月31日 | 6〜8バイト |
smalldatetime | 日付と時刻の両方を保存します(精度は1分) | 1900年1月1日 | 2079年6月6日 | 4バイト |
datetimeoffset | タイムゾーンオフセットを追加したdatetime2と同じ | 8-10バイト | ||
タイムスタンプ | 行が作成または変更されるたびに更新される一意の番号を格納します。 |
次に、この記事では、SQLで使用できるさまざまなデータ型を調べてみましょう。
SQLデータ型:その他 データ型
この記事のこのセクションでは、上記のカテゴリに分類できないデータ型について説明します。以下の表を参照してください。
データ型 | 説明 |
テーブル | このデータ型は、後で処理するために結果セットを格納します。 |
xml | このデータ型はXML形式のデータを格納します。 |
カーソル | このデータ型は、カーソルオブジェクトへの参照を提供します。 |
一意の識別子 | このデータ型には、グローバル一意識別子(GUID)が格納されます。 |
sql_variant | このデータ型には、text、ntext、timestampを除くSQLでサポートされているさまざまなデータ型の値が格納されます。 |
SQLのデータ型がわかったので、SQLについてもっと知りたいと思っていると思います。開始する記事のリストは次のとおりです。
- MySQLとは何ですか?
- MySQLデータ型
- MySQL Workbench
- Spark SQL
- SQLインタビューの質問
これで、この記事は終わりです。この記事を楽しんでいただけたでしょうか。クエリを記述してデータベースを操作するのに役立つさまざまなデータ型を見てきました。MySQLについて詳しく知り、このオープンソースのリレーショナルデータベースについて知りたい場合は、MySQLDBAを確認してください。認定トレーニング インストラクター主導のライブトレーニングと実際のプロジェクトの経験が付属しています。このトレーニングは、MySQLを深く理解し、主題をマスターするのに役立ちます。
質問がありますか?この記事のコメントセクションにその旨を記載してください。折り返しご連絡いたします。