ホームページ >データベース >mysql チュートリアル >MS SQL Server の基本を再考した理由: 文字列データ型の詳細

MS SQL Server の基本を再考した理由: 文字列データ型の詳細

WBOY
WBOYオリジナル
2024-08-30 06:40:35580ブラウズ

今日、マネージャーに PR について話したところ (店舗の手順に関するものでした)、マネージャーはそれについていくつか質問しました。

「なぜ文字列のデータ型を nvarchar(n) ではなく varchar(n) として宣言するのですか?」やその他のシナリオベースの質問など、

あなたも大学の先輩や先生と同じような状況に直面したことがあるかもしれません。

私は彼に答えましたが、その議論は私の基本的な部分に疑問を投げかけました。

そして、最初から見直すことにしました。

改訂中にいくつかの点に気づいたので、皆さんにも共有したいと思い、この記事を書きました。

Why I Revisited MS SQL Server Basics: A Deep Dive into String Data Types

最初から始めましょう。

データベースを作成すると、バックグラウンドで 2 つのファイルが生成されます。

  1. データ ファイル: これには (.mdf) 拡張子があり、プライマリ データ ファイルとして知られています。
  2. ログ ファイル: これには (.ldf) 拡張子があり、トランザクション ログ ファイルとして知られています。

ただし、生成するファイルの数を設定できます。 3 つ以上のファイルを設定する場合は、3 番目のカテゴリがあります:

  • ユーザー定義ファイル: 拡張子 (.ndf) を持つセカンダリ データ ファイル

DB トランザクションを実行すると、最初にログ ファイルに保存され、トランザクションが完了するとプライマリ データ ファイルに更新されます。

各ファイルのデフォルトおよび最小サイズは 8 MB で、最大サイズに制限はありません。また、データベースに関しては、Microsoft によれば、1 つのデータベースは最大 524 PB まで可能です。

選択クエリと印刷クエリ

「選択」クエリを使用したことがある場合は、「印刷」クエリについても聞いたことがあるかもしれません。

いつどちらを使用するかを理解しましょう。

基本的に、「選択」クエリはテーブル データをグリッド形式で返しますが、「印刷」クエリはデータをテキストとして返します。

そのため、テーブル データに対して操作を実行する必要がある場合は常に「select」クエリを使用し、ログやエラーを出力する場合は主に「print」クエリを使用します。

それでは、面接で最も気に入った質問について話しましょう。

Why I Revisited MS SQL Server Basics: A Deep Dive into String Data Types

Char vs Varchar vs Nvarchar?

文字:

Char は最大 8000 文字を保存し、文字スペースごとに 1 バイトを保持します。

  • サイズを指定しない場合、デフォルトで SQL は 1 バイトをそれに割り当て、1 文字だけを保持します。

  • 定義されたサイズより多くの入力を与えると、データは自動的に切り捨てられます。

  • Char は 静的メモリ割り当て に従います。そのため、20 バイトのサイズを割り当てて 10 文字を格納した場合でも、SQL はすべての 20 バイトのストレージを割り当て、残りの 10 バイトはメモリとみなされます。スペースの無駄です。

Varchar:

  • Varchar は、最大 2GB のデータを保存でき、文字スペースごとに 1 バイトを保持できます。テーブルには最大 8000 バイト のデータが保存されますが、それを超えるデータはテキスト ファイルに保存されます。

  • 複数の記事で 8000 バイトという制限があることに気づいたかもしれません。

  • 2GB データを格納する列を宣言するには、varchar(max) を使用できます。

  • Varchar は 動的メモリ割り当て に従います。したがって、20 バイトのサイズを割り当てて 10 文字を格納すると、SQL は 10 バイトのストレージのみを割り当て、残りの 10 バイトは保存されます。

Nvarchar:

  • Nvarchar は varchar と同じプロパティに従いますが、唯一の違いは、1 文字を格納するのに 2 バイトを使用することです。

  • Unicode 標準データに従っており、複数の言語をサポートしているためです。
    また、char、varchar は ASCCI 標準データに従います。

Text というデータ型がもう 1 つありますが、これは非推奨になっているため、無視してかまいません。

調査中に非常に役立つと感じた記事が 1 つあります。すべてのデータ型に関する詳細情報が含まれています。

詳細については、こちらを参照してください。

何かを見逃している、または更新する必要があると思われる場合は、お気軽にコメントしてください。それは私だけでなく私たちのコミュニティにも役立ちます。

以上がMS SQL Server の基本を再考した理由: 文字列データ型の詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。