MySQLテーブルのcharsetをUTF-8に

最近、学生時代以来のプログラミングをやっています。
C言語なにそれおいしいの状態です。完全に初心に戻って勉強しています。


それはさておき、MySQLのテーブルに日本語を打ち込みたいときにどうやってテーブルをつくればいいかを教えてもらったのでメモします。
例えばMySQLの設定ファイルをいじる権限がないときなどに使えます。

テーブルを作る時点でcharset=utf8にする方法

以下の例は「messages」というテーブルを作った時の例です。
「No.」「名前」「テキスト」「投稿日時」くらいしかない簡単な掲示板の例ですが、

CREATE TABLE messages(
    -> no INT AUTO_INCREMENT PRIMARY KEY,
    -> name VARCHAR(255),
    -> message TEXT,
    -> created DATETIME
    -> )default charset=utf8; ←この部分重要。日本語対応する上でかなり大事。

最後の行にある

default charset=utf8;

の部分が大事です。

alter文を使ってあとでテーブルの設定を変更するという方法もあります

mysql>alter table messages default charset=utf8;

本当は設定ファイルを編集するのが一番スマートな方法だとは思うのですが、、、、

管理責任のある人間にしかいじれない!でも日本語をDBに突っ込みたい!というときに使えます。