3-1 MySQLについて(P.40~49)

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
-> set ID_C = ‘,NAME_C = ‘大友達子’,ADD_C =
-> ‘東京都千代田区何処町1-1-1’;
もしくは、
mysql> insert into FRIENDS_T(ID_C,NAME_C,ADD_C)
-> values(‘1’, ‘大友達子’,‘東京都千代田区何処町1-11’);
の2種類の方法がある。
後者の方法では、複数のデータを追加するのに便利である.
mysql> insert into FRIENDS_T(ID_C,NAME_C,ADD_C)
-> values(‘1’, ‘大友達子’,‘東京都千代田区何処町1-11’)、
-> (‘2’, ‘小友達夫’,‘東京都葛飾区何処町1-1-1’);
mysql> select * from FRIENDS_T;
と入力すると、テーブルFRIENDS_Tの全てのデータが表示さ
れる。
「*」が「全て」という意味で、 FRIENDS_Tの全てのデータを
取り出して表示せよ、という命令である。selectコマンドによって
表示されるレコードの塊を「結果セット」と呼ぶ。