2011年6月5日日曜日

MySQLにおけるテーブルの作成と更新

MySQLでテーブルをつくってみる。
今回つくるのは


  • タレント表(タレントのID、タレントの名前、所属事務所のID)
  • 事務所表(事務所のID、事務所の名前)


という感じの表をMySQLでコマンドを打ってやっていきます。
また、ここでは事務所表を親表、タレントを子表として、主キーや外部キーも設定してみます。

create table officeTable
(o_id int AUTO_INCREMENT, o_name VARCHAR(20), 
PRIMARY KEY(o_id),index(o_id)) auto_increment=1000, 
engine=INNODB;


o_idというのが事務所IDで、o_nameが事務所の名前。o_idはこのテーブルにおける主キーで、auto increment、つまり自動でどんどん振られていく番号として設定します。そうすることで、だぶりなく、無駄無くIDが振られるわけです。

insert into officeTable(o_name) values('aaaOffice');
insert into officeTable(o_name) values('bbbOffice');

insert文で、レコードを挿入。この後、いろいろやっていくと以下のようになってくれます。



特にo_idを設定しなくても、1000から順番にIDが振られているのがわかります。



次に、タレント表をつくります。

create table t_meibo
(t_id int auto_increment, t_name varchar(20), o_id int, 
primary key(t_id),index (o_id),foreign key(o_id) 
references officeTable(o_id)) 
AUTO_INCREMENT=1, engine=INNODB;

タレントIDであるt_idを主キーとしています。また、先ほどauto incrementとすることで、1から順番にIDを振っていくこととします。さらに、所属事務所のIDは親表である事務所表の事務所IDと同一のものにしたいので、外部キーとして設定します。

では、レコードを登録していきます。

insert into t_meibo(t_name,o_id) values('takahashi',1000);
insert into t_meibo(t_name,o_id) values('tanaka',1000)


無事、登録されました。
ここで、事務所IDとして存在し得ないものを書くと、エラーが起きます。



insert into t_meibo(t_name,o_id) values('takahashi',999);

次回まっではもっとレコードを増やして、テーブル同士の結合などなどに挑戦していきたいと思います。

0 件のコメント:

コメントを投稿