MySQLでよく文字コード絡みで悩まされるので、SQL使用時にコードを設定する方法がないものかと探していましたが、これはよさげというものを本で見付けましたので、メモしておきます。
例えば、CakePHPで認証コンポーネントを使うために、以下のようなテーブルを作るとします。
CREATE TABLE `Mydata` . `users`(
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `username` VARCHAR(50),
    `password` VARCHAR(50),
    `created` DATETIME DEFAULT NULL ,
    `modified` DATETIME DEFAULT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;重要なのは、最後行にあるこのコードです。DBの種類と文字コードを指定しています。今時utf8以外を使うことはめったにないので、個人的にはコピペで十分かなぁと思っています。
ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;2011/9/19追記
MySQLの環境によっては、使用するMySQLのストレージエンジンのデフォルト設定がInnoDBになっている場合があるそうです。(とりあえず、MAMP1.9.6.1(PHP5.2.17を選択)の状態では、InnoDBになっていました。)うまくいかない場合は、最後の行を以下のように変更してみてください。
ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;