MySQL 基本的なDB作成
Rev.20を表示中。最新版はこちら。
1.データベースの作成
CREATE DATABASEで作成する。作成には権限が必要。作成後、useで使用するデータベースを選択する。mysql> CREATE DATABASE friendDB
Query OK, 1 row affected (0.00 sec)
mysql> use friendDB
Database changed
2.テーブルの作成
以下のような友人リストを登録するテーブルを作る場合。friendsテーブル
No. | フィールド名 | 内容 |
---|---|---|
1 | id | 識別子 |
2 | name | 氏名 |
3 | address | 住所(省略可) |
4 | birthday | 生年月日(省略可) |
mysql> CREATE TABLE friends (id INT UNSIGNED PRIMARY KEY,
name VARCHAR(30) NOT NULL, address VARCHAR(100),
birthday DATETIME);
◎PRIMARY KEY
PRIMARY KEYを設定したカラムには以下の特徴がある。
- 他のレコードと重複した値は格納できない
- NOT NULL属性を持つ
- 自動的にインデックスが設定される
- PRIMARY KEYを設定したカラムはテーブルに1つしか存在できない
3.レコードの登録
データを登録するには以下のようにする。mysql> INSERT INTO friends (id, name, address, birthday)既に登録済みのレコードを更新する場合。
VALUES(1, "tomita", "Kamata xxxx", "2006-05-13 12:34:56");
mysql> UPDATE friends SET address="Yokohama" WHERE id=2;
4.自動採番したいカラム
上記のテーブルだとidを毎回自分で採番しないといけない。idを自動採番したい場合は以下のようにidにSERIAL属性をつけてテーブルを作っておけばよい。(SERIALはBIGINT NOT NULL AUTO_INCREMENT UNIQUEと同じ)mysql> CREATE TABLE friends (id SERIAL, name VARCHAR(30) NOTこのようにしておけば、以下のようにしてidを省略して1から順番に自動採番させて登録できる。なおidは自動的にインデックス設定される。
NULL,
address VARCHAR(100), birthday DATETIME);
mysql> INSERT INTO friends (name, address, birthday)
VALUES("tomita", "Kamata xxxx", "2006-05-13 12:34:56");
5.インデックスをつける
nameカラムにインデックスをつけてテーブルを作る場合は以下のようにする。(nameの最初の10文字をインデックスに使用。)mysql> CREATE TABLE friends (id SERIAL, name VARCHAR(30) NOT既存のテーブルに後からインデックスを追加する場合
NULL,
address VARCHAR(100), birthday DATETIME,
INDEX name_idx (name(10)));
mysql> CREATE INDEX name_idx ON friends (name(10));インデックスを削除する場合は以下。
mysql> DROP INDEX name_idx ON friends;