1. ホーム >
  2. 書籍 >
  3. 達人に学ぶSQL徹底指南書

達人に学ぶSQL徹底指南書


形式:
書籍
発売日:
ISBN:
9784798115160
価格:
本体2,400円+税
仕様:
A5・320ページ
分類:
データベース

本書籍の他の形式を確認する

  • このエントリーをはてなブックマークに追加

プロの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 参考文献

本書はダウンロードファイルの提供はございません。

書籍への問い合わせ

正誤表、追加情報をご確認の上、こちらよりお問い合わせください

書影の利用許諾について

本書籍に関する利用許諾申請はこちらになります

追加情報はありません。

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

書籍・SEshop限定PDF:ご購入刷数  電子書籍 最終更新日:2017年12月18日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
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刷 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刷 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

関連情報

関連書籍