初めてのSQL 第3版

Book description

SQL言語に初めて触れるプログラマを対象に、SQL言語の基本を解説します。データベースの歴史、概念などの基礎知識から、データベースの作成、クエリの基本、フィルタリング、トランザクションなどまで、実践に必要なポイントを過不足なくコンパクトにまとめ、理解を深められるよう練習問題を用意しています。改訂にあたり、「ビュー」「メタデータ」「解析関数」「大規模なデータベースの操作」「SQLとビッグデータ」の章が追加され、さらに充実しました。SQLを学び始めるのに最適の一冊です。

Table of contents

  1. 大扉
  2. 原書大扉
  3. クレジット
  4. はじめに
      1. SQLを学ぶのはなぜか
      2. 本書を使うのはなぜか
      3. 本書の構成
      4. 本書の表記
      5. サンプルコードについて
    1. 問い合わせ先
  5. 謝辞
  6. 1章 背景情報
    1. 1.1 データベースとは
      1. 1.1.1 非リレーショナルデータベースシステム
      2. 1.1.2 リレーショナルモデル
      3. 1.1.3 用語
    2. 1.2 SQLとは何か
      1. 1.2.1 SQL文の分類
      2. 1.2.2 SQL:非手続き型言語
      3. 1.2.3 SQLの例
    3. 1.3 MySQLとは何か
    4. 1.4 SQLアンプラグド
    5. 1.5 本書の内容
  7. 2章 データベースの作成と設定
    1. 2.1 MySQLデータベースを作成する
    2. 2.2 mysqlコマンドラインユーティリティを使う
      1. 消えたfrom句
    3. 2.3 MySQLのデータ型
      1. 2.3.1 文字データ
      2. 2.3.2 数値データ
      3. 2.3.3 時間データ
    4. 2.4 テーブルを作成する
      1. 2.4.1 ステップ1:設計
      2. 2.4.2 ステップ2:改良
      3. どこまでやれば十分か
      4. 2.4.3 ステップ3:SQLスキーマ文を作成する
      5. nullとは何か
    5. 2.5 データの挿入とテーブルの変更
      1. 2.5.1 データを挿入する
      2. データをXMLで取得できるか?
      3. 2.5.2 データを更新する
      4. 2.5.3 データを削除する
    6. 2.6 文も使い方次第
      1. 2.6.1 主キーが一意ではない
      2. 2.6.2 外部キーが存在しない
      3. 2.6.3 列値の違反
      4. 2.6.4 無効な日付の変換
    7. 2.7 Sakilaデータベース
  8. 3章 入門:クエリ
    1. 3.1 クエリの仕組み
    2. 3.2 クエリの句
    3. 3.3 select句
      1. 3.3.1 列エイリアス
      2. 3.3.2 重複を取り除く
    4. 3.4 from句
      1. 3.4.1 テーブル
      2. 3.4.2 テーブルリンク
      3. 3.4.3 テーブルエイリアスを定義する
    5. 3.5 where句
    6. 3.6 group by句とhaving句
    7. 3.7 order by句
      1. 3.7.1 昇順と降順
      2. 3.7.2 数値のプレースホルダによる並べ替え
    8. 3.8 練習問題
  9. 4章 フィルタリング
    1. 4.1 条件の評価
      1. 4.1.1 丸かっこを使う
      2. 4.1.2 not演算子を使う
    2. 4.2 条件を組み立てる
    3. 4.3 条件の種類
      1. 4.3.1 等号条件
      2. 4.3.2 範囲条件
      3. 4.3.3 メンバーシップ条件
      4. 4.3.4 マッチング条件
    4. 4.4 null
    5. 4.5 練習問題
  10. 5章 複数のテーブルからデータを取得する
    1. 5.1 結合とは何か
      1. 5.1.1 デカルト積
      2. 5.1.2 内部結合
      3. 5.1.3 ANSIの結合構文
    2. 5.2 3つ以上のテーブルを結合する
      1. 結合の順序は重要か?
      2. 5.2.1 サブクエリをテーブルとして使う
      3. 5.2.2 同じテーブルを2回使う
    3. 5.3 自己結合
    4. 5.4 練習問題
  11. 6章 集合
    1. 6.1 入門:集合論
    2. 6.2 実践:集合論
    3. 6.3 集合演算子
      1. 6.3.1 union演算子
      2. 6.3.2 intersect演算子
      3. 6.3.3 except演算子
    4. 6.4 集合演算のルール
      1. 6.4.1 複合クエリの結果を並べ替える
      2. 6.4.2 集合演算の優先順位
    5. 6.5 練習問題
  12. 7章 データの生成、操作、変換
    1. 7.1 文字列データを操作する
      1. 7.1.1 文字列を生成する
      2. 7.1.2 文字列を操作する
    2. 7.2 数値データを操作する
      1. 7.2.1 算術関数を実行する
      2. 7.2.2 数値の精度を制御する
      3. 7.2.3 符号付きのデータを扱う
    3. 7.3 時間データを操作する
      1. 7.3.1 タイムゾーンに対処する
      2. 7.3.2 時間データを生成する
      3. 7.3.3 時間データを操作する
    4. 7.4 変換関数
    5. 7.5 練習問題
  13. 8章 グループ化と集計
    1. 8.1 グループ化
    2. 8.2 集計関数
      1. 8.2.1 暗黙的なグループと明示的なグループ
      2. 8.2.2 異なる値を数える
      3. 8.2.3 式を使う
      4. 8.2.4 nullをどのように扱うか
    3. 8.3 グループを生成する
      1. 8.3.1 1つの列によるグループ化
      2. 8.3.2 複数の列によるグループ化
      3. 8.3.3 式によるグループ化
      4. 8.3.4 小計と総計を生成する
    4. 8.4 グループ化のフィルタ条件
    5. 8.5 練習問題
  14. 9章 サブクエリ
    1. 9.1 サブクエリとは何か
    2. 9.2 サブクエリの種類
    3. 9.3 非相関サブクエリ
      1. 9.3.1 複数行/単一列のサブクエリ
      2. 9.3.2 複数列のサブクエリ
    4. 9.4 相関サブクエリ
      1. 9.4.1 exists演算子
      2. 9.4.2 相関サブクエリを使ってデータを操作する
    5. 9.5 サブクエリを使う状況
      1. 9.5.1 データソースとしてのサブクエリ
      2. 9.5.2 式ジェネレータとしてのサブクエリ
    6. 9.6 サブクエリのまとめ
    7. 9.7 練習問題
  15. 10章 結合
    1. 10.1 外部結合
      1. 10.1.1 左外部結合と右外部結合
      2. 10.1.2 3つのテーブルによる外部結合
    2. 10.2 クロス結合
    3. 10.3 自然結合
    4. 10.4 練習問題
  16. 11章 条件付きロジック
    1. 11.1 条件付きロジックとは何か
    2. 11.2 case式
      1. 11.2.1 検索case式
      2. 11.2.2 単純case式
    3. 11.3 case式の例
      1. 11.3.1 結果セットを変換する
      2. 11.3.2 存在を確認する
      3. 11.3.3 ゼロ除算エラー
      4. 11.3.4 条件付き更新
      5. 11.3.5 null値の処理
    4. 11.4 練習問題
  17. 12章 トランザクション
    1. 12.1 マルチユーザーデータベース
      1. 12.1.1 ロック
      2. 12.1.2 ロックの単位
    2. 12.2 トランザクションとは何か
      1. 12.2.1 トランザクションを開始する
      2. 12.2.2 トランザクションを終了する
      3. ストレージエンジンの選択
      4. 12.2.3 トランザクションのセーブポイント
    3. 12.3 練習問題
  18. 13章 インデックスと制約
    1. 13.1 インデックス
      1. 13.1.1 インデックスを作成する
      2. 13.1.2 インデックスの種類
      3. 13.1.3 インデックスの使い方
      4. 13.1.4 インデックスの欠点
    2. 13.2 制約
      1. 13.2.1 制約を作成する
    3. 13.3 練習問題
  19. 14章 ビュー
    1. 14.1 ビューとは何か
    2. 14.2 ビューを使うのはなぜか
      1. 14.2.1 データセキュリティ
      2. 14.2.2 データ集計
      3. 14.2.3 複雑さの隠蔽
      4. 14.2.4 分割されたデータの結合
    3. 14.3 更新可能なビュー
      1. 14.3.1 単純なビューを更新する
      2. 14.3.2 複雑なビューを更新する
    4. 14.4 練習問題
  20. 15章 メタデータ
    1. 15.1 データに関するデータ
    2. 15.2 information_schema
    3. 15.3 メタデータを操作する
      1. 15.3.1 スキーマ生成スクリプト
      2. 15.3.2 デプロイメントの検証
      3. 15.3.3 動的SQLの生成
    4. 15.4 練習問題
  21. 16章 解析関数
    1. 16.1 解析関数
      1. 16.1.1 データウィンドウ
      2. 16.1.2 局所的な並べ替え
    2. 16.2 ランキング
      1. 16.2.1 ランキング関数
      2. 16.2.2 複数のランキングを生成する
    3. 16.3 レポート関数
      1. 16.3.1 ウィンドウフレーム
      2. 16.3.2 前の行と後の行
      3. 16.3.3 列値の連結
    4. 16.4 練習問題
  22. 17章 大規模なデータベースの操作
    1. 17.1 パーティショニング
      1. 17.1.1 パーティショニングの概念
      2. 17.1.2 テーブルの分割
      3. 17.1.3 インデックスの分割
      4. 17.1.4 分割方式
      5. 17.1.5 パーティショニングの利点
    2. 17.2 クラスタリング
    3. 17.3 シャーディング
    4. 17.4 ビッグデータ
      1. 17.4.1 Hadoop
      2. 17.4.2 NoSQLとドキュメントデータベース
      3. 17.4.3 クラウドコンピューティング
    5. 17.5 まとめ
  23. 18章 SQLとビッグデータ
    1. 18.1 Apache Drill
    2. 18.2 Drillを使ってファイルからデータを取得する
    3. 18.3 Drillを使ってMySQLからデータを取得する
    4. 18.4 Drillを使ってMongoDBからデータを取得する
    5. 18.5 複数のデータソースでDrillを使う
    6. 18.6 SQLの未来
  24. 付録A サンプルデータベースのER図
  25. 付録B 練習問題の解答
  26. 著者・訳者紹介
  27. 奥付

