書籍概要

WEB+DB PRESS plus

改訂第3版 すらすらと手が動くようになる SQL書き方ドリル

著者
発売日
更新日

概要

多くのユーザに愛されてきた「[元祖]SQL書き方ドリル」の最新改訂版が登場! 暗記に頼らない考える力を鍛えるSQLの「書き順解説」,手で書いて身体で覚える「書き込み式ドリル」,何度も打ち込み身体に染み込ませる「反復練習アプリSQUAT」という3つのメソドロジーで,RDBMSを前にしたときに自然と「すらすらと手が動くようになる」力を養う本書が,PostgreSQL,MySQL,Oracle,SQL Server最新版と Amazon Aurora,Google Cloud SQL,Amazon RDSなどのクラウド版にも対応しました。本書でSQLを確固たる武器にしましょう。

こんな方におすすめ

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

本書に関するお知らせ

本書に関連する記事を公開しております。

目次

準備編
第1章すらすらと手が動くようになるための学習の進め方

  • この本は何なのか?
  • どんなふうに活用すればいいの?
  • しっかり習得してもらうために
  • もろもろの補足など
  • いろいろ入った付属CD-ROM
  • さあ,はじめよう!

練習編
第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) 部門別の平均給与額を教えてくれ
  • コラム 名前付きSELECT文としてのビュー
  • その4 外部結合を使う 全部の商品の平均販売単価を教えてくれ
  • その5 自己結合を使う セット商品の候補を考えてくれ
  • その6 相関副問い合わせを使う 商品別の平均販売数量よりも多く売れている日を教えてくれ
  • 特別講義(3) 集合演算とは ここから先に進む前に!
  • その7 UNION ALLを使う 顧客と社員の名前一覧を出してくれ
  • その8 UNIONを使う 重複のない顧客・社員の名前一覧にしてくれ
  • その9 INTERSECTを使う 給料日に販売をした社員の一覧を出してくれ
  • その10 EXCEPTを使う 販売をしたことがない社員の一覧を出してくれ

第4章追加・更新・削除

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

実践編
第5章応用問題

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

付属CD-ROM

CD-ROM収録コンテンツ(PDF)

ガイド編 学習用データベースの構成とSQUATの導入方法・使い方
  • 学習用データベースについて
  • 付属CD-ROMについて
  • 素振りソフトウェアSQUAT活用ガイド
解答編 第2章〜第4章「練習問題」,第5章「応用問題」の解答

ソフトウェア

  • 反復学習用ソフトウェアSQUAT
  • Java Runtime Environment(JRE)8

HTML

  • SQL書き方ドリルリファレンス

SQLスクリプト

  • サンプルテーブル作成用SQLスクリプト
  • 解答SQLスクリプト

サポート

正誤表

付属CD-ROM収録のHTMLリファレンス

(2016年4月11日更新)

付属CD-ROMに収録のHTMLリファレンスで,各RDBMSの「サンプルデータ」→「サンプルテーブルの生成方法」下のリンク「テーブル作成用SQL(PostgreSQL用/MySQL用/Oracle用/SQL Server用)」,「初期データ挿入用SQL」のリンク先が間違っていました。

実際にはCD-ROM内の「HTML_REFERENCEフォルダ」→「sqlフォルダ」→「for_sample_dbフォルダ」に収録されています。

正しい内容の「index.html」は下記になります。

ダウンロード

電子版用ダウンロード

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

商品一覧