SQLのvarcharは文字列を扱うデータ型 サイズ指定は文字数とバイト数の場合あり
  • facebookページ
  • twitterページ
  • 2020.06.27

    SQLのvarcharは文字列を扱うデータ型 サイズ指定は文字数とバイト数の場合あり

    SQLのvarcharについてまとめています。

    SQLのvarcharは、文字列を格納するデータ型

    以下はMySQLの例です。文字列を格納するデータ型にはvarchar以外にcharやtextがありますが、挙動に違いがあります。

    textはキーに指定できませんし、データinsert時に末尾に空白が入るかどうかに違いがあります。

    varchar(8)、char(8)、textの3つのデータ型を持つテーブルvchatestを作成し、”STR “(末尾に空白)という文字列をそれぞれのカラムにinsertしています。

    charの場合は、末尾に空白の入る文字列だと、空白が削除されてしまうんですね。

    【関連記事】
    MySQLのVARCHAR型 charとは末尾の空白の扱いが違う

    また、MySQLの場合、データ型宣言のvarchar(x)のxの数値は文字数です。

    上記の例では、varchar(8)には全角10文字は格納できずエラーとなりますが、全角8文字はエラーなく格納できています。このことから、MySQLのvarcharの数値は文字数であることを確認しているんですね。

    SQL Serverでは、varcharはバイト数、nvarcharは文字数を指定するものとしてデータ型自体が分けられています。また、Oracleでは、varchar2はバイト数指定になります。varchar2(10)なら、10バイトの文字列が格納できるんですね。

    このように、varcharの仕様はデータベース管理ソフトごとにことなっているようです。

    まとめ

    ポテパンダの一言メモ
    • varcharは、文字列を格納するデータ型
    • varchar型、char型、text型で挙動が異なる
    • varcharのサイズ指定はデータベース管理ソフトごとに文字数の場合とバイト数の場合あり


    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE