MySQL キャラクタセットについての質問。

【講座名】
MySQL初心者入門講座 に関する質問

【質問】
MySQLにはキャラクタセットがいろいろあるようですが、どれを選べばよいのでしょうか?


【回答】
キャラクタセット(character set)とは、アルファベット、ひらがな、カタカナ、漢字などの文字の集まりのことで、いろいろな規格があります。

日本語を扱うキャラクタセットで、MySQLで使えるものには、以下のようなものがあります。

・sjis
・cp932
・ujis
・eucjpms
・utf8

MySQLでは、サーバー、データベース、テーブル、フィールドの文字コードと、mysqlなどのクライアントツールの文字コードをすべて統一したほうが、「文字化け」の問題に悩まずに済みます。

MySQL初心者入門講座で、MySQLをインストールする時に「sjis」を勧めたのは、当講座の読者が初心者で、 Windows を使っている人が多いからです。

Windows 利用者の場合、MySQL側を「sjis」に統一すれば、クライアントからの操作で、文字コードを意識する必要がなくなります。初心者が MySQL の学習環境を整えるには、これが一番簡単です。sjis は文字化けの問題がありますが、文字コードを統一しておけば大丈夫です。

しかし本格的に PHP や Java で作ったアプリケーションから MySQL を操作するなら、「eucjpms」や「utf8」を使ったほうがよいでしょう。

また最近では、楽天や Amazon などの Webサービスで提供されるデータは UTF-8 が一般的です。他社のWebサービスを活用するシステムを作る予定がある場合は、 utf8 に統一したほうがいいと思います。

MySQLの基本的な操作に慣れてきたら、他のキャラクタセットにも挑戦してみてください。


MySQL 文末に付ける「;」セミコロンについて。

【講座名】
MySQL初心者入門講座 に関する質問

【質問】
MySQLで使用するデータベースを選択する時に、「USE データベース名」とセミコロンを付けなくても、「USE データベース名;」と同じように動くのですが何故でしょうか?

qa-12.gif

【回答】
コマンドプロンプトから MySQL を操作するために使われる「mysql」は、クライアントツールの一つです。mysqlの本体は、「C:\mysql\bin\mysql.exe」です。

mysql の画面では、以下の2つが入力できます。
1.mysqlのコマンド(命令)
2.SQL文

mysqlのコマンドの場合はセミコロンが不要で、SQL文の場合は文末にセミコロンが必要です。SQL文はセミコロンが一つの文の区切りとなるからです。

ではどうやって mysql のコマンドかどうか判断したらよいのでしょうか。実はとても簡単です。


(1)mysqlを起動後、「help」と入力して実行します。

qa-09.gif


(2)mysqlのコマンド一覧が表示されました。

qa-10.gif


(3)この一覧にあるのは mysql のコマンドなので、セミコロンを付けなくても動きます。よく使うコマンドを赤枠で囲んでみました。

qa-11.gif

mysqlのコマンドは省略形が使えます。
例 help → \h
*「\」はWindowsでは円記号のことです。

help も mysql のコマンドなので、セミコロンが不要なわけです。

ということで、mysql のコマンドの場合は「USE データベース名」のようにセミコロンを付けないのが、本来の書き方です。


MySQL ダウンロードファイルの種類について。

【講座名】
MySQL初心者入門講座 に関する質問

【質問】
MySQLのダウンロードファイルにはいろいろ種類がありますが、どれを選んでいいのかわからないので、詳しく教えてください。

【回答】
(1)まず利用方法により、無償か有償があります。
・MySQL Community Server
・MySQL Enterprise

MySQLは個人利用に限り無償で利用できます。商用で利用する場合はライセンスを購入する必要があります。個人利用が目的なら MySQL Community Server を選んでください。


(2)MySQLのバージョンについて
MySQLは開発中の最新バージョンも公開していますが、安定している Generally Available (GA) Release をおすすめします。

「6.0.4-alpha」のようにバージョンの後ろに、alpha、beta、rc などが付いているものが開発中です。安定版は「5.0.51a」のようになっています。

最新機能を試す以外なら、安定版を選んでください。


(3)MySQL本体の種類について
Windows版の MySQL 本体は、以下の3種類がダウンロードできます。

・Windows Essentials (x86)
・Windows ZIP/Setup.EXE (x86)
・Without installer (unzip in C:\)

「Essentials」は必要最小限の基本的なパッケージです。MySQL を学習用として使う分には Essentials で十分です。

MySQL を本格的に使う場合は、フルパッケージの「ZIP/Setup.EXE」か「Without installer」をダウンロードします。

フルパッケージの場合は、インストーラーが付いている「ZIP/Setup.EXE」がいいと思います。「Without installer」は手動で設定が必要な部分があるので、MySQL に慣れてきたら利用すると良いでしょう。


(4)MySQL本体以外の「Connector/ODBC」や「Connector/J」でも開発中と安定版のバージョンがあります。なるべく安定版をダウンロードしてください。

MySQL初心者入門講座の解説画像でも、開発中のバージョンをダウンロードしている部分がありますが、本当は安定版のほうがいいです。


MySQL データ型の決め方がわからない。

【講座名】
MySQL初心者入門講座

【質問】
テーブルを作成するSQL文についてですが、()カッコ内の 3 や 10 という数字は何を表し、どのように決めるものなのでしょうか?

CREATE TABLE T01Prefecture (
PREF_CD INT(3),
PREF_NAME VARCHAR(10),
PRIMARY KEY (PREF_CD)
);

【回答】
カッコ内の数字は以下のような意味になります。
・INT タイプの場合は最大ディスプレイ幅
・VARCHAR タイプの場合は格納したい最大文字数

注意点としては INT タイプの場合、ディスプレイ幅と許容値幅とは別だということです。
INT(M)

例えば INT タイプの範囲は -2147483648 から 2147483647 ですが、これはディスプレイ幅とは別です。ディスプレイ幅のMは省略できます。範囲のほうが重要です。

同じ数値タイプでも FLOAT と DOUBLE タイプの場合は、合計で M 桁まで格納でき、そのうちの D 桁は小数点以下であることを表します。
FLOAT(M,D)

また VARCHAR タイプは可変長の文字列です。カッコ内の文字数の長さは、バイトを表す 0から65,535の値で指定します。

詳しくはMySQLのマニュアルをご覧ください。

(1)MySQLのバージョン、言語ごとにマニュアルが用意されています。
http://dev.mysql.com/doc/#manual


(2)以下の部分にデータタイプに関連する情報があります。
http://dev.mysql.com/doc/refman/5.1/ja/data-types.html

10.1.1. 数値タイプの概要
10.4.1. CHAR と VARCHAR タイプ

マニュアルの量は多いので、とりあえず自分に関係がある部分だけ読むといいと思います。必要になった時にじっくり読んでください。


スポンサードリンク


スポンサードリンク






プログラミング入門 Q&A TOPへ