ポケット詳解 SQL辞典 [第3版]

ポケット詳解 SQL辞典 [第3版]
著者 堀江 美彦
ジャンル IT系書籍 > ネットワーク
書店発売日 2016/10/31
ISBN 9784798048239
判型・ページ数 4-6・796ページ
定価 2420円
(本体2200円+税10%)
在庫 品切れ・重版未定
その他 ダウンロード:有

この本に関するお問い合わせ・感想

SQLは最も普及したデータベース操作言語です。本書は、PostgreSQL、MySQL、SQLite、Oracle、SQL Server、DB2、Accessの計7種類のデータベースSQLに対応し、命令・関数を用例やサンプルを交えて解説したリファレンスです。各データベースが対応している命令・関数が一目でわかるので、複数のデータベースを利用している場合にも便利です。さらに第3版では、プログラムインターフェイスにPHP7、Python、Rubyも追加しています。

【サポートはこちら】https://www.shuwasystem.co.jp/support/7980html/4823.html
●第0章 SQLの基本とトレーニング
リレーショナル・データベースとは
SQLとは
SQLの記述について
表(テーブル)の構造
表のすべての行と列を取り出す [-SELECT *-]
重複する行を取り除く [-DISTINCT-]
特定の指定した列を取り出す [-SELECT A,B-]
特定の指定した行を取り出す [-WHERE-]
行を整列する [-ORDER BY-]
グループ化する [-GROUP BY-]
グループの中からさらに条件を絞る [-HAVING-]
複数の問い合わせを一度にする [-(SELECT)-]
仮想表を使う [-FROM DUAL-]
内部結合をおこなう [-INNER JOIN-]
外部結合をおこなう [-OUTER JOIN-]
同一表同士の結合をおこなう [- . -]
データを挿入する [-INSERT-]
複数のデータを挿入する [-INSERT ALL-]
データを更新する [-UPDATE-]
データを削除する [-DELETE-]
ミスをする前の状態まで戻る [-SAVEPOINT/ROLLBACK-]
変更したデータを確定する [-COMMIT-]

●第1章 データ操作言語(DML)
◇基本
テーブルからデータ行を取得する [SELECT ]
テーブルに行を挿入する [INSERT ]
テーブル内のデータを更新する [UPDATE ]
テーブル内の行を削除する [DELETE ]
テーブルに既存のデータ行を更新、または新規に追加する [MERGE ]
テーブルに既存のデータ行を更新、または新規に追加する [REPLACE ]
◇句
実行結果の列名を別名で表示する [AS句 ]
重複する行を取り除いて表示する [DISTINCT句 ]
データを取得するテーブル名を指定する [FROM句 ]
条件を指定する [WHERE句 ]
データをグループ化する [GROUP BY句 ]
グループ化されたものに条件を設定する [HAVING句 ]
結果の並び順を指定する [ORDER BY句 ]
指定した部分だけを結果として取得する [LIMIT句 ]
◇応用
OLAP集計オプション [GROUP BY GROUPING SETS / GROUP BY ROLLUP / GROUP BY CUBE ]
サブクエリー [(SELECT …) ]
SELECTした結果から表を作成する [SELECT INTO ]

