(改訂新版)SQL実践入門 ──高速でわかりやすいクエリの書き方(技術評論社) [電子書籍]
    • (改訂新版)SQL実践入門 ──高速でわかりやすいクエリの書き方(技術評論社) [電子書籍]

    • ¥3,080616 ゴールドポイント(20%還元)
    • すぐ読めます
100000086602990212

(改訂新版)SQL実践入門 ──高速でわかりやすいクエリの書き方(技術評論社) [電子書籍]

ミック(著者)
価格:¥3,080(税込)
ゴールドポイント:616 ゴールドポイント(20%還元)(¥616相当)
フォーマット:
専用電子書籍リーダアプリ「Doly」が必要です。無料ダウンロード
出版社:技術評論社
公開日: 2025年10月28日
すぐ読めます。
お取り扱い: のお取り扱い商品です。
ご確認事項:電子書籍リーダーアプリ「Doly」専用コンテンツ
こちらの商品は電子書籍版です

(改訂新版)SQL実践入門 ──高速でわかりやすいクエリの書き方(技術評論社) の 商品概要

  • SQLはデータベース操作に特化した言語で,柔軟にデータを操作できます。ただし,独自のロジックに基づいているため,それを正しく理解しなければ,読みづらくパフォーマンスの出ないSQLになってしまいます。本書では,「条件分岐」「集約」「ループ」「結合」「更新」など日常的に実行する処理の良い書き方・悪い書き方を解説します。その際,データベース内部でどう処理が実行されているかを示す実行計画を読み解くことで,「なぜそう書くと効率が良いのか」「可読性や保守性が向上するのか」を実感を持って理解することを目指します。改訂に伴い,SQLに追加された機能など現在の現場に対応する形に加筆・修正しています。
  • 目次

    第1章:DBMSのアーキテクチャ──この世にただ飯はあるか
    1.1 DBMSのアーキテクチャ概要
    クエリ評価エンジン
    バッファマネージャ
    ディスク容量マネージャ
    トランザクションマネージャとロックマネージャ
    リカバリマネージャ
    1.2 DBMSとバッファ
    この世にただ飯はあるか
    DBMSと記憶装置の関係
    メモリ上の2つのバッファ
    メモリの性質がもたらすトレードオフ
    システムの特性によるトレードオフ
    もう一つのメモリ領域「ワーキングメモリ」
    1.3 DBMSと実行計画
    権限委譲の功罪
    データへのアクセス方法はどう決まるのか
    オプティマイザとうまく付き合う
    適切な実行計画が作成されるようにするには
    1.4 実行計画がSQL文のパフォーマンスを決める
    実行計画の確認方法
    テーブルフルスキャンの実行計画
    インデックススキャンの実行計画
    簡単なテーブル結合の実行計画
    1.5 実行計画の重要性
    第1章のまとめ
    演習問題1

    第2章:SQLの基礎──母国語を話すがごとく
    2.1 SELECT文
    SELECT句とFROM句
    WHERE句
    GROUP BY句
    HAVING句
    ORDER BY句
    ビューとサブクエリ
    2.2 条件分岐,集合演算,ウィンドウ関数,更新
    SQLと条件分岐
    SQLで集合演算
    ウィンドウ関数
    トランザクションと更新
    第2章のまとめ
    演習問題2

    第3章:SQLにおける条件分岐──文から式へ
    3.1 UNIONを使った冗長な表現
    UNIONによる条件分岐の簡単なサンプル
    WHERE句で条件分岐させるのは素人
    SELECT句で条件分岐させると実行計画もすっきり
    3.2 集計における条件分岐
    集計対象に対する条件分岐
    集約の結果に対する条件分岐
    3.3 それでもUNIONが必要なのです
    UNIONを使わなければ解けないケース
    UNIONを使ったほうがパフォーマンスが良いケース
    3.4 手続き型と宣言型
    文ベースと式ベース
    宣言型の世界へ跳躍しよう
    第3章のまとめ
    演習問題3

    第4章:集約とカット──集合の世界
    4.1 集約
    複数行を1行にまとめる
    合わせ技1本
    4.2 カット
    あなたは肥り過ぎ? 痩せ過ぎ?──カットとパーティション
    PARTITION BY句を使ったカット
    第4章のまとめ
    演習問題4

    第5章:ループ──手続き型の呪縛
    5.1 ループ依存症
    Q.「先生,なぜSQLにはループがないのですか?」
    A.「ループなんてないほうがいいな,と思ったからです」
    それでもループは回っている
    5.2 ぐるぐる系の恐怖
    ぐるぐる系の欠点
    ぐるぐる系を速くする方法はあるか
    ぐるぐる系の利点
    5.3 SQLではループをどう表現するか
    ポイントはCASE式とウィンドウ関数
    ループ回数の上限が決まっている場合
    ループ回数が不定の場合
    5.4 バイアスの功罪
    第5章のまとめ
    演習問題5

    第6章:結合──結合を制する者はSQLを制す
    6.1 機能から見た結合の種類
    クロス結合──すべての結合の母体
    内部結合──何の「内部」なのか
    外部結合──何の「外部」なのか
    外部結合と内部結合の違い
    自己結合──自己とは誰のことか
    6.2 結合のアルゴリズムとパフォーマンス
    Nested Loops──結合アルゴリズムのカラシニコフ
    Hash
    Sort Merge
    意図せぬクロス結合
    6.3 結合が遅いなと感じたら
    ケース別の最適な結合アルゴリズム
    そもそも実行計画の制御は可能なのか?
    揺れるよ揺れる,実行計画は揺れるよ
    第6章のまとめ
    演習問題6

    第7章:サブクエリ──困難は分割するべきか
    7.1 サブクエリが引き起こす弊害
    サブクエリの問題点
    サブクエリ・パラノイア
    長期的な視野でのリスクマネジメント
    サブクエリ・パラノイア──応用版
    困難は分割するな
    7.2 サブクエリの積極的意味
    結合と集約の順序
    第7章のまとめ
    演習問題7

    第8章:SQLにおける順序──甦る手続き型
    8.1 行に対するナンバリング
    主キーが1列の場合
    主キーが複数列から構成される場合
    グループごとに連番を振る場合
    ナンバリングによる更新
    8.2 行に対するナンバリングの応用
    中央値を求める
    ナンバリングによりテーブルを分割する
    テーブルに存在するシーケンスを求める
    8.3 シーケンスオブジェクト・IDENTITY列・採番テーブル
    シーケンスオブジェクト
    IDENTITY列
    採番テーブル
    第8章のまとめ
    演習問題8

    第9章:更新とデータモデル──盲目のスーパーソルジャー
    9.1 更新は効率的に
    NULLの埋め立てを行う
    逆にNULLを作成する
    9.2 行から列への更新
    1列ずつ更新する
    行式で複数列更新する
    NOT NULL制約が付いている場合
    9.3 列から行への更新
    9.4 同じテーブルの異なる行からの更新
    相関サブクエリを利用する
    ウィンドウ関数を利用する
    INSERTとUPDATEはどちらが良いのか
    9.5 更新のもたらすトレードオフ
    SQLで解く方法
    SQLに頼らずに解く方法
    9.6 モデル変更の注意点
    更新コストが高まる
    更新までのタイムラグが発生する
    モデル変更のコストが発生する
    9.7 スーパーソルジャー病:類題
    再び,SQLで解くなら
    再び,モデル変更で解くなら
    初級者よりも中級者がご用心
    9.8 データモデルを制す者はシステムを制す
    第9章のまとめ
    演習問題9

    第10章:インデックスを使いこなす──秀才の弱点
    10.1 インデックスと言えばB-tree
    万能型のB-tree
    その他のインデックス
    10.2 インデックスを有効活用するには
    カーディナリティと選択率
    インデックスの利用が有効かを判断するには
    10.3 インデックスによる性能向上が難しいケース
    絞り込み条件が存在しない
    ほとんどレコードを絞り込めない
    インデックスが使えない検索条件
    10.4 インデックスが使用できない場合どう対処するか
    外部設計による対処──深くて暗い川を渡れ
    外部設計による対処の注意点
    データマートによる対処
    データマートを採用するときの注意点
    インデックスオンリースキャンによる対処
    インデックスオンリースキャンを採用するときの注意点
    第10章のまとめ
    演習問題10
    Appendix A:PostgreSQLのインストールと接続設定
    Appendix B:MySQLのインストールと接続設定
    Appendix C:演習問題の解答


    -----------------------------------------------

    第1章:DBMSのアーキテクチャ──この世にただ飯はあるか
    1.1 DBMSのアーキテクチャ概要
    1.2 DBMSとバッファ
    1.3 DBMSと実行計画
    1.4 実行計画がSQL文のパフォーマンスを決める
    1.5 実行計画の重要性
    第1章のまとめ
    演習問題1

    第2章:SQLの基礎──母国語を話すがごとく
    2.1 SELECT文
    2.2 条件分岐,集合演算,ウィンドウ関数,更新
    第2章のまとめ
    演習問題2

    第3章:SQLにおける条件分岐──文から式へ
    3.1 UNIONを使った冗長な表現
    3.2 集計における条件分岐
    3.3 それでもUNIONが必要なのです
    3.4 手続き型と宣言型
    第3章のまとめ
    演習問題3

    第4章:集約とカット──集合の世界
    4.1 集約
    4.2 カット
    第4章のまとめ
    演習問題4

    第5章:ループ──手続き型の呪縛
    5.1 ループ依存症
    5.2 ぐるぐる系の恐怖
    5.3 SQLではループをどう表現するか
    5.4 バイアスの功罪
    第5章のまとめ
    演習問題5

    第6章:結合──結合を制する者はSQLを制す
    6.1 機能から見た結合の種類
    6.2 結合のアルゴリズムとパフォーマンス
    6.3 結合が遅いなと感じたら
    第6章のまとめ
    演習問題6

    第7章:サブクエリ──困難は分割するべきか
    7.1 サブクエリが引き起こす弊害
    7.2 サブクエリの積極的意味
    第7章のまとめ
    演習問題7

    第8章:SQLにおける順序──甦る手続き型
    8.1 行に対するナンバリング
    8.2 行に対するナンバリングの応用
    8.3 シーケンスオブジェクト・IDENTITY列・採番テーブル
    第8章のまとめ
    演習問題8

    第9章:更新とデータモデル──盲目のスーパーソルジャー
    9.1 更新は効率的に
    9.2 行から列への更新
    9.3 列から行への更新
    9.4 同じテーブルの異なる行からの更新
    9.5 更新のもたらすトレードオフ
    9.6 モデル変更の注意点
    9.7 スーパーソルジャー病:類題
    9.8 データモデルを制す者はシステムを制す
    第9章のまとめ
    演習問題9

    第10章:インデックスを使いこなす──秀才の弱点
    10.1 インデックスと言えばB-tree
    10.2 インデックスを有効活用するには
    10.3 インデックスによる性能向上が難しいケース
    10.4 インデックスが使用できない場合どう対処するか
    第10章のまとめ
    演習問題10

    Appendix A:PostgreSQLのインストールと接続設定
    Appendix B:MySQLのインストールと接続設定
    Appendix C:演習問題の解答

(改訂新版)SQL実践入門 ──高速でわかりやすいクエリの書き方(技術評論社) の商品スペック

シリーズ名 WEB+DB PRESS plus
Cコード 3055
出版社名 技術評論社
本文検索
他の技術評論社の電子書籍を探す
紙の本のISBN-13 9784297151904
ファイルサイズ 44.4MB
著者名 ミック
著述名 著者

    技術評論社 (改訂新版)SQL実践入門 ──高速でわかりやすいクエリの書き方(技術評論社) [電子書籍] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!