ホームページ >バックエンド開発 >PHPチュートリアル >SQL Server_PHP チュートリアルの混乱を招くデータ型
最近データベース設計をしているのですが、SQL2000のデータ型がよく分からないことがあったので、この記事を手に取りました。
(1)char、varchar、text と nchar、nvarchar、ntext
char と varchar の長さは 1 ~ 8000 です。それらの違いは、char が固定長の文字データであるのに対し、varchar は可変長の文字データであることです。 。いわゆる固定長とは、入力データの長さが指定された長さに達しない場合、対応する長さになるように自動的にその後に英語のスペースが埋められることを意味します。文字データはスペースで埋められません。 text には、最大長 2^31-1 (2,147,483,647) 文字の可変長の非 Unicode データが格納されます。
前の 3 つのデータ型と比較すると、名前には文字「n」が 1 つだけ増えています。これは、Unicode データ型の文字が格納されていることを意味します。プログラムを書いたことのある友人は Unicode をよく知っているはずです。文字の中には、英語の文字は 1 バイトで保存できますが、中国語の文字は 2 バイト必要となるものが多く、英語と中国語の文字が同時に存在すると混乱が生じやすくなります。文字セットの非互換性の問題を解決するため、生成時にはすべての文字が 2 バイトで表現されます。つまり、英語の文字も 2 バイトで表現されます。 nchar と nvarchar の長さは 1 ~ 4000 です。 char と varchar との比較: nchar と nvarchar は英語でも中国語でも最大 4000 文字を保存できますが、char と varchar は英語で 8000 文字、中国語で 4000 文字まで保存できます。 nchar および nvarchar データ型を使用すると、入力文字が英語か中国語かを気にする必要がなく便利であることがわかりますが、英語を格納する場合は量が若干失われます。
(2)datetime と smalldatetime
datetime: 1753 年 1 月 1 日から 9999 年 12 月 31 日までの日付と時刻のデータ (100 分の 3 秒まで正確)。
smalldatetime: 1900 年 1 月 1 日から 2079 年 6 月 6 日までの、分単位で正確な日付と時刻のデータ。
(3)bitint、int、smallint、tinyint、bit
bigint: -2^63(-9223372036854775808) から 2^63-1(9223372036854775807) までの整数データ。
int: -2^31(-2,147,483,648) から 2^31-1(2,147,483,647) までの整数データ。
smallint: -2^15(-32,768) から 2^15-1(32,767) までの整数データ。
tinyint: 0 ~ 255 の整数データ。
bit: 1または0の整数データ。
(4) 10 進数と数値
これら 2 つのデータ型は同等です。どちらにも、p (精度) と s (小数点以下の桁数) の 2 つのパラメーターがあります。 p は、小数点の左側と右側に格納できる 10 進数の最大桁数を指定します。p は 1 ~ 38 の値である必要があります。 s は、小数点の右側に格納できる 10 進数の最大桁数を指定します。s は 0 から p までの値である必要があります。デフォルトの小数点以下の桁数は 0 です。
(5)float および real
float: -1.79^308 から 1.79^308 までの浮動小数点数値データ。
real: -3.40^38 から 3.40^38 までの浮動小数点数値データ。 SQL Server では、real の同義語は float(24) です。