第12回 テーブルを使おう!SQL基礎講座

さて、先のテーブルの作りは何となく分かって頂けたかと思います。
次に、このテーブルの中身を入れたり操作したりということが必要になって来ます。 それをやるのがSQLです。SQLの基本はデータを
「参照する」「追加する」「変更する」「削除する」
の4つからなります。例えば、通販サイトのことを考えてみましょう。

当然、はじめに、商品情報テーブルへ商品情報を「追加(1)」します。また、場合によっては、一度入力した商品情報を「変更(2)」したり、廃盤になれば「削除(3)」もすることがあるでしょう。
そして、次に、お客がサイトに来ます。お客のIDなんかを発行したりします。そしてそのIDと顧客情報を、顧客情報テーブルに「追加(4)」します。当然お客は、商品情報を検索して「参照(5)」します。そして、その「参照(6)」したものが気に入れば、ショッピングバスケットに「追加(7)」して行きます。気が変わって、バスケットから出す(「削除(8)」する)こともあるでしょう。
そして決済して、商品購入が完了します。
つぎは、ショップオーナーが、注文情報と購買履歴を「参照(9)」し、 必要な商品箱詰めします。顧客情報を「参照(10)」して送り先を確認して 送付して、ばんざーい、1件終了。
以下エンドレス......。

と、なるわけです。このとき、データベースに働きかけるSQLのコマンドは 以下の4つになります

参照:select
  構文:select フィールド名or演算式 from テーブル名 where 条件式
  意味:テーブルの中から条件式を満たすレコードを取りだし、指定した
     フィールド名の内容、もしくは演算結果を出力する。
  例文:select * from table where i=1

追加:insert
  構文:insert into テーブル名 (フィールド名) values (値)
  意味:テーブルへフィールドと対応する値をそれぞれ持つレコードを
     挿入する。
  例文:insert into table (f1,f2,f3) values (1,'a',0)

変更:update
  構文:update テーブル名 set フィールド名 = 値 where 条件式
  意味:テーブルの中で条件式を満たすレコードの指定したフィールド名
     の内容を値に変更する。
  例文:update table set f1=2 where i=1

削除:delete
  構文:delete from テーブル名 where 条件式
  意味:テーブルの中で条件式を満たすレコードを削除する。
  例文:delete from table where i=1

そうすると、上で示したアクションは、それぞれ以下のような感じのSQLへと書きかえることができます。(文法的に正しいというわけではありません。意味合いとしてです。)

(1) insert into 商品情報テーブル values (商品情報もろもろ)
(2) update 商品情報テーブル set 変更内容 where 商品ID=変更商品ID
(3) delete from 商品情報テーブル where 商品ID=削除商品ID
(4) insert into 顧客情報テーブル values (IDほか顧客情報)
(5) select * from 商品情報テーブル where ジャンルID=今見ているジャンル
(6) select * from 商品情報テーブル where 商品ID=個別商品ID
(7) insert into 購買履歴テーブル values (顧客IDと商品ID)
(8) delete from 購買履歴テーブル where 商品ID=個別商品ID
(9) select * from 購買履歴テーブル where 顧客ID=今買い物してる人のID
                      and 購入済フラグ='no'
(10)select * from 顧客情報テーブル where 顧客ID=今買い物した人のID

こういう簡単なSQLへと上記のアクションをデータベースの言葉に書き返ることができます。本当はもっと厳密に記載しないと動かないのですが、今日のところはこんな感じの理解で問題ありません。
次回は、もう少し複雑なSQLを紹介します。----- EXTENDED BODY: