達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ 電子書籍(ミック)|翔泳社の本
  1. ホーム >
  2. 電子書籍 >
  3. 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ

達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ


形式:
電子書籍
発売日:
ISBN:
9784798157832
価格:
2,750(本体2,500円+税10%)
カテゴリ:
データベース
キーワード:
#データ・データベース,#ネットワーク・サーバ・セキュリティ,#システム運用,#開発環境
シリーズ:
CodeZine BOOKS
電子書籍

SQLを扱うエンジニア必携のロングセラー、10年ぶりの改訂!
――SQLの正しい書き方・考え方が学べる本

開発者のためのWebマガジン「CodeZine」の人気連載を大幅加筆・修正して2008年に刊行、好評を博した『達人に学ぶSQL徹底指南書』の改訂・第2版です。

第2版では、初版構成を生かしつつ、SQLの強力な機能ウインドウ関数を全面的に採用して多くのコードをリバイスしました。全体的な解説の見直しや最新化も行ない、CASE式、ウィンドウ関数、外部結合、HAVING句、EXISTS述語など、SQLを扱うエンジニアに必要な「正しい書き方・考え方」「ビッグデータ時代に対応したモダンなSQL機能を駆使した書き方」を徹底解説しています。

標準SQL準拠のため、Oracle/SQL Server/DB2/PostgreSQL/MySQL等々の幅広いデータベースに対応しているほか、実際の開発現場でも活かしやすい実践的なコーディング事例も多数紹介しています。
チューニングテクニックやリレーショナルデータベースの歴史なども網羅。
SQLの原理となっている仕組みや、この言語を作った人々が何を考えて現在のような形にしたのか、というバックグラウンドも掘り起こして伝えます。

・脱初級や、より高みを目指したいDBエンジニア、プログラマ
・「SQLとは何なのか」を知りたいと思っている人
におすすめの一冊です。

第1部 魔法のSQL
 1 CASE式のススメ
 2 必ずわかるウィンドウ関数
 Column なぜONではなくOVERなのか?
 3 自己結合の使い方
 Column SQL とフォン・ノイマン
 4 3値論理とNULL
 Column 文字列とNULL
 5 EXISTS述語の使い方
 6 HAVING句の力
 Column 関係除算
 Column HAVING 句とウィンドウ関数
 7 ウィンドウ関数で行間比較を行なう
 8 外部結合の使い方
 9 SQLで集合演算
 10 SQLで数列を扱う
 11 SQLを速くするぞ
 12 SQLプログラミング作法

第2部 リレーショナルデータベースの世界
 13 RDB近現代史
 14 なぜ“関係”モデルという名前なの?
 15 関係に始まり関係に終わる
 16 アドレス、この巨大な怪物
 17 順序をめぐる冒険
 18 GROUP BYとPARTITION BY
 19 手続き型から宣言型・集合指向へ頭を切り替える7箇条
 20 神のいない論理
 21 SQLと再帰集合
 22 NULL撲滅委員会
 23 SQLにおける存在の階層

第3部 付録
 A 演習問題の解答
 B 参考文献

付属データはこちら

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

  • 付属データを更新しました

    付属データ(サンプルコード)にテーブル作成のSQLを追加しました。
    再度ダウンロードしてご利用ください。
    ※2018年12月17日
この商品の「よくある質問」はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2024年10月07日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 013
「条件を分岐させたUPDATE」1つ目の表のキャプション
8刷
Salaries
Personnel
2024.10.07
1刷 097
上から3つ目のコード 1行目
8刷
step_status = CASE WHEN step_nbr <= 1
status = CASE WHEN step_nbr <= 1

「step_」を削除します。
2024.10.07
1刷 098
「列に対する量化——オール1の行を探せ」の表
8刷

(画像クリックで拡大)

(画像クリックで拡大)
2024.10.07
1刷 107
図6.1
4刷
集合A:MAX(sql)=
集合A:MAX(seq)=
2020.02.21
1刷 115
図6.3
4刷
S0:Graduates
S0:Students

楕円形の上のテキストを修正しました。
2020.11.16
1刷 347
「演習問題10-②」の2つ目のコード
6刷
-- 行に折り返しがある場合
SELECT S1.seat AS start_seat, ' ~ ' , S2.seat AS end_seat
  FROM Seats2 S1, Seats2 S2, Seats2 S3
 WHERE S2.seat = S1.seat + (:head_cnt -1)
   AND S3.seat BETWEEN S1.seat AND S2.seat
 GROUP BY S1.seat, S2.seat
HAVING COUNT(*) = SUM(CASE WHEN S3.status = '空'
                 AND S3.row_id = S1.row_id
                 THEN 1 ELSE 0 END);
-- 行に折り返しがある場合
SELECT S1.seat AS start_seat, ' ~ ' , S2.seat AS end_seat
  FROM Seats2 S1, Seats2 S2, Seats2 S3
 WHERE S2.seat = S1.seat + (:head_cnt -1)
   AND S3.seat BETWEEN S1.seat AND S2.seat
 GROUP BY S1.seat, S2.seat
HAVING COUNT(*) = SUM(CASE WHEN S3.status = '空'
                 AND S3.line_id = S1.line_id
                 THEN 1 ELSE 0 END);

下から2行目の「AND S3.row_id = S1.row_id」を「AND S3.line_id = S1.line_id」に修正します。

※リフローEPUBの場合、第3部の「A 演習問題の解答」の「演習問題10-② シーケンスを求める――集合指向的発想」の2つ目のコードが該当箇所になります。
2022.07.08

感想・レビュー

樋口佳之 さん

2020-03-15

初版も読んでいて、技術書にはあまりない事だけどずっと蔵書しているのに、2版も読んでしまった。後書きによれば著者最後のsql本になるのかも。数学力がもっとあればなあと感じたとのと、やっぱりwindow関数避けていてはダメだなあということ。

EGO-- さん

2019-04-19

読んだ目的は、SQLをよりうまく利用していくために、SQLではどんなことができるのかの幅を知ろうと思っていた。 内容は、求めていたSQLの幅を知るというよりはSQL一つ一つの使い道や特徴などであり、幅広くというよりは深い内容だった。また、SQLの歴史に関しても述べられていた。SQLの歴史を知ることで、SQLの現在の形になった理由、不要な機能の付いている理由、使うべきでない機能などを背景から知ることができた。 今回は軽く流し読みのような形になってしまったため、DBにもう少し慣れた後に再度読み返したい本。

YK さん

2020-01-30

終始CASE文の便利さが語られていました。 INやEXISTなど基本的な構文の復習ができ、集合論にも少し触れられていました。 何度も読み直したいバイブルです