First Creation | 2005/02/13 |
---|---|
Last Update | 2007/02/05 |
前回追加したユーザー mary で、bloody というデータベースにデータを入力してみよう。
データを入れるためには、データベースにテーブルを追加しなければならないのである。
何やらエラそうなことを書いているが、自分自身への学習と備忘録の意味合いが強い。
世の中には勉強するときにノートを取らないと覚えられない人がいる。それが私だ。
前回、bloody というデータベースを追加したわけだが、名前だけ登録してあるだけで、中身(入れ物もデータも)は空だ。そこで今回はそのデータベースに入れ物を作ってやることにする。
/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
bloody データベースを操作できる状況になったのだが、ここで MySQL データベースについての基本的知識を書いておこう。まず、データを大中小の項目でカテゴライズ ( もしくは保存場所をどこにするか ) する場合、大項目がデータベース、中項目がテーブル、小項目がカラムとなる。
エクセルに例えるなら、ファイルがデータベース、シートがテーブル、シートの中の A 列、 B 列... に当たるのがカラムで、 1 行目 2 行目 ... がデータにあたる。変な設計をしなければそうなるはずだ。「データは横に入れて行くけど」という意見も最ではあるが、今の私には聞こえない。
さて、bloody というデータベースを作ったので、その中にカクテル辞典というテーブルを作ることにしよう。これを視覚に訴えると次のようになる。
bloody | |||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
では実際に作ってみよう。コマンドは長くなって見づらいので複数行に渡って入力してみた。なお、今回から、コマンド系に大文字を使うことで、データとコマンドの区別化を図ることにした。それが一般的なやり方らしいので、慣例に従うことにする。
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)
これでテーブルが作成できたので、今度は実際にデータを入力してみることにする。