●第2章 データ定義言語(DDL)
◇属性の変更
列を追加する [ALTER TABLE ADD ]
列を削除する [ALTER TABLE DROP ]
列の属性を変更する [ALTER TABLE ALTER / ALTER TABLE MODIFY ]
プライマリーキーを設定する [ALTER TABLE ADD PRIMARY KEY ]
外部キーを設定する [ALTER TABLE ADD FOREIGN KEY ]
制約を解除する [ALTER TABLE DROP CONSTRAINT ]
列名を変更する [ALTER TABLE CHANGE ]
列名を変更する [ALTER TABLE RENAME TO ]
表名を変更する [ALTER TABLE RENAME ]
表名を変更する [ALTER TABLE RENAME AS ]
列のデフォルト値を変更する [ALTER TABLE ALTER SET DEFAULT ]
◇生成・削除
表をクラスタ化する [CLUSTER ]
エイリアス(別名)を作成する [CREATE ALIAS ]
エイリアス(別名)を削除する [DROP ALIAS ]
シノニム(別名)を作成する [CREATE SYNONYM ]
シノニム(別名)を削除する [DROP SYNONYM ]
クラスタを作成する [CREATE CLUSTER ]
クラスタを削除する [DROP CLUSTER ]
インデックスを作成する [CREATE INDEX ]
インデックスを削除する [DROP INDEX ]
クラスタドインデックスを作成する [CREATE INDEX ON CLUSTER / CREATE CLUSTERED INDEX ]
シーケンスを作成する [CREATE SEQUENCE ]
シーケンスを削除する [DROP SEQUENCE ]
ビューを作成する [CREATE VIEW ]
ビューを削除する [DROP VIEW ]
表を作成する [CREATE TABLE ]
表を継承して作成する [CREATE TABLE INHERITS ]
ストアドファンクションを作成する [CREATE FUNCTION ]
ストアドファンクションを削除する [DROP FUNCTION ]
ストアドプロシージャを作成する [CREATE PROCEDURE ]
ストアドプロシージャを削除する [DROP PROCEDURE ]
ストアドパッケージを作成する [CREATE PACKAGE ]
ストアドパッケージを削除する [DROP PACKAGE ]
ストアドパッケージの本体の作成 [CREATE PACKAGE BODY ]
トリガーを作成する [CREATE TRIGGER ]
トリガーを削除する [DROP TRIGGER ]
ユーザー定義型を宣言する [CREATE TYPE ]
ユーザー定義型を定義する [CREATE TYPE BODY ]
ユーザー定義型を削除する [DROP TYPE ]
メソッドを作成する [CREATE METHOD ]
ユーザーを作成する [CREATE USER ]
ユーザーを削除する [DROP USER ]
ログインユーザーを作成する [sp_addlogin ]
ログインユーザーを削除する [sp_droplogin ]
表を削除する [DROP TABLE ]
テンポラリテーブル(一時表)を作成する [CREATE GLOBAL TEMPORARY TABLE / CREATE TEMPORARY TABLE ]
テンポラリテーブル(一時表)を作成する [DECLARE GLOBAL TEMPORARY TABLE ]
表内の全行を削除する [TRUNCATE TABLE ]
SELECT命令から表を作成する[CREATE TABLE AS ]

●第3章 データ制御言語(DCL)
◇権限操作
権限を付与する [GRANT ]
権限を剥奪する [REVOKE ]
◇オブジェクト操作
オブジェクト名を変更する [RENAME ]
◇SQL Serverの操作
データベースへのアクセスを許可する [sp_granddbaccess ]
データベースへのアクセス権限を剥奪する [sp_revokedbaccess ]
オブジェクト名を変更する[sp_rename ]
表の一覧を取得する[sp_tables ]

