スタートページJavascriptMySQL
MySQLの概要文法の基本(1) →文法の基本(2) →文法の基本(3)文法の基本(4)

文法の基本(2)SELECT文 一般形式と射影・選択・結合


ここでの MySQL のプログラム作成・実行方法


SELECT文の一般形

# ======= 基本操作
SELECT 列名1,列名2,…          # (射影)どの列を?(* は全列指定)
    FROM 表名1,表名2,…       # どこから? 使用する表の列挙
    WHERE 条件1 AND 条件2,…   # (選択,結合)どのような条件で?
    # ===== 拡張処理(部分)
    GROUP BY 列名1,列名2,…    # 集計項目
    HAVING BY 条件1 AND 条件2.… # 集計結果による条件
    ORDER BY 列名1,列名2,…    # 結果のソート
;                                  # SELECT文の終了
記述上の注意
 SELECT文の最後には;をつける。各句の末尾には何もつけない。
 SELECT と FROM は必須。それ以外は省略できる。
  順序は原則として。この陣所にする。厳密ではない。
 改行は任意。全体を1行に書いてもよい。

列名の指定
 FROM で複数の表があり、同一列名が複数表に存在するとき、表名.列名 とする。

WHERE句の比較子
 =,>,<,>=,<=,<>(≠の意味)
 BETWEEN 最小値 AND 最大値 (最小値≦変数≦最大値 の意味)
 IN(値1, 値2, …)  (いずれかに一致)        (〇〇または××または△△)
  LIKE "*文字列*" (文字列が存在するか、*は前後に任意の文字があってよい)
  AND, OR

SQLの基本操作(射影、選択、結合)

射影 指定した列だけを取り出す

例:売上表から。伝票番号と数量だけを列とした表にする。

SELECT 伝票番号, 数量
  FROM 売上表;
伝票番号 数量
  1001     2
  1002     2
    :      :
  1011     2
  1012     3

選択 指定した条件に合致した行を取り出す。

例:売上表から「得意先コード=50」の行だけを取り出す。

SELECT *
  FROM 売上表
  WHERE 得意先コード = 50;
伝票番号  得意先  商品    数量
          コード  コード
  1003      50     200     3
  1004      50     100     1
  1006      50     100     3
  1010      50     200     3
  1012      50     200     3

結合 二つの表を共通する列でマッチングして新しい表にする。

例:売上表と得意先表を得意先コードで照合し、売上表に得意先名を付け加える。
  売上表と商品表を商品コードで照合し、売上表に品名を付け加える。

SELECT 伝票番号, 売上表.得意先コード, 得意先名, 売上表.商品コード, 商品名, 数量
  FROM 売上表, 得意先表,商品表
  WHERE 売上表.得意先コード = 得意先表.得意先コード
    AND 売上表.商品コード = 商品表.商品コード;
伝票番号  得意先  得意先名  商品    商品名    数量  後述
          コード            コード
  1001      60    得意先B   100    商品1      2
  1002      70    得意先C   100    商品1      2    X 得意先Cを削除した
  1003      50    得意先A   200    商品2      3    X 得意先コードを 55 にした 
  1004      50    得意先A   100    商品1      1    X 商品コードを 155 にした
  1005      60    得意先B   200    商品2      2
  1006      50    得意先A   100    商品1      3
  1007      60    得意先B   100    商品1      3
  1008      60    得意先B   100    商品1      2
  1009	    70	  得意先C   100    商品1      2    X 得意先Cを削除した
  1010      50    得意先A   200    商品2      3
  1011      70    得意先C   100    商品1      2    X 得意先Cを削除した
  1012      50	  得意先A   200    商品2      3

照合の規則

伝票番号  得意先  得意先名  商品    商品名    数量
          コード            コード
  1001      60    得意先B   100    商品1      2
  1005      60    得意先B   200    商品2      2
  1006      50    得意先A   100    商品1      3
  1007      60    得意先B   100    商品1      3
  1008      60    得意先B   100    商品1      2
  1010      50    得意先A   200    商品2      3
  1012      50	  得意先A   200    商品2      3