SQLことはじめ
SQLを書いていく前に、テーブルや行、列などについてざっと確認しておきましょう。
目次
1. はじめに
SQLは、リレーショナルデータベースを操作するための言語です。
1-1. リレーショナルデータベース
リレーショナルデータベースとは、現在最も普及しているデータベースの一つで、簡単に言うと行と列からなる2次元表にデータを保存、管理するデータベースです。
2次元というと難しく聞こえるかもしれませんが、下のような表をイメージしてください。
1-2. テーブル
上の表(のようなもの)は、リレーショナルデータベース(以下データベース)の世界では「テーブル」といいます。
テーブルには行と列があります。
行を選択するとか、列を指定するなどの言葉を使いますので、行と列を確認しておきましょう。
行はテーブルの横方向、列はテーブルの縦方向をのことを指します。
ひとつのデータベースには、ふつう複数のテーブルが存在しています。
例えば、ショッピングサイトなど使用されるデーターベースでは、
商品カテゴリ
商品テーブル
売上テーブル
売上明細テーブル
・
・
・
などのテーブル群でデータベースが構成されています。
さらに、これらのテーブルはそれぞれ別のテーブルと関連し合っているのが普通です。
1-3. リレーションシップ
テーブルとテーブルとの関連を「リレーションシップ」といいます。
例えば、「Aさんがメロンを買った」という情報を得るには4つのテーブルが絡んできます。
メロンの情報は、商品テーブル
買ったという情報は、売上テーブルと売上明細テーブル
テーブル同士のリレーションシップが無ければ、「Aさんがメロンを買った」という情報を取得(保存も)することはできません。
また、リレーションシップの情報を知らなければ、SQLを使って目的の情報を取得することもままなりません。
互いのテーブルが関連し合って情報を保持するデータベースということで、「リレーショナルデータベース」というわけです。
テーブル同士のリレーションシップを表現するにはER図がよく使われます。
ER図の読み方などについては、のちほど。
1-4. SQL
これらのテーブルには、下のように様々なデータ操作が考えられれます。
はじめてのお客さんが買い物をするときには、会員テーブルにお客さんのデータを登録する必要があるでしょう。
お客さんの住所が変更になった場合は、会員テーブルの住所欄の更新が必要です。
会員が退会した際には、会員テーブルからその会員を削除する必要があるかもしれません。
商品を検索する際には、商品テーブルの検索が必要です。
商品を購入した際には、売上テーブルと売上明細テーブルの登録。
新商品の販売には、商品テーブルに新商品の登録が必要になるでしょう。
・
・
・
このようにデータベース(各テーブルなど)に対して、データを操作する必要がある際に使われるのがSQLです。
SQLは、目的に応じて次の3つに分類されます。
DML(データ操作言語)
DCL(データ制御言語)
このサイトでいうSQLは、上の内、DML(データ操作言語)を指します。
DMLは、データ操作言語という名前の通り、テーブルに保存されているデータの検索や更新などに使われます。
DMLの種類は次のとおりです。
INSERT テーブルにデータを登録する
UPDATE テーブルのデータを更新する
DELETE テーブルのデータを削除する
ここでは、DMLの中でもプログラマが最も頻繁に使うであろうSELECT(データの検索)の使い方について重点的に見ていきます。
2. SQL練習用テーブルについて
このサイトでは、青果店の売り上げを管理する5つの簡単なテーブルを用意してあります。
この青果店は、会員のみにネット販売をしているという想定です。
2-1. 練習用テーブル
テーブル名 | 用途 |
---|---|
Kaiin | 会員 |
Category | 商品カテゴリ |
Shouhin | 商品 |
Uriage | 売上 |
Uriage_meisai | 売上明細 |
テーブル名は、最初のアルファベットが大文字にしてあるので注意してください。
2-2. ER図
各テーブルのリレーションシップは以下のようになっています。(とりあえず、こんなものかと読み飛ばしてください)
3. 砂場SQLの実行
まずは、砂場SQLの動作を確認するために、下のSQLを打って実行してみてください。
SELECT * FROM Category;
「野菜、果物、その他」といった内容の表が表示されていればOKです。
打ち込んだSQLに間違いなどがあると、赤くエラーと表示されます。
その際には、もう一度SQLを見直して打ち直してください。
ちなみに、SQLの命令そのもの(selectとかfromなど)は大文字小文字どちらで打っても構いません。
また、SQLに改行やTab、半角スペースなどを打っても大丈夫です。
以下の打ち方はOKです。
select * from Category;
SELECT
*
FROM
Category;
4. まとめ
リレーショナルデータベースは、行と列からなる2次元表にデータを保存管理するデータベースです。
この表は「テーブル」といいます。
行はテーブルの横方向のことです。
列はテーブルの縦方向のことです。
テーブルはふつう、複数存在します。
各テーブルにはふつう、リレーションシップ(互いの関連)があります。
データベース(各テーブルなど)に対して、データを操作する必要がある際に使われるのがSQLです。
SQLは目的に応じて、DDL(データ定義言語)、DML(テータ操作言語)、DCL(データ制御言語)の3つに分かれます。
このサイトでは、砂場SQLを使ってDMLの中でも最も頻繁に使われるSELECT(データ取得)について見ていきます。
次は、「テーブルについて」です。