Product information

  • Title: 初めてのSQL 第3版
  • Author(s): Alan Beaulieu, 株式会社クイープ
  • Release date: July 2021
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873119588

You might also like

book

Go言語によるWebアプリケーション開発

by Mat Ryer, 鵜飼 文敏, 牧野 聡

Goプログラミングについて一歩踏み込んだプロユースの解説書。読者はシンプルなコードを書きながら、実運用アプリケーションの開発で使うスキルとテクニックを学ぶことができます。本書のサンプルプログラムはどれもシンプルですがとても実践的です。拡張性、並行処理、高可用性といったエンタープライズアプリケーションの開発で直面する現実的な問題に対するソリューションが含まれています。本書を読めば、実際の業務に必要な技能――Goによる開発手法および関連技術の使い方――をマスターし、ツールやプログラムの開発スキルを迅速かつ簡単に向上できます。日本語版では、監訳者の鵜飼文敏氏による巻末付録「Goらしいコードの書き方」を収録しました。

book

データサイエンス講義

by Rachel Schutt, Cathy O'Neil, 瀬戸山 雅人, 石井 弓美子, 河内 崇, 河内 真理子, 古畠 敦, 木下 哲也, 竹田 正和, 佐藤 正士, 望月 啓充

コロンビア大学のデータサイエンス入門講義をベースとした本書では、データサイエンスを行う上で、どのようなプロセスが必要か、データサイエンティストとしてはどのようなスキルセットが必要で、どのような思考方法を選択する必要があるのかを実例とともに紹介します。Google、Microsoft、Facebookをはじめとした有名企業で使われているアルゴリズムや分析手法の紹介など、興味深い話題や事例を豊富に収録。幅広い解説で、データサイエンティストの参考になるトピックが満載の一冊です。