●第4章 関数
○1. 算術関数
◇算術
絶対値を戻す[ABS ]
符号を得る[SIGN / SGN ]
最大の整数を返す[FLOOR ]
最小の整数を返す[CEIL / CEILING ]
値をまるめる [ROUND ]
切り捨て [TRUNC / TRUNCATE ]
べき乗を求める [POW / POWER ]
平方根を求める [SQRT / SQR ]
2乗を求める [SQUARE ]
3乗根 [CBRT ]
指数値を計算 [EXP ]
自然対数を求める [LN / LOG / LOG10 ]
サインを計算 [SIN ]
コサインを計算 [COS ]
双曲線コサインを計算 [COSH ]
タンジェントを計算 [TAN ]
逆サインを計算 [ASIN ]
逆コサインを計算 [ACOS ]
逆タンジェントを計算 [ATAN / ATN ]
2つの引数から逆タンジェントを計算 [ATAN2 / ATN2 ]
コタンジェントを計算 [COT ]
ラジアンを度に変換 [DEGREES ]
度をラジアンに変換 [RADIANS ]
引数の中の最大値を返す [GREATEST ]
引数の中の最小値を返す [LEAST ]
円周率を得る [PI ]
乱数を得る [RAND / RANDOM / RND ]
剰余を求める [MOD ]
AND演算[BITAND ]
○2. 文字列関数
◇変換
文字をASCIIコードに変換 [ASC / ASCII ]
ASCIIコードを文字に変換 [CHR/CHAR ]
文字をユニコードに変換 [UNICODE ]
ユニコードを文字に変換 [NCHAR / NCHR ]
数値を文字列に変換 [STR ]
数値を2進数の文字列に変換 [BIN ]
数値を8進数の文字列に変換 [OCT ]
数値を16進数の文字列に変換 [HEX ]
文字列のビット長を取得 [BIT_LENGTH ]
文字列を区切り文字を使って連結 [CONCAT_WS ]
数値を指定した進数の文字列に変換 [CONV ]
N番目の文字列を返す [ELT ]
文字列が何番目に見つかったかを返す [FIELD ]
カンマで区切られた文字の中から文字を探す [FIND_IN_SET ]
指定されたビットに対する文字列のセットを返す [MAKE_SET ]
マルチバイト文字をコードに変換 [ORD ]
英文字を小文字に変換 [LOWER / LCASE ]
英文字を大文字に変換 [UPPER / UCASE ]
先頭文字を大文字に変換 [INITCAP ]
◇編集
文字列から指定された文字を削除 [TRIM ]
文字列の左側の空白を削除 [LTRIM ]
文字列の右側の空白を削除 [RTRIM ]
文字列の両端の空白を削除 [BTRIM ]
左から文字列を充填 [LPAD ]
右から文字列を充填 [RPAD ]
文字列の左部分を取り出す [LEFT ]
文字列の右部分を取り出す [RIGHT ]
文字列を指定された回数繰り返す [REPEAT / REPLICATE ]
文字列を置換 [REPLACE ]
文字列を反転 [REVERSE ]
◇文字長
文字列の長さを得る [LEN / LENGTH ]
文字列の文字長を得る [CHAR_LENGTH / CHARACTER_LENGTH ]
文字列のバイト数を得る [OCTET_LENGTH ]
◇検索
文字列内に含まれる文字列を検索 [CHARINDEX ]
文字列内に含まれる文字列を検索 [INSTR ]
文字列中の文字を検索 [POSITION ]
文字列中の文字を検索 [POSSTR ]
文字列内の文字位置を検索 [LOCATE ]
◇編集(結合・入れ替え・切り出し)
文字列を結合 [CONCAT ]
空白文字列を作成 [SPACE ]
文字列を置換または挿入する [INSERT ]
文字列を置き換え [TRANSLATE ]
文字列の部分的入れ替え [STUFF ]
文字列の部分切り出し [SUBSTR ]
文字列の部分切り出し [SUBSTRING ]
SOUNDEXキーを求める [SOUNDEX ]
○3. 日付刻関数
◇日付
現在の日付を得る [CURRENT_DATE / CURRENT DATE / CURDATE ]
◇時刻
現在の時刻を得る [CURRENT_TIME / CURRENT TIME / CURTIME ]
◇日付・時刻
現在の日付と時刻を得る [CURRENT_TIMESTAMP / CURRENT TIMESTAMP ]
現在の日付と時刻を得る [SYSDATE ]
現在の日付と時刻を得る [GETDATE ]
現在の日付と時刻を得る [NOW ]
現在の日付と時刻を得る [TIMEOFDAY ]
現在のUTCの日付と時刻を得る [GETUTCDATE ]
◇編集
現在の日付と時刻を得る [DATE ]
年を取り出す [YEAR ]
月を取り出す [MONTH ]
日を取り出す [DAY ]
時を取り出す [HOUR ]
分を取り出す [MINUTE ]
秒を取り出す [SECOND ]
月を英文字列で得る [MONTHNAME ]
曜日を英文字列で得る [DAYNAME ]
日付要素を文字列で得る [DATENAME ]
◇計算
年間の通算日を得る [DAYOFYEAR ]
日を得る [DAYOFMONTH ]
曜日を数値で得る [DAYOFWEEK ]
四半期を数値で得る [QUARTER ]
曜日を数値で得る [WEEKDAY ]
月の最終日の日付値を得る [LAST_DAY ]
次の指定した曜日の日付値を得る [NEXT_DAY ]
年間の通算週を取得 [WEEK ]
年齢を計算する [AGE ]
日付の足し算 [DATEADD ]
日付の足し算 [DATE_ADD / ADDDATE ]
日付の差 [DATEDIFF ]
日付の引き算 [DATE_SUB / SUBDATE ]
日付の差を月単位で計算 [MONTHS_BETWEEN ]
月を加算 [ADD_MONTHS ]
◇編集
日付を整形する [DATE_FORMAT ]
時刻を整形する [TIME_FORMAT ]
日付値から任意の日付要素の数値を得る [EXTRACT ]
日付値から任意の日付要素の数値を得る [DATE_PART ]
日付値から任意の日付要素の数値を得る [DATEPART ]
日付値から任意の日付要素の数値を切り捨てる [DATE_TRUNC ]
◇計算
紀元0年1月1日からの日数を日付にする [FROM_DAYS ]
紀元0年1月1日からの日数を得る [TO_DAYS ]
◇日付・時刻
UNIXタイムスタンプを得る [UNIX_TIMESTAMP ]
◇編集
書式によって整形されたUNIXタイムスタンプを得る [FROM_UNIXTIME ]
◇計算
期間PにN月を加算 [PERIOD_ADD ]
期間P1と期間P2の間の月数を計算 [PERIOD_DIFF ]
◇変換
秒を時分秒に変換 [SEC_TO_TIME ]
時分秒を秒に変換 [TIME_TO_SEC ]
◇日付
年と週を返す [YEARWEEK ]
○4. 集計関数
◇集計
平均値を算出する [AVG ]
合計値を算出する [SUM ]
最大値を得る [MAX ]
最小値を得る [MIN ]
相関係数を算出する [CORR / CORRELATION ]
行数を数える [COUNT ]
集計行かどうか判定 [GROUPING ]
◇集計-偏差
標準偏差を算出する [STDDEV / STDEV ]
母集団標準偏差を算出する [STDDEV_POP / STDEVP ]
◇集計-分散
分散を算出する [VAR / VARIANCE ]
母集団分散を算出する [VAR_POP / VARP ]
○5. 分析関数
◇分析
同順位を飛ばさずに順位をつける [DENSE_RANK ]
同順位を飛ばして順位をつける [RANK ]
行番号をつける [ROW_NUMBER ]
回帰直線の傾きを求める [REGR_SLOPE ]
回帰直線のy切片を求める [REGR_INTERCEPT ]
回帰直線の確定係数を求める [REGR_R2 ]
ウィンドウを使った合計を求める [SUM OVER ]
○6. 変換関数
◇変換
データ型を変換 [CAST ]
NULL値でない最初の値を返す [COALESCE ]
データ型を変換 [CONVERT ]
値を変換 [DECODE ]
NULL値を変換 [ISNULL ]
2つの引数が等しい場合にNULLを返す [NULLIF ]
NULL値を変換 [NVL ]
文字列型に変換 [TO_CHAR ]
日付型に変換 [TO_DATE ]
数値型に変換 [TO_NUMBER ]
○7. システム情報関数
◇システム
権限チェックの際に使用されるユーザ名を戻す [CURRENT_USER ]
データベース接続を開始させたユーザ名を戻す [SESSION_USER ]
現在データベースを実行しているユーザ名 [USER ]
○8. MySQLの関数(MySQL)
式を実行しクライアントでの経過時間を測る [BENCHMARK ]
暗号を複合化 [DECODE ]
文字列を暗号化 [ENCODE ]
現在のデータベース名を得る [DATABASE ]
ネットワークアドレスに対する数値を返す [INET_ATON ]
ネットワークアドレスに対する数値からネット[INET_NTOA ]
ワークアドレスを返すMySQLのバージョンを得る [VERSION ]
○9. Oracleの関数(ORACLEのみ)
◇計算
ある値の集合の合計に対する、その値の比率を計算 [RATIO_TO_REPORT ]
双曲線サインを返す [SINH ]
双曲線タンジェントを返す [TANH ]
◇編集
データ型コード、長さ、内部表現を含むVARCHAR2値を戻す [DUMP ]
文字列内に含まれる文字列のバイト位置を戻す [INSTRB ]
文字列のバイト数を求める [LENGTHB ]
文字列をバイト単位で切り出し [SUBSTRB ]
現行のセッションに関するVARCHAR2 データ型の情報を戻す [USERENV ]
◇変換
文字列の内部表現でのバイト数を戻す [VSIZE ]
NULL値を変換 [NVL2 ]
すべてのシングルバイト文字を対応するマルチバイト文字に変換 [TO_MULTI_BYTE ]
すべてのマルチバイト文字を対応するシングルバイト文字に変換 [TO_SINGLE_BYTE ]
◇システム
セッション・ユーザーを一意に識別する整数を戻す [UID]
○10. SQL Serverの関数(SQL Serverのみ)
◇システム
現在のセッションのアプリケーション名を得る [APP_NAME ]
テーブルおよび列のID番号を元にデータベース列の名前を返す [COL_NAME ]
データベースの設定値、プロパティを返す [DATABASEPROPERTYEX ]
データベースのID番号を返す [DB_ID ]
データベース名を返す [DB_NAME ]
ワークステーションのID番号を返す [HOST_ID ]
ワークステーションの名前を返す [HOST_NAME ]
ユーザーログイン名のセキュリティ識別番号を得る [SUSER_SID ]
データベースにおけるユーザーの識別番号を返す [USER_ID ]
データベースにおけるユーザー名を返す [USER_NAME ]
現在のユーザーがメンバであるかどうかを示す [IS_MEMBER ]
指定されたサーバーロールのメンバであるかどうかを調べる [IS_SRVROLEMEMBER ]
◇日付・時刻
現在のUTCを表すdatetime値を返す [GETUTCDATE ]
入力式が日付として有効かどうか調べる [ISDATE ]
◇編集
定義されている列の長さを得る [COL_LENGTH ]
行数を数える [COUNT_BIG ]
式を表すために必要なバイト数を返す [DATALENGTH ]
2つの文字式のSOUNDEX値の差を整数として返す [DIFFERENCE ]
データベースがNULL値を許容するかどうかを返す [GETANSINULL ]
式が数値型として有効かどうかを調べる [ISNUMERIC ]
文字列内でパターンが最初に現れる先頭位置を返す [PATINDEX ]
○11. SQLiteの関数(SQLiteのみ)
◇編集
引数の型を返す[typeof ]
グループ内のカラムの値を連結[group_concat ]
クォートした結果を取得[quote ]
◇システム
接続中の最後に挿入したrowidを返す[last_insert_rowid ]
SQLiteのバージョンを返す[sqlite_version ]
直前に変更された行数を取得します[changes ]
データベースに接続後に変更された行数を取得します [total_changes ]
◇計算
NULLでない最初の引数を返す[coalesce ]
NULLでない方の引数を返す[ifnull ]
引数が異なる場合は1番目の引数を返す[nullif ]
◇日付・時刻
変更フォーマット結果のユリウス日を返す[julianday ]
年月日等をフォーマットに基づき返す[strftime ]
日付と時刻を取得する[date / time / datetime ]
◇データ
データを16進数表記文字列に変換します[HEX《SQLite》 ]
データをランダムに生成します[randomblob ]
データを0で生成します[zeroblob ]
○12. XML関数
◇編集
XMLフラグメントを集約して戻す[XMLAGG]
各行の要素を連結した結果を戻す[XMLCONCAT]
引数をXML化した結果を戻す[XMLFOREST]
XMLの要素を生成して戻す[XMLELEMENT]
XML要素の「属性」を生成して戻す[XMLATTRIBUTES]
XMLフラグメントを作成しXMLを生成して戻す[XMLCOLATTVAL]
◇データ
XPathに合致するXML要素を抽出する[EXTRACT《XML》]
XPathに合致するXML要素の値を抽出する[EXTRACTVALUE]
XPathに合致するXML要素の値を更新する[UPDATEXML]
XQueryを実行しその結果をXMLで返す[XMLQUERY]

