達人に学ぶSQL徹底指南書(ミック)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. 達人に学ぶSQL徹底指南書

達人に学ぶSQL徹底指南書


形式:
書籍
発売日:
ISBN:
9784798115160
定価:
2,640(本体2,400円+税10%)
仕様:
A5・320ページ
キーワード:
#データ・データベース,#ネットワーク・サーバ・セキュリティ,#システム運用,#開発環境
紙の書籍
本書籍には新版があります
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ

プロのDBエンジニア必携!SQLの正しい書き方/考え方

本書は、開発者向けWebサイト「CodeZine」(コードジン、http://codezine.jp)で、2006年6月から続いている連載を加筆し、再編集したものです。標準SQL準拠のため、Oracle/SQL Server/DB2/PostgreSQL/MySQL等々の幅広いデータベースに対応している他、実際の開発現場でも活かしやすい実践的なコーディング事例も多数紹介。チューニング・テクニックやリレーショナル・データベースの歴史なども網羅しており、脱初級や、より高みを目指したいDBエンジニアに必携の一冊となっています。

第1部 魔法のSQL

1-1 CASE式のススメ
 ~SQLで条件分岐を表現する
 演習問題
1-2 自己結合の使い方
 ~集合指向言語としてのSQL
 演習問題
1-3 3値論理とNULL
 ~SQLの甘い罠
1-4 HAVING句の力
 ~意外な名脇役
 演習問題
1-5 外部結合の使い方
 ~SQLの弱点:その傾向と対策
 演習問題
1-6 相関サブクエリで行と行を比較する
 ~SQLで行間比較
 演習問題
1-7 SQLで集合演算
 ~SQLと集合論
 演習問題
1-8 EXISTS述語の使い方
 ~SQLの中の述語論理
 演習問題
1-9 SQLで数列を扱う
 ~述語論理を使いこなそう
 演習問題
1-10 帰ってきたHAVING句
 ~もう脇役とは言わせない!
 演習問題
1-11 SQLを速くするぞ
 ~お手軽パフォーマンス・チューニング
1-12 SQLプログラミング作法
 ~SQLコーディング・スタイルの確立に向けて

第2部 リレーショナル・データベースの世界

2-1 リレーショナル・データベースの歴史
 ~1969年―全てはここから始まった
2-2 なぜ“関係”モデルという名前なの?
 ~なぜ“表”モデルという名前ではないのか
2-3 関係に始まり関係に終わる
 ~閉じた世界の幸せについて
2-4 アドレス、この巨大な怪物
 ~なぜリレーショナル・データベースにはポインタがないのか?
2-5 GROUP BYとPARTITION BY
 ~類は友を呼ぶ
2-6 手続き型から宣言型・集合指向へ頭を切り替える7箇条
 ~円を描く
2-7 SQLと再帰集合
 ~SQLと集合論の間
2-8 神のいない論理
 ~論理学の歴史をちょっとだけ
2-9 NULL撲滅委員会
 ~万国のDBエンジニア、団結せよ!
2-10 SQLにおける存在の階層
 ~厳しき格差社会

第3部 付録

3-1 演習問題の解答
3-2 参考文献

本書は付属データの提供はございません。

お問い合わせ

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

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

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

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

追加情報はありません。
この商品の「よくある質問」はありません。

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

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

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

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

書籍の種類:

書籍の刷数:

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

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

最終更新日:2018年04月09日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 006
「本書を読むにあたっての注意事項」の追加項目
4刷
・本文中に掲載されていないテーブル定義文やサンプルデータ、解答例の別解などについては、筆者のサポートページを併せて参照してください。 http://www.geocities.jp/mickindex/database/db_support_sinan.html
2009.10.26
1刷 013
下から1~2行目
3刷
次に示す表3の内容を集計し、表4の結果を求めるような場合です。
次に示すの内容を集計し、次頁の表の結果を求めるような場合です。
2009.02.04
1刷 018
1段落目の4行目
4刷
実は4000円の昇給だった
実は2万4000円の昇給だった
2009.10.26
1刷 031
2つ目のコード部分(結果)
3刷
name_1 name_2 ------ ------ りんご みかん りんご バナナ みかん バナナ
name_1 name_2 ------ ------ りんご みかん バナナ みかん バナナ りんご
2008.10.30
1刷 031
3段落目の2行目
3刷
名前順にソートして自分より後ろに来る」
文字コードの順にソートして自分より(ここでは)前に来る」
2008.10.30
1刷 037
中ほどの本文 3行目
5刷
現状では実装に依存し、PostgreSQLやMySQL
現状では実装に依存し、MySQL
2010.08.03
1刷 037
下部のSQL文と結果
―――――――― -- ランキング 1位から始まる。同順位が続いた後は不連続 SELECT P1.name, P1.price, (SELECT COUNT(P2.price) FROM Products P2 WHERE P2.price > P1.price) + 1 AS rank_1 FROM Products P1; ―――――――― ■結果 ―――――――― name price rank ----- ------ ------  :  :
―――――――― -- ランキング 1位から始まる。同順位が続いた後は不連続 SELECT P1.name, P1.price, (SELECT COUNT(P2.price) FROM Products P2 WHERE P2.price > P1.price) + 1 AS rank_1 FROM Products P1 ORDER BY rank_1; ―――――――― ■結果 ―――――――― name price rank_1 ----- ------ ------  :  :
2018.04.09
1刷 057
下から4行目
NOT EXSITS
NOT EXISTS
2017.12.18
1刷 107
一番下のコードブロックの、上から5行目
3刷
WHEN S1.sale < s2.sale THEN ''
WHEN S1.sale < s2.sale THEN ''
2009.02.04
1刷 112
本文最終行
5刷
ROWSキーワードで行数を指定します。
ROWSーワードで行数を指定します(ただし、PostgreSQLではROWSキーワードは使えません)
2010.08.03
1刷 128
1つ目のリスト囲み、1行目
8刷
SELECT DISTINCT CASE WHEN COUNT(*) = 0
SELECT CASE WHEN COUNT(*) = 0

※DISTINCTはなくても結果が変わりません。
2012.06.26
1刷 128
ページ中ほど
8刷
集合演算3回+DISTINCT1回の計4回のソートが発生する
集合演算3回のソートが発生する

※リストの変更に合わせて修正
2012.09.06
1刷 169
ページ下部のSQL文中のコメント
7刷
--条件2の否定 --条件3の否定
--条件3の否定 --条件2の否定

SQL文のコメント「--条件2の否定」と「--条件3の否定」を逆にする。
2012.03.05
1刷 188
下から10行目
男子の平均は(100 + 30) / 2 = 65、女子の平均は(100 + 49) / 2 = 74.5ですから、
男子の平均は(100 + 0 + 0 + 30) / 4 = 32.5、女子の平均は(0 + 100 + 49 + 0) / 4 = 37.25ですから、
2018.01.31
1刷 207
「IN 述語で複数のキーを利用する場合は、一箇所にまとめる」5行目
d列が主キーです。
id列が主キーです。
2017.08.24
1刷 316
項目「COALESCE関数」の参照ページ
4刷
220
95, 220
2009.10.26
1刷 奥付
著者紹介 1行目
3刷
金融系SI企業に勤務する
SI企業に勤務する
2009.06.26

感想・レビュー

yuhgle さん

2018-11-29

case式、havingがどれだけ便利か、3値論理(真、偽、unknown)が採用された経緯、使う側がアドレスを意識しなくていいようにする話など、結構勉強になりました。3値論理は人間の論理。caseは項目を定義するところならどこでも書ける。ワークフローで使うような箱と線ではなく円を書こう。

EGO-- さん

2019-04-19

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

しんすけ さん

2015-01-03

先日、遠山啓の『無限と連続』を再読したが、本書にも『無限と連続』が紹介されている。SQLの底辺が集合で構成されていることを強調してきたミックだからこそと云う感がある。本書自体は「手強い本だが面白い本」と云える。プログラマ1年生にとっては必要性すら不明な内容だろう。が、現場で毎日SQLと格闘している者には、身に積まされながらも苦笑すら生じる内容が満載されている。SQLのバイブル「プログラマのためのSQL」の副読本として、身近に置いておきたい本のひとつである。