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

WBOY
リリース: 2024-08-30 06:40:35
オリジナル
263 人が閲覧しました

今日、マネージャーに 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 サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!