はじめに
これはSQL勉強中の私がSQLでハマった時の対応記録用の備忘録
「;」は忘れないこと!
SQL文の最後に「;」を忘れると一生SQLが終わらない。
mysql> show tables from alter_table
->
->
->
->
->
->
解決方法
「;」をつける
mysql> show tables from alter_table ; ←コレ
テーブルをCREATEするときはカラムを最低1つ指定すること!
テーブルを新規で作成する時にカラムを何も指定せずにcreateすると怒られる。
mysql> create table test;
ERROR 1113 (42000): A table must have at least 1 column
解決方法
実務ではカラムなしはあり得ない(テーブル定義してからCREATEするから)が、練習で作るときはとりあえず何でもいいからカラムは指定する。
mysql> create table test(id int, name varchar(10));
データ型のTEXTとCHARとVARCHARってなんや
文字列のデータ型は主に3つ(今のところ)。
- CHAR
- VARCHAR
- TEXT
CHAR
CHARは「CHARacter (キャラクター)」という意味。
入るデータの桁数(バイト数)が決まっている場合に利用する。
CHAR(10)とすると、10バイト以上は追加することができなくなって、
6文字(6バイト)のデータの場合、残りは空白が4文字(4バイト)追加され10バイトにしてくれる。
VARCHAR
VARCHARは「VARiable CHARacter (ヴァリアブル キャラクター)」という意味。
CHARと違って余った場合に空白は追加されない。
VARCHAR(10)とすると10バイト以上は追加することができなくなる点は同じだが、
6文字(6バイト)のデータの場合にはそのまま6文字として登録される。
(255文字以上になった場合はTEXTにするのがよさそう!)
TEXT
CHARとVARCHARは国際標準のSQLの規格で定義されているらしい。
TEXTはMySQLやPostgreSQLなど一部のDBMSで使用できる文字列のデータ型。
文字数を指定する必要もなく柔軟に登録してくれるから便利だが、前述の「国際標準のSQLの規格」ではないため、ちゃんとしたプロジェクトならCHARとVARCHARを使うようにすること!(たぶん)
続く