logo
     

メニュー
↓ SQL ↓
●データ取得の基本(SELECT)

●取得条件の指定(WHERE)

●計算式を利用する

●取得データの並べ替え
      (ORDER BY)


●別名を付ける

●データを集計(グループ化)する

●テーブルの結合
      (INNER JOIN)


●テーブルの結合
      (OUTER JOIN)


●テーブルの結合
      (CROSS JOIN)


●重複行の排除(DISTINCT)

●副問い合わせ(サブクエリ)

●相関副問い合わせ
      (相関サブクエリ)


⇒クエリの結合

●文字列値を連結する

●文字列の一部を取り出す

●文字列を置換する

●NULLを置き換える

●条件によって置き換える

↓SQL Server 2012 Express↓
●SQL Server 2012 Express
      インストール


●SQL Server 2012 Express
      ネットワークの構成


●SQL Server 2012 Express
      ログインユーザの作成


●SQL Server 2012 Express
      データベースの作成


●SQL Server 2012 Express
      テーブルの作成


●SQL Server 2012 Express
      SQLの実行


●復旧モデルとバックアップ

↓ 番外編 ↓
●Windows Server 2012 評価版
      インストール


●Windows Server 2012
      スタートメニュー利用方法


●Windows Server 2012
      シャットダウン・再起動方法


●Windows Server 2012
      サーバーマネージャ自動起動無効


●Windows Server 2012
      コンピュータ名・ドメイン変更


クエリの結合



2つのクエリの出力を比較し、和・積・差の3種類で結合することができます。
 和結合:UNION, UNION ALL
 積結合:INTERSECT
 差結合:EXCEPT(OracleではMINUS)

文法:SELECT * | <列名1>, <列名2>…
   FROM <テーブル名>
   <WHERE 条件式>…
   [UNION | UNION ALL | INTERSECT | EXCEPT | MINUS]
   SELECT * | <列名1>, <列名2>…
   FROM <テーブル名>
   <WHERE 条件式>…
※1つ目のクエリと2つ目のクエリでは、
 抽出される列数とデータ型が一致している必要があります


***例(UNION)***
UNIONは和結合であり、ALLを指定しない場合は、
取得したデータの和(いずれかのクエリで抽出されたもの)から
重複するデータを排除してデータを取得します。
例では、1月1日と1月2日のいずれかに売り上げのあった商品の一覧を出力します。

[売上表]
売上日 商品名 売上数量 売上金額
2013/01/01 りんご 3 300
2013/01/01 みかん 8 960
2013/01/01 ぶどう 10 500
2013/01/02 りんご 5 500
2013/01/02 みかん 2 240
2013/01/02 バナナ 1 200

[実行SQL]
SELECT 商品名 FROM 売上表 WHERE 売上日 = '2013/01/01'
UNION
SELECT 商品名 FROM 売上表 WHERE 売上日 = '2013/01/02'

[結果]
商品名
りんご
みかん
ぶどう
バナナ


***例(UNION ALL)***
UNIONは和結合であり、ALLを指定した場合は、
取得したデータの和(いずれかのクエリで抽出されたもの)から
重複するデータを含み取得します。
例では、1月1日と1月2日のいずれかに売り上げのあった商品の一覧を出力します。

[売上表]
売上日 商品名 売上数量 売上金額
2013/01/01 りんご 3 300
2013/01/01 みかん 8 960
2013/01/01 ぶどう 10 500
2013/01/02 りんご 5 500
2013/01/02 みかん 2 240
2013/01/02 バナナ 1 200

[実行SQL]
SELECT 商品名 FROM 売上表 WHERE 売上日 = '2013/01/01'
UNION ALL
SELECT 商品名 FROM 売上表 WHERE 売上日 = '2013/01/02'

[結果]
商品名
りんご
みかん
ぶどう
りんご
みかん
バナナ


***例(INTERSECT)***
INTERSECTは積結合であり、
取得したデータの積(両方のクエリで抽出されたもの)を取得します。
例では、1月1日と1月2日の両方に売り上げのあった商品の一覧を出力します。

[売上表]
売上日 商品名 売上数量 売上金額
2013/01/01 りんご 3 300
2013/01/01 みかん 8 960
2013/01/01 ぶどう 10 500
2013/01/02 りんご 5 500
2013/01/02 みかん 2 240
2013/01/02 バナナ 1 200

[実行SQL]
SELECT 商品名 FROM 売上表 WHERE 売上日 = '2013/01/01'
INTERSECT
SELECT 商品名 FROM 売上表 WHERE 売上日 = '2013/01/02'

[結果]
商品名
りんご
みかん


***例(EXCEPT | MINUS)***
EXCEPT(Oracle では MINUS)は差結合であり、
取得したデータの差(1つ目のクエリで取得されたものから
2つ目のクエリで取得されたものを除いたもの)を取得します。
例では、1月1日に売り上げがあり、1月2日に売り上げのなかった商品の
一覧を出力します。

[売上表]
売上日 商品名 売上数量 売上金額
2013/01/01 りんご 3 300
2013/01/01 みかん 8 960
2013/01/01 ぶどう 10 500
2013/01/02 りんご 5 500
2013/01/02 みかん 2 240
2013/01/02 バナナ 1 200

[実行SQL]
--SQL Server, PostgreSQLの場合
SELECT 商品名 FROM 売上表 WHERE 売上日 = '2013/01/01'
EXCEPT
SELECT 商品名 FROM 売上表 WHERE 売上日 = '2013/01/02'

--Oracleの場合
SELECT 商品名 FROM 売上表 WHERE 売上日 = '2013/01/01'
MINUS
SELECT 商品名 FROM 売上表 WHERE 売上日 = '2013/01/02'

[結果]
商品名
ぶどう

<<PR>> ネットワークセキュリティを見直しませんか
価格:300円
現役SEが語るSEの仕事あれこれ-これから就職を希望する人へ-
価格:300円