First Creation 2005/02/13
Last Update 2007/02/05
Bloody Mary > Technical Notes > MySQL テーブル作成編

MySQL テーブル作成編

前回追加したユーザー mary で、bloody というデータベースにデータを入力してみよう。

データを入れるためには、データベースにテーブルを追加しなければならないのである。

何やらエラそうなことを書いているが、自分自身への学習と備忘録の意味合いが強い。

世の中には勉強するときにノートを取らないと覚えられない人がいる。それが私だ。

テーブルの作成

前回、bloody というデータベースを追加したわけだが、名前だけ登録してあるだけで、中身(入れ物もデータも)は空だ。そこで今回はそのデータベースに入れ物を作ってやることにする。

1. ログイン
/home/root/usr/bin> mysql -u mary -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 44 to server version: 3.22.32-log

Type 'help' for help.

※ 2005 年時点の記事なので、 MySQL のバージョンが 3.22 です。

mysql> use bloody;
Database changed
2. テーブルを追加する

bloody データベースを操作できる状況になったのだが、ここで MySQL データベースについての基本的知識を書いておこう。まず、データを大中小の項目でカテゴライズ ( もしくは保存場所をどこにするか ) する場合、大項目がデータベース、中項目がテーブル、小項目がカラムとなる。

エクセルに例えるなら、ファイルがデータベース、シートがテーブル、シートの中の A 列、 B 列... に当たるのがカラムで、 1 行目 2 行目 ... がデータにあたる。変な設計をしなければそうなるはずだ。「データは横に入れて行くけど」という意見も最ではあるが、今の私には聞こえない。

さて、bloody というデータベースを作ったので、その中にカクテル辞典というテーブルを作ることにしよう。これを視覚に訴えると次のようになる。

データベースとテーブルとカラム

bloody
テーブル名 Field Type Null Key Default Extra 詳細
cocktail id int(5) unsigned   PRI NULL auto_increment ユニークな番号
name varchar(20)         カクテル名
base           カクテルが何ベースかを示す
source           材料と配分

では実際に作ってみよう。コマンドは長くなって見づらいので複数行に渡って入力してみた。なお、今回から、コマンド系に大文字を使うことで、データとコマンドの区別化を図ることにした。それが一般的なやり方らしいので、慣例に従うことにする。

mysql> CREATE TABLE cocktail (\
    id INT(5) UNSIGNED AUTO_INCREMENT NOT NULL,\
    name VARCHAR(20) NOT NULL,\
    base VARCHAR(20),\
    source VARCHAR(100) NOT NULL,\
    PRIMARY KEY(id)\
);
Query OK, 0 rows affected (0.13 sec)

CREATE TABLE ... 以降をそのままコピペすれば OK のはず。あとは、テーブルのフィールドを確認する。コマンドは DESCRIBE だ。

mysql> DESCRIBE cocktail;
+--------+-----------------+------+-----+---------+----------------+
| Field  | Type            | Null | Key | Default | Extra          |
+--------+-----------------+------+-----+---------+----------------+
| id     | int(5) unsigned |      | PRI | 0       | auto_increment |
| name   | varchar(20)     |      |     |         |                |
| base   | varchar(20)     | YES  |     | NULL    |                |
| source | varchar(100)    |      |     |         |                |
+--------+-----------------+------+-----+---------+----------------+
4 rows in set (0.02 sec)

これでテーブルが作成できたので、今度は実際にデータを入力してみることにする。

戻る 上へ 次へ