-
varcharで65535を文字数に指定したらエラーが出てしまいますが、なぜできないんでしょうか?
-
型の横に書く括弧(varchar**(255)**)みたいなのについてなんですが、varcharは文字数で、intはバイト数なんて聞くのですが、そういったことはどこにかいてありますか?

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。
SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。
データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます
MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。
SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。
データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます
1グッド
0クリップ
投稿2017/10/15 18:20
varcharで65535を文字数に指定したらエラーが出てしまいますが、なぜできないんでしょうか?
型の横に書く括弧(varchar**(255)**)みたいなのについてなんですが、varcharは文字数で、intはバイト数なんて聞くのですが、そういったことはどこにかいてありますか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
varchar(65535)がエラーとなる理由はsaziさんがご回答の通りです。
文字コードによるバイト数計算のため、文字コードが例えばUTF-8であれば、バイト数でのイメージとしてvarchar(196605)といった形になり、VARCHARの最大行サイズを超える形となっています。
リファレンスマニュアルの場所をご案内します。
MySQL :: MySQL 5.6 リファレンスマニュアル
使用されているMySQLのバージョンが不明ですが、もしMySQL 5.7等をご利用の場合、残念ながら上記リファレンスの5.7版の日本語リファレンスはまだ提供されていません(されてたらごめんなさい)。
そのため、バージョンごとの正確な記載を確認したい場合は、ページ右上のバージョン選択から5.7 English
等を選んで英語のリファレンスを参照する必要があります。
ただし、正確には違いがある可能性があるものの、MySQLのバージョン間で大きく変わっていない部分もありますので、まずは5.6の日本語リファレンスで確認し、必要に応じて適切なバージョンのマニュアルも参照するといった形でも問題はないのではないかと思います。
また、saziさんが引用されているVARCHARについての説明は、おそらく下記ページに記載されているものと思いますので、こちらもリンクを貼っておきます。
投稿2017/10/15 21:32
退会済みユーザー
総合スコア0
0
1.リファレンスに以下の記載があります。
[NATIONAL] VARCHAR(M) [CHARACTER SET charset_name] [COLLATE collation_name]
可変長文字列です。M はカラムの最大長を文字数で表します。M の範囲は 0 から 65,535 です。VARCHAR の有効な最大長は、最大行サイズ (65,535 バイト、すべてのカラムで共有されます) と使用される文字セットによって決まります。たとえば、utf8 の文字は 1 文字につき最大 3 バイトを必要とする場合があるため、utf8 の文字セットを使用する VARCHAR カラムは、最大 21,844 文字になるように宣言できます。セクションD.10.4「テーブルカラム数と行サイズの制限」を参照してください。
要は、文字数は使用される文字コードによって変わるということです。
2.上記のように、リファレンスに記載されています。
投稿2017/10/15 19:36
総合スコア25430
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。