3-1 MySQLについて 発表者:藤村元彦 自然言語処理研究室
3-1 MySQLについて(P.40~49) MySQLはリレーショナルデータベースマネージメントシステム(RDBMS)で、堅牢で処理速度の速いソフトウェアである。 データベース(DB)は、その中に表のようなテーブルという構造でデータを保存している。 ここではMySQLを使ったDBの、Linuxによる基本操作方法について説明する。 MySQL では、SQLコマンドは大文字・小文字の区別はないが、DB名とテーブル名は大文字・小文字の区別があるので注意されたい。
MySQLの起動と終了 まず、MySQLを起動するには、プロンプトからmysqlと入力すればよい。するとWelcome to ・・・とメッセージが表示された後、最後に、 mysql> と表示される。 これは、MySQLのプロンプトで、コマンドの入力を待っている状態である。このあとに「help」と入力すると、MySQLの操作に関するコマンドの説明が表示される
また、MySQLではユーザによるアクセス制限がある。スーパーユーザ以外で、MySQLをroot権限で動かすには、MySQL起動時に、 $ mysql –u root と入力する必要がある。 パスワードを設定している場合は、 $ mysql –u root –p と入力する。 MySQLを終了するときは、プロンプトから「exit」もしくは「quit」と入力すればよい。
既存のDBの中を見る MySQLには初めから二つのDBがあり、 mysql> show databases; と、入力すると、 と、入力すると、 +------+ | Database | | mysql | | test | と、DBの一覧を見ることができる。
さらにDBの中にはテーブルがあるので、 mysql> show tables from mysql; と入力すれば、mysqlというDBの中にあるテーブルの一覧を見ることができる。 mysql> show columns from mysql.user;と入力すれば、 mysqlというDBの、userというテーブルのカラム名と定義を見ることができる。 mysql> desc mysql.user; と入力しても同様の情報が見れる。
コマンドの最後の「;」は、SQLコマンドの入力終了を示すものである。 もし、つけ忘れてEnterを押した場合は、コマンドが実行されずにプロンプトの下に「->」が表示されるので、先に入力したコマンドを実行させるには「;」を入力しEnterを押せばよい。
DBの作成 DBの作成にはcreate databaseコマンドを使う。 mysql> create database ADDRESS_DB;と入力し、 Query OK, 1 row affected(0.00 sec) と表示されれば、 ADDRESS_DBというDBが作成される。 メッセージは、「SQLコマンドはOKで、1行影響を受けた(0.00秒で処理)」という意味である。
テーブルの作成 テーブルの作成にはcreate tableコマンドを使う。 テーブルはDBの中に作られるものなので、テーブルを指定するときは「DB名.テーブル名」とする必要がある。しかし、 mysql> use ADDRESS_DB; と入力し、使用するDBを先に指定しておくと、DB名を省略してテーブル名だけで指定することができる。
mysql> create table FRIENDS_T -> (ID_C int,NAME_C varchar(20), -> ADD_C varchar(40)); と入力すると、テーブルFRIENDS_Tが作成され、それは整数値が入るID_Cというカラムと、それぞれ半角文字列が20個と40個まで入るNAME_C、ADD_Cというカラムを持つ。 intが整数型、varcharが文字型を示している。
レコードの追加 レコードを追加(データの追加)するには、 mysql> insert into FRIENDS_T レコードを追加(データの追加)するには、 mysql> insert into FRIENDS_T -> set ID_C = ‘,NAME_C = ‘大友達子’,ADD_C = -> ‘東京都千代田区何処町1-1-1’; もしくは、 mysql> insert into FRIENDS_T(ID_C,NAME_C,ADD_C) -> values(‘1’, ‘大友達子’,‘東京都千代田区何処町1-1-1’); の2種類の方法がある。
後者の方法では、複数のデータを追加するのに便利である. mysql> insert into FRIENDS_T(ID_C,NAME_C,ADD_C) -> values(‘1’, ‘大友達子’,‘東京都千代田区何処町1-1-1’)、 -> (‘2’, ‘小友達夫’,‘東京都葛飾区何処町1-1-1’); mysql> select * from FRIENDS_T; と入力すると、テーブルFRIENDS_Tの全てのデータが表示される。 「*」が「全て」という意味で、 FRIENDS_Tの全てのデータを取り出して表示せよ、という命令である。selectコマンドによって表示されるレコードの塊を「結果セット」と呼ぶ。