リスを倒す 『初めてのPHP,MySQL,JavaScript&CSS』

『初めてのPHP,MySQL,JavaScript&CSS』勉強奮闘記

8-8. MySQL入門⑧テーブルの結合

MySQL入門、ラストです。
やっとだー
全然関係ないけど色々考えがまとまりそう。。これもあとちょっと。たぶん。

1-1. テーブルの結合


1つのデータベースに、それぞれが異なる情報を持つ複数のテーブルを保持するのはよくあることです。
今回は、classicsテーブルから購入した出版物と相互参照できるcustomersテーブルの例でみていきます。

以下のコマンドを入力します。
まず、「costomers」のテーブルを作成し、「INSERT INTO」を使ってテーブルに情報を入れます。


CREATE TABLE customers (
name VARCHAR(128),
isbn VARCHAR(128),
PRIMARY KEY (isbn)) ENGINE MyISAM;
INSERT INTO customers(name,isbn)
VALUES('Joe Bloggs','9780099533474');
INSERT INTO customers(name,isbn)
VALUES('Mary Smith','9780582506206');
INSERT INTO customers(name,isbn)
VALUES('Jack Wilson','9780517123201');
SELECT * FROM customers;

結果はこう。
f:id:taro-blog2323:20160908231726p:plain

次に2つのテーブルを結合して1つの「SELECT」にします。


SELECT name,author,title from customers,classics
WHERE customers.isbn=classics.isbn;

結果はこう。
f:id:taro-blog2323:20160908232415p:plain

1-2. NATURAL JOIN


「NATURAL JOIN」を使用すると、入力する手数が減るとともにクエリが少しわかりやすくなります。
2つのテーブルを取り、同じ名前を持つ列を自動的に結合させます。

SELECT name,author,title FROM customers NATURAL JOIN classics;


1-3. JOIN...AS


2つのテーブルの結合させる列を指定したい場合には、「JOIN...AS」を使用します。


SELECT name,author,title FROM customer
JOIN classics ON cutomers. isbn=classics.isbn;


いじょー

意外と終わりはあっさりだった。
次は9章です、正規化というやつです。噂だと正規化で死ぬという。。。