book

ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック

by Pete Goodliffe, 柴田 芳樹

本書は、優れたコードを作りだし、人々と効率的に働く生産性の高いプログラマになるための考え方とテクニックを38のテーマで紹介します。個人的な活動として、継続的な学習方法と停滞を避けるための課題の見つけ方など、自らを成長させる方法も紹介。さらに組織の中で他の人とコミュニケーションを取りながら、効果的に働くための習慣を解説します。『Code Craft』の著者Pete Goodliffeが、自らの経験を元に「優れたプログラマ」になるための考え方と習慣をまとめた本書は、プログラミングを愛し、長く続けながら、優れたプログラマになりたいと思うすべての人に必携の一冊です。

book

Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス

by Titus Winters, Tom Manshreck, Hyrum Wright, 竹辺 靖昭, 久富木 隆一

Googleの現役ソフトウェアエンジニアたちが、超大規模ソフトウェアの開発と保守を長期的に支えてきたGoogle社内の多様なベストプラクティスを、文化、プロセス、ツールの側面からこの一冊に凝縮。時間と変化、規模と成長、トレードオフとコストという3つの基本原理に沿って、コードを持続可能にする方法論を紐解きます。「謙虚、尊敬、信頼」、心理的安全性、ダイバーシティとインクルージョンなど公正を重んじる文化から、コードレビューやテスト構成法など人間の行動を規定するプロセス、継続的インテグレーションや大規模変更システムなど変化への対応を支援する自動化ツールの基盤技術まで、Googleが試行錯誤を経て獲得した教訓を余すところなく紹介しています。経済学、心理学、マネジメント論などを背景にした人間への深い洞察をふまえ、データ駆動かつトレードオフから導かれる、定量的かつ定性的な決定プロセスも解説。Googleの成長力の源泉を理解でき、得られる知見は、学生から組織の意思決定者、小規模スタートアップからデジタルトランスフォーメーション(DX)を目指す大企業まで、幅広く活用できます。