本書は、データベース言語であるSQLの基本事項を、例題→正解→解説の構成で詳解しています。基本的な構文からはじまって「これだけ分かればひと通りSQLが書ける!」というレベルまでを紹介しています。例題は“現場で使える”ものを集め、100の例題を取り上げているので事例引きリファレンスとしても活用できます。
第2版では、最新バージョンであるOracle 10gとSQL Server 2005に対応。SQLの記述形式はANSIに準拠したものになりました。
また、本書は単なる基本事項の解説書でありません。著者の長年にわたる経験から得た、作業効率を高めるSQL文の書き方や、システムエンジニアが陥りやすいミスの回避法を紹介しています。初心者はもとより、ベテランエンジニアの方にも有用なテクニックが収録された1冊です。
第1章 SQLの勘所、SELECT文の基礎
はじめに
例題テーブルの説明
SELECT文の基本書式
アスタリスク(‘*’)
テーブルの一部データ取得(単一列指定)
テーブルの全データ取得(複数列指定)
検索条件指定(数値)
検索条件指定(文字列)
検索条件指定(パターンマッチング・その1)
検索条件指定(パターンマッチング・その2)
検索条件指定(日付)
複数条件の指定(AND、OR)
INの使い方
NOT INの使い方
NULLの概念(ISの使い方)
NULLの概念(IS NOTの使い方)
複数テーブルの結合
演習問題
第2章 少し高度でかなり使えるSELECT文
表示順の指定(ORDER BY句)
件数取得(COUNT())
グループ化(GROUP BY句)
GROUP BY句とSUM()
HAVING句
DISTINCT
MAX()、MIN()、AVG()
日付の加工
副問い合わせ(その1)
副問い合わせ(その2)…複数の結果の場合
アウタージョイン(外部結合)
DUALテーブル、FROM句の省略など
演習問題
第3章 SELECT文の基本を使ってプロの手法
EXISTS
NOT EXISTS
SELECT文中の条件分岐(CASE式とDECODE式)
型の変換
日単位の加減算(日付の演算・その1)
月末日付を求める(日付の演算・その2)
日付の差分取得(日付の演算・その3)
月単位の加減算(日付の演算・その4)
LAST_DAY()とDATEADD()の注意点(日付の演算・その5)
集合演算子(UNION)
集合演算子(UNION ALL)
集合演算子(MINUS)
集合演算子(INTERSECT)
演習問題
第4章 文字列操作と数学関数でSELECT文の総仕上げ
文字列操作(連結)
文字列操作(文字/文字コード変換)
文字列操作(長さの取得)
文字列操作(部分文字列の取得)
文字列操作(置換)
文字列操作(大文字/小文字変換)
文字列操作(空白の切り詰め)
文字列操作(数値を文字列に変換)
文字列操作(その他の関数)
数学関数(三角関数)
数学関数(指数関数、対数関数)
数学関数(その他の関数)
NULL値の変換(NVL、ISNULL)
階層型の問い合わせ
演習問題
第5章 更新系SQL文を制覇する!
INSERT(データの追加)
INSERT(SELECT文を使用したINSERT)
SELECT…INTO~(一時テーブルへのデータ追加)
UPDATE(データの更新)
UPDATE(全データの更新)
UPDATE(複数列の更新)
UPDATE(CASE文を使った更新例)
DELETE(データの削除)
DELETE(全データの削除)
DELETE(重複行の削除)
COMMITとROLLBACK
演習問題
第6章 データ定義、インデックス、ビュー、ストアドプロシージャ
テーブルの作成/変更/削除
インデックスの作成/削除
ビューの作成/削除
ストアドプロシージャの作成/削除
ストアドファンクションの作成/削除
SELECTの結果でテーブルを作成する
データベースオブジェクトの定義の表示
補足説明(一時テーブルの作成)
補足説明(CREATE OR REPLACE:Oracleのみ)
補足説明(再コンパイル:Oracleのみ)
演習問題
第7章 SQL文の応用テクニックと注意点
ランキング
先頭からn行だけ取得(ROW_NUMBER、ROWNUM、TOP)
n行目からm行目を取得
最大値を持つ行を取得する
テーブル名の変更
DECODE式で範囲指定
文字列中での「’」の扱い方
日付型範囲指定の注意点
NOT IN、INの注意点
IF文の注意
第8章 データベースの情報を得る管理系のSQL
データベースオブジェクト情報の取得
バージョン取得
テーブル情報の取得
テーブルの列情報の取得
インデックス情報の取得
ビュー情報の取得
プロシージャ情報の取得
セッション情報の取得
権限情報の取得
第9章 ストアドプロシージャの基本(前編)
作成方法
実行方法
引数について
返り値について
変数について
ブロック(BEGIN~END)
制御文解説
カーソル
演習問題
第10章 ストアドプロシージャの基本(後編)+トリガー
例外処理
動的なSQL文の実行
画面に出力
ファイルに出力
トリガー
テーブル更新の時間制限
文トリガーと行トリガー(FOR EACH ROW)
特定列の更新トリガー
トリガー制約の指定(WHEN)
演習問題
第11章 SQL文のチューニング
統計情報の取得
インデックスを使ってくれないSQL文
インデックスを使ってくれない(演算)
インデックスを使ってくれない(関数の使用)
インデックスを使ってくれない(!=の使用)
ファンクションインデックス
連結インデックス
意図的にインデックスを使わない
ROWIDを使う例
実行計画の調査
単純な繰り返しをまとめよう
ビューを使わない
HAVING句は使い方に注意
SQL最適化ツールの導入
付録 A インストール方法とテーブル設定方法
Oracle
SQL Server
Column
第1章 SQLの歴史的概要
どうしてSQLというのか
SQLの規格
データベースの発展の影にSQLあり
第2章 RDBの発生と発展
最初のSQLのプロトタイプからRDB製品まで
ORACLEの経緯
もう一つの壮大なドラマ
マイクロソフトの参戦
だれもが予想していなかったオープンソースの力
第3章 現在のデータベースに求められている機能
これからのデータベース製品に求められるもの
データマイニング
マルチメディア対応のデータベースとは
全文検索対応のデータベース
第4章 現在のデータベースに求められている機能)
可用性と信頼性の追求(1)
可用性と信頼性の追求(2)
高速回線と分散データベース(1)
高速回線と分散データベース(2)
高速回線とストレージの大規模化
第5章 Webとデータベース
CSからWebへ
Webの進化と大型化
第6章 Javaの歴史
Javaはいかにして生まれたか
Javaの業務システムでの検討
第7章 Javaとデータベース
Javaとデータベース
JavaとWebの連携
XMLとの関係
相互接続性
第8章 データベースの設計と構築
データベースの設計はSEの基本
論理設計=データモデルを作成する
論理設計=正規化とER図への反映
第9章 設計において重要なこと
設計において重要なこと
第10章 データベースの構築
データベース構築時の注意点
データベースの構築をSQL文で経験すること
第11章 その他の注意点
運用に必要な知識
データベースの検索が遅くなったら
データベースの移行について
付属データはこちら
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
刷数は奥付(書籍の最終ページ)に記載されています。
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
発生刷 | ページ数 | 書籍改訂刷 | 電子書籍訂正 | 内容 | 登録日 | ||||
---|---|---|---|---|---|---|---|---|---|
1刷 | 128 実行結果 |
9刷 | 未 |
|
2015.08.31 |
Yasuo Shimada さん
2016-03-04
SQLの絵本の次に読破。SQLの絵本で、SQLの書き方をざっくりしって、この本で、SQLの使い方を学んだ。SQLにはいくつか種類があった、DBの差異によって、使うSQLが違うことも日常的にあることを学んだ。この本では、SQLServerとOracleで、それぞれ別のSQLでの使い方を学んだ。また、本書中ではのべられていないが、MSDNのtransact-sqlの書式を検索する癖をつけることで、この本から得られる知識もより豊かなものになった。
onodera さん
2013-05-19
SELECTの基礎だけ学習した。