●第5章 演算子
◇集合演算子
和集合 [UNION ]
差集合 [EXCEPT ]
差集合 [MINUS ]
積集合 [INTERSECT ]
◇算術演算子
足し算 [+ ]
引き算 [- ]
掛け算 [* ]
割り算 [/ ]
剰余(あまりを求める) [% ]
◇単項演算子
正符号 [+ ]
負符号 [- ]
NULL値であるか調べる [IS NULL ]
◇ビット演算子
ビット単位の論理積(AND) [& ]
ビット単位の論理和(OR)[| ]
ビット単位の排他的論理和(XOR)[^ ]
ビット単位の排他的論理和(XOR) [# ]
ビット単位の否定(NOT) [- ]
◇比較演算子
等しい [= ]
より大きい [> ]
より小さい(未満) [< ]
大きい(以上) [>= ]
小さい(以下) [<= ]
等しくない [<> ]
等しくない [!= ]
◇論理演算子
すべての条件を満たす [ALL ]
いずれかの条件を満たす [ANY ]
いずれかの条件を満たす [SOME ]
範囲内に収まっている [BETWEEN ]
結果が存在しているか確認する [EXISTS ]
一致する値があるか調べる [IN ]
論理積 [AND ]
論理和 [OR ]
否定 [NOT ]
◇論理演算子 パターンマッチング
論理演算子 パターンマッチング [LIKE ]
論理演算子 パーターンマッチング(大文字、小文字を無視) [ILIKE ]
論理演算子 パターンマッチング(正規表現) [- ]
論理演算子 パターンマッチング(正規表現) [REGEXP / RLIKE ]
◇その他の演算子
文字列を結合する [|| ]
値を変換する [CASE ]
PostgreSQLその他の演算子

●第6章 プロシージャ内コマンド
◇プロシージャ
ブロックを定義 [BEGIN ? END ]
変数を定義 [DECLARE ]
変数に値をセットする [SET ]
条件分岐処理 [IF ]
条件分岐処理 [CASE ]
指定された回数繰り返す [FOR ]
条件が成立している間は繰り返し処理をおこなう [WHILE ]
無条件に繰り返し処理をおこなう [LOOP ]
処理の後に条件判定をおこなう繰り返し命令 [REPEAT ]
指定されたラベルに戻る [ITERATE ]
プロシージャ終了 [RETURN ]
指定されたラベルにジャンプ [GOTO ]
ループから抜ける [EXIT ]
ループから抜ける [BREAK ]
処理を続行 [CONTINUE ]
ループの外側に移動 [LEAVE ]
カーソルをオープンする [OPEN ]
カーソルをクローズする [CLOSE ]
カーソルを定義する [DECLARE CURSOR ]
カーソルが使用していたリソースを解放 [DEALLOCATE ]
カーソルから行を取り出す [FETCH ]
例外ハンドラ定義 [DECLARE HANDLER ]
Oracle システム組み込み例外 [EXCEPTION ]
Oracle ユーザー定義例外 [EXCEPTION ]
ユーザー定義エラーを発生 [RAISE ]
ユーザー定義エラーを発生 [RAISE ]
ユーザー定義エラーを発生 [RAISEERROR ]
例外を発生 [SIGNAL ]

●第7章 トランザクション
◇トランザクション
トランザクションの分離レベルを設定 [SET TRANSACTION ISOLATION LEVEL ]
現在のトランザクションを廃棄 [ABORT ]
トランザクションを開始 [BEGIN ]
トランザクションブロックの開始 [START TRANSACTION ]
強制的なトランザクションログのチェックポイントの実行 [CHECKPOINT ]
コミットする [COMMIT ]
トランザクションを終了 [END ]
ロールバックする [ROLLBACK ]
セーブポイントを設定 [SAVEPOINT ]
セーブポイントを設定 [SAVE TRANSACTION ]
行ロックをおこなう [SELECT FOR UPDATE ]
テーブルをロックする [LOCK TABLE ]
テーブルをロックする [LOCK TABLES ]
テーブルロックを解除 [UNLOCK TABLES ]

●第8章 バックアップ・リカバリ
MySQL インポート [LOAD DATA ]
MySQL エクスポート [SELECT INTO OUTFILE ]
Oracle インポート[IMP ]
Oracle エクスポート[EXP ]
DB2 インポート[IMPORT ]
DB2 インポート(高速)[LOAD ]
DB2 エクスポート[EXPORT ]
SQL Server インポート/エクスポート[BCP ]
PostgreSQL インポート/エクスポート[COPY ]

●第9章 プログラムインターフェイス
PHP7からMySQLに接続する場合
RubyからMySQLに接続する場合
PythonからMySQLに接続する場合
PerlからMySQLに接続する場合
JavaからMySQLに接続する場合

●補足
SQLのアンチパターンとパターン(SQLの×と○)
データ型
予約語一覧

ご注文

シェアする

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

関連書籍

同じジャンルの商品

お知らせ

一覧