Varchar は、英語 (ASCII) 文字ごとに 2 バイトを占有し、漢字ごとに 2 バイトのみを占有します。
char は、英語 (ASCII) 文字ごとに 1 バイトを占有し、Varchar 文字ごとに 2 バイトを占有します。この型は埋め込まれません。 varchar(100) などのスペースですが、その値が "qian" のみである場合、その値は "qian" であり、char(100) などの char が異なる場合、その値は "qian" です。実際には、" qian" がデータベースにあります (qian の後にスペースが 96 個あり、100 バイトに収まることを意味します)。
char は固定長なので、varchar よりもはるかに高速です! ただし、プログラムの処理は少し面倒です。
ntext
可変長Unicode データの最大長は 230 - 1 (1,073,741,823) 文字です。ストレージ サイズは、入力された文字数 (バイト単位) の 2 倍です。 ntext の SQL-92 同義語は各国語テキストです。
text
サーバー コード ページ内の可変長の非 Unicode データの最大長は、231-1 (2,147,483,647) 文字です。サーバー コード ページで 2 バイト文字が使用されている場合でも、ストレージ量は 2,147,483,647 バイトのままです。ストレージ サイズは 2,147,483,647 バイト未満になる場合があります (文字列によって異なります)。
bigint: -2^63(-9223372036854775808) から 2^63-1(9223372036854775807) までの整数データ、ストレージ サイズは 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の整数データ、記憶サイズは1バイトです。
Unicode データ
Microsoft® SQL Server® 2000 では、従来、非 Unicode データ型で特定の文字セットで定義された文字の使用が許可されていました。文字セットは SQL Server のインストール時に選択され、変更できません。 Unicode データ型を使用すると、列には、さまざまな文字セットで定義されたすべての文字を含む、Unicode 標準で定義された任意の文字を格納できます。 Unicode データ型は、非 Unicode データ型の 2 倍の記憶領域を必要とします。
Unicode データは、SQL Server の nchar、varchar、および ntext データ型を使用して保存されます。複数の文字セットの文字を格納する列には、これらのデータ型を使用します。列内の項目に異なる数の Unicode 文字 (最大 4000) が含まれる場合は、nvarchar タイプを使用します。列内の項目が同じ固定長 (最大 4000 Unicode 文字) の場合は、nchar タイプを使用します。列内の項目が 4000 Unicode 文字を超える場合は、ntext タイプを使用します。
説明 SQL Server の Unicode データ型は、SQL-92 標準の国別文字データ型に基づいています。 SQL-92 では、これらのデータ型とその値を識別するために接頭辞文字 n を使用します。
1. データ型
データ型はデータの属性であり、データが表す情報の種類を示します。すべてのコンピューター言語は独自のデータ型を定義します。もちろん、プログラミング言語が異なれば特性も異なり、定義されるデータ型の型や名前も多かれ少なかれ異なります。 SQL Server は 25 のデータ型を提供します:
·Binary [(N)]
·Varbinary [(N)]
·Char [(N)]
·Varchar[(N)]
·Nchar[(N)]
·Nvarchar [(N)]
・Datetime
・Smalldatetime
・Decimal[(p[,s])]
・Numeric[(p[,s])]
・Float[(N)]
・Real
・Int
・Smallint
・Tinyint
・Money
・Smallmoney
・Bit
・Cursor
・Sysname
・Timestamp
・Uniqueidentifier
・Text
・Image
・Ntext
(1) バイナリデータ型
バイナリデータには Binary 、 Varbinary と Image。
Binary データ型は、固定長 (Binary) または可変長のいずれかです。
Binary[(N)] は、n ビットの固定バイナリ データです。このうち、n の値の範囲は 1 ~ 8000 です。その記憶サイズは n + 4 バイトです。
Varbinary[(N)] は、n ビットの可変長バイナリ データです。このうち、n の値の範囲は 1 ~ 8000 です。そのストレージのサイズは、n バイトではなく、n + 4 バイトです。
Image データ型に格納されたデータはビット文字列として格納され、SQL Server によって解釈されず、アプリケーションによって解釈される必要があります。たとえば、アプリケーションは、BMP、TIEF、GIF、および JPEG 形式を使用して、画像データ型でデータを保存できます。
(2)文字データ型
文字データ型には、Char、Varchar、Textがあります。
文字データとは、文字、記号、数字を任意に組み合わせて構成されるデータです。
Varchar は可変長の文字データであり、その長さは 8KB を超えません。 Char は、最大長が 8KB の固定長の文字データです。 8KB を超える ASCII データは、テキスト データ型を使用して保存できます。たとえば、HTML ドキュメントはすべて ASCII 文字であり、通常長さが 8 KB を超えるため、これらのドキュメントはテキスト データ型で SQL Server に保存できます。
(3)Unicode データ型
Unicode データ型には、Nchar、Nvarchar、Ntext があります。
Microsoft SQL Server では、従来の非 Unicode データ型により、特定の文字セットで定義された文字の使用が許可されます。 SQL Server のインストール中に、文字セットを選択できます。 Unicode データ型を使用すると、Unicode 標準で定義された任意の文字を列に格納できます。 Unicode 標準には、さまざまな文字セットで定義されているすべての文字が含まれます。 Unicode データ型を使用すると、占有されるスペースは、非 Unicode データ型を使用した場合に占有されるスペースの 2 倍になります。
SQL Server では、Unicode データは Nchar、Nvarchar、および Ntext データ型で保存されます。この文字タイプを使用して格納された列には、複数の文字セットの文字を格納できます。列の長さが異なる場合は、最大 4000 文字を格納できる Nvarchar 文字タイプを使用する必要があります。 Nchar 文字タイプは、列の長さが固定されており、最大 4000 文字を格納できる場合に使用する必要があります。 Ntext データ型を使用する場合、列には 4000 文字を超える文字を格納できます。
(4)日付と時刻のデータ型
日付と時刻のデータ型には、Datetime と Smalldatetime があります。
日付と時刻のデータ型は、有効な日付と時刻で構成されます。たとえば、有効な日付と時刻のデータには、「4/01/98 12:15:00:00:00 PM」や「1:28:29:15:01 AM 8/17/98」などがあります。前者のデータ型は前に日付、後ろに時刻を持ち、後者のデータ型は前に瞬間、後ろに日付を持ちます。 Microsoft SQL Server では、日付と時刻のデータ型に Datetime と Smalldatetime が含まれる場合、保存される日付範囲は 1753 年 1 月 1 日から始まり 9999 年 12 月 31 日に終了します (各値には 8 ストレージ バイトが必要です)。 Smalldatetime データ型を使用する場合、保存される日付範囲は 1900 年 1 月 1 日に始まり、2079 年 12 月 31 日に終了します (各値には 4 バイトの記憶域が必要です)。
日付の形式を設定できます。日付形式を設定するコマンドは次のとおりです。
Set DateFormat {format | @format _var|
format | @format_var は日付の順序です。有効なパラメータには、MDY、DMY、YMD、YDM、MYD、DYM が含まれます。デフォルトでは、日付形式は MDY です。
たとえば、Set DateFormat YMD を実行すると、日付の形式は年、月、日の形式になります。Set DateFormat DMY を実行すると、日付の形式は日、月、年の形式になります
(5) 数値データ型
数値データには数字のみが含まれます。数値データ型には、正および負の数値、10 進数 (浮動小数点数)、および整数が含まれます。
整数は、39、25、0 ~ 2、33967 などの正と負の整数で構成されます。 Microsoft SQL Server では、整数ストレージのデータ型は Int、Smallint、Tinyint です。 Int データ型は、Smallint データ型よりも広い範囲のデータを格納し、Smallint データ型は、Tinyint データ型よりも広い範囲のデータを格納します。 Int データを使用して保存されるデータの範囲は、-2 147 483 648 ~ 2 147 483 647 です (各値には 4 バイトの保存領域が必要です)。 Smallint データ型を使用する場合、保存されるデータの範囲は -32 768 ~ 32 767 です (各値には 2 バイトの保存領域が必要です)。 Tinyint データ型を使用する場合、保存されるデータの範囲は 0 ~ 255 です (各値には 1 バイトの保存スペースが必要です)。
SQL Server の正確な Xiaolou データのデータ型は、10 進数と数値です。このデータが占める記憶領域は、データのビット数に続くビット数に基づいて決定されます。
SQL Server では、近似 10 進データのデータ型は Float と Real です。たとえば、端数の 3 分の 1 は と書きます。 3333333、近似データ型を使用すると正確に表現されます。したがって、システムから取得されるデータは、列に格納されているデータとまったく同じではない可能性があります。
(6) 通貨データは、正または負の通貨数量を表します。 Microsoft SQL Server では、通貨データのデータ型は Money と Smallmoney です。 Money データ型には 8 バイトのストレージが必要で、Smallmoney データ型には 4 バイトのストレージが必要です。
(7) 特殊なデータ型
特殊なデータ型には、これまでに説明されていないデータ型が含まれます。タイムスタンプ、ビット、および Uniqueidentifier という 3 つの特別なデータ型があります。
タイムスタンプは、バイナリ射影形式で表現された SQL Server アクティビティのシーケンスを表すために使用されます。タイムスタンプ データは、挿入されたデータや日付と時刻とは関係がありません。
ビットは1または0で構成されます。 Bit データ型は、true または false、ON または OFF を表す場合に使用されます。たとえば、すべてのアクセスを要求するクライアント要求は、このデータ型の列に格納できます。
Uniqueidentifier は 16 バイトの 16 進数で構成され、グローバルに一意のものを表します。 GUID は、テーブルの行が一意である必要がある場合に非常に役立ちます。たとえば、このデータ型を顧客識別番号列で使用して、異なる顧客を区別します。