本書はSQLプログラマにとって最も使用頻度の高いデータ操作文とトランザクション制御文について簡潔にわかりやすくまとめた解説書です。データ変換などの一般的なSQL関数、また正規表現についても例を使い説明します。代表的なデータベースプラットフォームであるMySQL、Oracle、IBM DB2、Microsoft SQL Serverをカバーしています。必要な情報をコンパクトにまとめた本書は、複数のサーバを使い分ける技術者必携の1冊です。
SQLハンドブック
―機能引きガイド
Jonathan Gennick 著、林 秀幸 訳
![[cover photo]](https://www.oreilly.co.jp/books/images/picture_large4-87311-236-2.jpeg)
- TOPICS
- Programming , Database
- 発行年月日
- 2005年07月
- PRINT LENGTH
- 192
- ISBN
- 4-87311-236-2
- 原書
- SQL Pocket Guide
- FORMAT
目次
はじめに 1章 CASE式 1.1 単純CASE式 1.2 検索CASE式 2章 NUL 2.1 述部でNULLを扱う 2.2 CASEでNULLを扱う 2.3 関数でNULLを扱う(Oracle) 2.4 関数でNULLを扱う(DB2) 2.5 関数でNULLを扱う(SQL Server) 2.6 関数でNULLを扱う(MySQL) 3章 階層(再帰)クエリ 3.1 ANSI/ISOの再帰WITH(DB2) 3.2 CONNECT BY構文(Oracle) 3.2.1 CONNECT BYとSTART WITHとPRIOR(Oracle) 3.2.2 WHERE句(Oracle) 3.2.3 結合(Oracle) 3.2.4 階層的ソート(Oracle) 3.2.5 階層データのループ(Oracle) 3.2.6 CONNECT BY関数とオペレータ(Oracle) 4章 関数 4.1 日付関数 4.1.1 現在の日時を取得 4.1.2 四捨五入と切り捨て(Oracle) 4.1.3 便利な日付関数(Oracle) 4.1.4 便利な日付関数(SQL Server) 4.1.5 便利な日付関数(MySQL) 4.2 数値関数と数学関数 4.3 三角関数 4.4 文字列関数 4.4.1 文字列を検索 4.4.2 文字列内のテキストを置換 4.4.3 部分文字列を取り出す 4.4.4 文字列の長さを測定 4.4.5 文字列を連結 4.4.6 不要な文字を削除 4.4.7 文字を変換 4.4.8 文字列の大文字小文字を変換 4.5 その他の関数(Oracle) 5章 グループ化と要約 5.1 集計関数 5.2 GROUP BY 5.3 便利なGROUP BYのテクニック 5.3.1 GROUP BYのリストを短縮 5.3.2 結合前にグループ化 5.4 HAVING 5.5 GROUP BYの拡張機能(Oracle) 5.5.1 ROLLUP(Oracle) 5.5.2 CUBE(Oracle) 5.5.3 GROUPING SETS(Oracle) 5.5.4 関連の関数(Oracle) 5.6 GROUP BYの拡張機能(SQL Server) 5.6.1 ROLLUP(SQL Server) 5.6.2 CUBE(SQL Server) 5.6.3 GROUPING(SQL Server) 6章 サブクエリ 6.1 WITH句 6.2 相関のあるサブクエリとWITH 7章 述部 7.1 グループ比較の述部 7.2 左側に複数の値を指定(Oracle) 7.3 EXISTSの述部 7.4 INの述部 7.5 BETWEENの述部 7.6 LIKEの述部 8章 正規表現 8.1 正規表現(Oracle) 8.2 正規表現(SQL Server) 8.3 正規表現(MySQL) 9章 データ型変換 9.1 ANSI/ISOのCAST関数 9.2 ANSI/ISOのEXTRACT関数 9.3 日時変換(Oracle) 9.4 数値変換(Oracle) 9.5 さまざまな型変換(Oracle) 9.6 日時変換(DB2) 9.7 数値変換(DB2) 9.8 さまざまな型変換(DB2) 9.9 日時変換(SQL Server) 9.9.1 CASTとSET DATEFORMAT(SQL Server) 9.9.2 CONVERT(SQL Server) 9.9.3 DATENAMEとDATEPART(SQL Server) 9.9.4 DAYとMONTHとYEAR(SQL Server) 9.10 数値変換(SQL Server) 9.11 さまざまな型変換(SQL Server) 9.12 日時変換(MySQL) 9.12.1 日付と時間の要素を取り出す(MySQL) 9.12.2 TO_DAYSとFROM_DAYS(MySQL) 9.12.3 Unixタイムスタンプを利用(MySQL) 9.12.4 当日の秒数を利用(MySQL) 9.12.5 DATE_FORMATとTIME_FORMATを利用(MySQL) 9.13 数値変換(MySQL) 10章 データ更新 10.1 単純な更新 10.2 サブクエリの結果で更新 10.3 カーソルを使った更新 10.4 ビューとサブクエリを更新 10.5 パーティションを更新(Oracle) 10.6 更新したデータを返す(Oracle) 10.7 UPDATE FROM句(SQL Server) 11章 データ削除 11.1 全行を削除 11.2 ビューとサブクエリから削除 11.3 パーティションから削除(Oracle) 11.4 削除したデータを返す(Oracle) 11.5 二重のFROM(SQL Server) 12章 データ選択 12.1 SELECT句 12.1.1 カラム名を指定 12.1.2 アスタリスクで略記 12.1.3 式を記述 12.1.4 結果セットのカラム名を調節 12.1.5 名前で大小文字と句読点を扱う 12.1.6 SELECTのリストでサブクエリを使用 12.1.7 カラム名を修飾 12.2 ALLとDISTINCT 12.2.1 すべての行を取得 12.2.2 結果セットから重複した行を削除 12.3 FROM句 12.3.1 FROM句でテーブルエイリアスを指定 12.3.2 FROM句でサブクエリを使用 12.3.3 FROM句で集合を使用(Oracle) 12.3.4 FROM句でパーティションとサブパーティションを使用(Oracle) 12.3.5 フラッシュバッククエリ(Oracle) 12.4 WHERE句 12.5 GROUP BY句 12.6 HAVING句 12.7 ORDER BY句 13章 データ挿入 13.1 1行を挿入 13.2 挿入の対象 13.3 サブクエリを挿入 13.4 ダイレクトパスインサート(Oracle) 13.5 挿入した値を返す(Oracle) 13.6 複数のテーブルに挿入(Oracle) 13.6.1 無条件で複数のテーブルに挿入(Oracle) 13.6.2 条件つきで複数のテーブルに挿入(Oracle) 13.6.3 ALL対FIRST(Oracle) 14章 データマージ 15章 テーブル結合 15.1 結合の概念 15.2 クロス結合 15.3 内部結合 15.3.1 SQL 1992の内部結合の構文 15.3.2 結合の優先順位と括弧 15.3.3 USING句 15.3.4 自然結合 15.4 非等価結合 15.5 外部結合 15.5.1 左外部結合 15.5.2 外部結合でNULLを評価 15.5.3 右外部結合 15.5.4 完全外部結合 15.5.5 ベンダ固有の外部結合の構文 16章 トランザクション管理 16.1 自動コミットモード 16.2 トランザクションを開始 16.2.1 トランザクションを開始(Oracle) 16.2.2 トランザクションを開始(SQL Server) 16.2.3 トランザクションを開始(MySQL) 16.3 トランザクションを終了 16.4 トランザクションを中止 16.5 トランザクションのセーブポイントまでロールバック 17章 フラッシュバッククエリ(Oracle) 18章 ユニオンクエリ 18.1 UNIONとUNION ALL 18.1.1 UNION 18.1.2 UNION ALL 18.2 評価の順序 18.3 EXCEPT(またはMINUS) 18.3.1 EXCEPT 18.3.2 EXCEPT ALL(DB2) 18.4 INTERSECT 18.4.1 INTERSECT 18.4.2 INTERSECT ALL 19章 リテラル 19.1 テキストリテラル 19.2 数値リテラル 19.3 日時リテラル 19.4 日時間隔リテラル 索引