書籍概要

WEB+DB PRESS plus

改訂新版 反復学習ソフト付き SQL書き方ドリル

著者
発売日
更新日

概要

データベースが理解しやすい(パフォーマンスの良い)SQLを書くためには,SQLの「書き順」マスターが重要です。本書でSQLが実行されるしくみとそれに合わせた書き順を理解し,「書き込み式ドリル」とCD-ROM収録の「SQUAT」でとことん反復学習,身体で覚えてください。

こんな方におすすめ

  • これからSQLを学習したい方
  • 思いどおりのSQLが書けないという方
  • SQLのパフォーマンスに自信がないという方

目次

●準備編

第1章 学習の進め方とデータベースの準備

  • 学習の進め方
  • SQLの書き順
  • 本書における注意点
  • SQLを書くためのツール
  • 学習用データベースについて
  • 付属CD-ROMについて
  • 素振りソフトウェアSQUAT活用ガイド
    • SQUATとは
    • SQUATのインストール
    • SQUATの操作方法

●練習編

第2章 ひとつのテーブルを扱う

  • その1 データを取り出す
    • 顧客一覧を出してくれ
  • その2 複数の列を指定する
    • 商品ごとの単価を出してくれ
  • その3 列に別名をつける
    • 項目の名前がわからない
  • その4 列の値に対して演算を行う
    • 税込価格で一覧を出してくれ
  • その5 列同士で演算を行う
    • 社員の健康状態を一覧で出してくれ
  • その6 文字列の連結を行う
    • 名札を作ってくれ
  • その7 集合関数を使う
    • 平均を教えてくれ
  • その8 ある条件でレコードを絞り込む(1)
    • 身長が大きな人を教えてくれ
  • その9 ある条件でレコードを絞り込む(2)
    • 「〜子」という名前の人数を教えてくれ
  • その10 列の値に条件を設定する
    • 単価別にランク付けしてみてくれ
  • その11 グループ単位で集計する
    • 都道府県別の顧客数を教えてくれ
  • その12 グループ単位で集計した結果を絞り込む(1)
    • 顧客数が3人以上の都道府県を教えてくれ
  • その13 グループ単位で集計した結果を絞り込む(2)
    • 法人客の数が2人以上の都道府県を教えてくれ
  • その14 クロス集計を行う
    • 社員の血液型別の人数ってどうなってるんだろう
  • その15 並び替えを行う
    • 単価の安い順に商品名を出してくれ
  • その16 重複を排除する
    • 住所一覧を出してくれ

第3章 複数のテーブルを扱う

  • 特別講義(1) 結合とは
    • ここから先に進む前に
  • その1 副問い合わせを使う
    • 販売数量がゼロの商品を教えてくれ
  • 特別講義(2) テーブルに別名をつける
    • ここから先に進む前に
  • その2 複数テーブルの結合を行う(1)
    • 再び都道府県別の顧客数を教えてくれ
  • その3 複数テーブルの結合を行う(2)
    • 部門別の平均給与額を教えてくれ
  • その4 外部結合を使う
    • 全部の商品の平均販売単価を教えてくれ
  • その5 自己結合を使う
    • セット商品の候補を考えてくれ
  • その6 相関副問い合わせを使う
    • 商品別の平均販売数量よりも多く売れている日を教えてくれ
  • 特別講義(3) 集合演算とは
    • ここから先に進む前に
  • その7 UNION ALLを使う
    • 顧客と社員の名前一覧を出してくれ
  • その8 UNIONを使う
    • 重複のない顧客・社員の名前一覧にしてくれ
  • その9 INTERSECTを使う
    • 給料日に販売をした社員の一覧を出してくれ
  • その10 EXCEPTを使う
    • 販売をしたことがない社員の一覧を出してくれ

第4章 追加・更新・削除

  • その1 レコードを1件追加する
    • 新商品を追加しておいてくれ
  • その2 副問い合わせを使って追加する
    • 今までの売上を元に特別ボーナスを出そう
  • その3 レコードを更新する
    • 商品価格を変更しておいてくれ
  • その4 特定のレコードを更新する
    • 顧客の住所を変更しておいてくれ
  • その5 更新条件に副問い合わせを使う
    • 販売個数の多いものの単価を少しアップしよう
  • その6 他のテーブルの値を使って更新する
    • 特別ボーナスにさらに勤続年数の分だけ上乗せしよう
  • その7 レコードを削除する
    • 給与データを消去しておいてくれ
  • その8 特定のレコードを削除する
    • 退職した人のデータを削除しておいてくれ
  • その9 削除条件に副問い合わせを使う
    • 販売数量がゼロの商品を削除してくれ

●実践編

第5章 応用問題

  • その1 SQLをSELECT文で作成する
  • その2 月別販売額一覧の作成
  • その3 社員別・月別販売額一覧の作成
  • その4 商品別・月別販売額一覧の作成
  • その5 顧客別・商品別販売一覧の作成
  • その6 都道府県別・商品別販売一覧の作成
  • その7 部門別・月別平均給与一覧の作成
  • その8 月別・カテゴリ別販売一覧の作成
  • その9 商品別3ヶ月販売推移表の作成
  • その10 顧客コードの再編

コラム

  • *って何?
  • 名前付きSELECT文としてのビュー
  • NULLのお話
  • さらなるステップアップに向けて

解答編 第2章〜第4章 練習問題,第5章 応用問題の解答

