ホームページ >データベース >mysql チュートリアル >SQL における CHAR と VARCHAR: 主な違いの説明

SQL における CHAR と VARCHAR: 主な違いの説明

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-22 03:57:15451ブラウズ

CHAR vs VARCHAR in SQL: Key Differences Explained

SQL における CHAR と VARCHAR の違い

CHAR と VARCHAR はどちらも SQL で文字列を格納するために使用されますが、ストレージ、パフォーマンス、および使用方法の点で大きく異なります。詳細な比較は次のとおりです:


1.定義

  • CHAR:

    固定長の文字データ型。保存されたデータの長さに関係なく、常に固定量のストレージ スペースを使用します。

  • VARCHAR:

    可変長の文字データ型。使用されるストレージは、保存されるデータの実際の長さによって異なります。


2.保管動作

  • CHAR:

    • すべての値に定義された最大サイズを割り当てます。
    • 保存された文字列が定義されたサイズより短い場合は、残りのスペースを埋めるためにスペースが埋め込まれます。
    • 例: CHAR(10) は、文字列が "Hello" (5 バイト) であっても、常に 10 バイトを使用します。
  • VARCHAR:

    • 文字列に必要なだけのストレージを使用し、さらに文字列の長さを格納するために 1 バイトまたは 2 バイトを追加します。
    • 例: "Hello" (5 バイト) を格納する VARCHAR(10) は、6 または 7 バイト (文字列の 5、長さの 1/2) を使用します。

3.パフォーマンス

  • CHAR:

    • 長さが事前に決定されており、データ取得中に可変長を管理する必要がないため、固定長文字列の方が高速です。
    • 郵便番号や国番号など、一貫した長さのデータを保存するのに最適です。
  • VARCHAR:

    • 可変長データのストレージという点では効率的ですが、長さを管理するオーバーヘッドのため、操作が若干遅くなります。

4.使用例

  • CHAR:

    • 次のような固定長データに最適です。
    • 国コード (例: "US"、"UK")
    • 郵便番号
    • 製品コード
    • 一貫した保管と取得を保証します。
  • VARCHAR:

    • 次のような可変長データに適しています。
    • 名前 (例: "John"、"Alexander")
    • メールアドレス
    • 説明またはコメント

5.最大長

  • CHAR:

    • 最大 255 文字をサポートします (データベース システムによって異なります)。
  • VARCHAR:

    • 一部のデータベース システム (MySQL など) では最大 65,535 文字を保存できますが、実際の最大値は行サイズとデータベース エンジンによって異なります。

6.例

CHAR の使用:

CREATE TABLE countries (
    country_code CHAR(3) NOT NULL
);

INSERT INTO countries (country_code) VALUES ('US'), ('UK'), ('IN');
  • "US"を格納しても3バイト('US'はパディングあり)となります。

VARCHAR の使用:

CREATE TABLE users (
    username VARCHAR(50)
);

INSERT INTO users (username) VALUES ('Alice'), ('Alexander');
  • 「Alice」は 6 バイト (長さの文字列 1 は 5 バイト) を占め、「Alexander」は 10 バイトを占めます。

7.概要表

Aspect CHAR VARCHAR
Length Fixed-length Variable-length
Storage Always uses the defined size. Uses only the required size length metadata.
Performance Faster for fixed-length strings. Slightly slower due to length management.
Padding Pads with spaces for shorter data. No padding; stores exact string.
Use Case Fixed-length data. Variable-length data.
Max Length 255 characters. Up to 65,535 characters.
アスペクト
CHAR

VARCHAR 長さ
    固定長 可変長
  • ストレージ
  • 常に定義されたサイズを使用します。 必要なサイズ長メタデータのみを使用します。 パフォーマンス 固定長文字列の場合は高速です。 長さの管理のため、少し遅くなります。
  • パディング
  • 短いデータの場合はスペースを埋め込みます。 パディングなし。正確な文字列を保存します。 使用例 固定長データ。 可変長データ。 最大長

    255 文字。 最大 65,535 文字。

    結論
    サイズの一貫性が重要であり、ストレージ効率が主な関心事ではない固定長データには、CHAR を使用します。 可変長データには VARCHAR を使用して、記憶域スペースを節約し、柔軟な文字列長を処理します。 こんにちは、アバイ・シン・カタヤットです! 私はフロントエンドとバックエンドの両方のテクノロジーの専門知識を持つフルスタック開発者です。私はさまざまなプログラミング言語やフレームワークを使用して、効率的でスケーラブルでユーザーフレンドリーなアプリケーションを構築しています。 ビジネス用メールアドレス kaashshorts28@gmail.com までお気軽にご連絡ください。

    以上がSQL における CHAR と VARCHAR: 主な違いの説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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