- ベストアンサー
SQLのVARCHARとVARCHAR2の違い
SQLについての質問です。 文字列型のVARCHARとVARCHAR2の違いについて教えてください。 まだ、初心者なのでなるべく分かりやすくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
データベースによって、データ型の定義が違います。 私が知っている限りでは、 MS-SQLserverなどでは、可変長の文字列はvarcharですが、 Oracleでは、varchar2です。 他にも、MSのdatetimeに相当するものが、Oracleはdate型、という具合に名前が違います。 お使いのDBに沿ったデータ型の定義を調べると良いのではないでしょうか? それぞれ違うと思いますよ。(似てると言えば似ているけど。)
その他の回答 (1)
- tadanokuma
- ベストアンサー率36% (128/348)
回答No.1
【VARCHAR】→(CHARと同じ) 固定長の文字列のことです。サイズ(長さ)が一定で、入力した値がその長さに足りない場合は、スペースで不足分が補われます。指定した長さが文字列以上のものだと、指定された長さ分しか格納できません。 あらかじめ、入力される文字列の長さが決まっている場合はこちらを使用します。 【VARCHAR2】 可変長の文字列です。サイズ(長さ)が決まっていない情報に使用します。 この場合は、VARCHARと違って入力された文字長さが仮に10バイトであって、指定した長さが25バイトでも15バイト分空白が補われないため、資源(ディスク)の有効利用ができるメリットがあげられます。 私は、定義するに当たり、全部VARCHAR2で作成しています。
質問者
お礼
大変分かりやすい回答、ありがとうございます。 ところで、SQLの本にVARCHARは可変長の文字列と記載されていたのですが、 これはデータ型の定義が変わってしまったと考えてよろしいのですか?
お礼
なるほど。データベースによって定義が違うんですね。 すこし難しく考えすぎていたみたいです。 大変分かりやすい説明、ありがとうございました。