付属CD-ROM

  • ソフトウェア
    • 反復学習用ソフトウェアSQUAT(Windows版)
    • Java Runtime Environment(JRE)6
  • HTML
    • SQL書き方ドリルリファレンス
    • 〜データベース(RDBMS)固有のSQL表記〜
  • SQLスクリプト
    • サンプルテーブル作成用SQLスクリプト
    • 〜PostgreSQL/MySQL/Oracle/SQL Server/DB2の各RDBMS用〜

サポート

正誤表

書籍の内容に誤りのあったことを,本書をお買いあげいただいた読者の皆様および関係者の方々におわびいたします。

(2014年6月9日更新)
SQUAT 第2章 その6

練習問題 第3問

EMailの後に「E-MAIL:」を連結して
EMailのに「E-MAIL:」を連結して

P.73 第2章 その9

練習問題 第4問

~身長が160以下のEmployeeName,Heightを取り出しなさい。
~身長が160以下のEmployeeNameを取り出しなさい。

P.109 第2章 その14

練習問題 第1問

次の4つに区分けして,それぞれの人数を表示しなさい。「160cm以下:Heightが160以下」「170cm以下:Heightが161から170まで」「180cm以下:Heightが171から180まで」「181cm以上:Heightが181以上」
次の4つの範囲に分けてそれぞれの人数を表示しなさい。「160cm以下:Heightが160以下」「170cm以下:Heightが170以下」「180cm以下:Heightが180以下」「180cm超:Heightが180より大きい

P.110 第2章 その14

練習問題 第2問

次の4つに区分けして,それぞれの商品数を表示しなさい。「100円未満:Priceが100未満」「400円未満:Priceが100から399まで」「1000円未満:Priceが400から999まで」「1000円以上:Priceが1000以上」
次の4つの範囲に分けてそれぞれの商品数を表示しなさい。「100円未満:Priceが100未満」「400円未満:Priceが400未満」「1000円未満:Priceが1000未満」「1000円以上:Priceが1000以上」

P.114 第2章 その14

練習問題 第2問

次の4つに区分けして,それぞれの人数を表示しなさい。「50kg以下:Weightが50以下」「51~60kg:Weightが51から60まで」「61~80kg:Weightが61から80まで」「80kg超:Weightが80より大きい」
次の4つの範囲に分けてそれぞれの人数を表示しなさい。「50kg以下:Weightが50以下」「60kg以下:Weightが60以下」「80kg以下:Weightが80以下」「80kg超:Weightが80より大きい」

※第2章その14の練習問題第1問,第2問,第5問は,出題の意図からするとそれぞれ,問題文,解答を「○○より大きく○○以下」「○○以上○○未満」などの形に修正させていただきたいものですが,SQUATの修正も必要になるため,ここでは上記のように問題文を修正するものです。

第4刷での修正

P.166 第3章 その4

練習問題 第2問 SQL文3行目

MAX  四角の箱  AS社員名
, MAX  四角の箱  AS社員名

P.200〜201 第3章 その9

<考え方と書き順 (6)の11行目,(7)の13行目,(8)の14行目

水を使わずに、石油や塩素を原料にした有機溶剤
水を使わずに、石油などを原料にした有機溶剤

P.221 第4章 その1

練習問題 第3問 SaleDateの日付

2007-09-10
2007-09-01

P.313 解答編 第4章 その5 第2問

8行目

EmployeeID NOT IN
EmployeeID IN

第6刷での修正

  • 第2章,第3章の下記の練習問題で,問題文に別名を付したPDFを掲載します。
  • 第2章
    その4 練習問題(第1問〜第5問),その5練習問題(第4〜第5問),その10 練習問題(第4問〜第5問),その11 練習問題(第4問〜第5問),その12 練習問題(第4問〜第5問),その13 練習問題(第4問〜第5問),その14 練習問題(第5問),その15 練習問題(第4問〜第5問)
  • 第3章
    その1 練習問題(第4問),その4 練習問題(第5問),その5 練習問題(第4問)
  • 第5章
    想定する実行結果を掲載した問題文のPDFを掲載します。

ダウンロード用PDF

Windows 7,8での使用について

Windows 7,Windows 8でも最新版のJRE(2014年6月5日時点ではjre-7u60-windows-x64(64ビット),jre-7u60-windows-i586(32ビット))をインストールすることで,SQUATを利用することができます。

本書付録CD-ROM収録のSQUATで使用しているexercise.xml最新版の公開

本書付録CD-ROMに収録している学習ソフトSQUATで使用しているexercise.xmlの最新版(exercise.zip)を公開します。第5刷以前をお持ちの場合は,本サイトからダウンロードのうえ,\squat-1.0.1\data\drill内にあるexercise.xmlと差替えてご使用ください。

ダウンロード用XML

  • XMLファイル(exercise.xml)の公開について
    2012年4月発行の第6刷以降で本書に関するレビューでご指摘の点については対応済となっております。現在は,第8刷が流通しており,第6刷以前のものは基本的に処分してあります。ご指摘くださった方には感謝申し上げますとともに,対応が遅くなったことを心よりお詫び申し上げます。
    今後とも何卒よろしくお願いいたします。

ダウンロード

電子版用ダウンロード

電子版用に,付録CD-ROM収録コンテンツを以下から入手できます。ダウンロードには電子版本紙に掲載されているIDとパスワードが必要です。

商品一覧