Pocket詳解 SQL辞典

概 要

本書は、初級者から上級者まで使えるコンパクトで便利なSQL辞典です。データベース開発に使われるSQL(データベース操作言語)の機能を、機能名だけでなくやりたい事から逆引きでさがせます。用例やサンプルを豊富に紹介し、各データベースが対応している命令や関数も見やすく構成しているので、DML、DDL、DCl、関数、演算子、プロージャ内コマンド、トランザクション、バックアップ・リカバリ、プログラムインターフェースの使い方がひと目でわかります。MySQL、PostgreSQL、SQL Server、Oracle、DB2、SQLite、Access、ANSIなど主要なデータベースに対応。初心者から上級者までSQLはこれ1冊ですべてOK!! サンプルのダウンロードサービス付き。

著者 堀江美彦
価格 本体2200円(税別)
ISBN 978-4-7980-1861-4
発売日 2008/1/17
判型 四六
色数 2色
ページ数 752
CD/DVD
対象読者 初級
シリーズ Pocket詳解辞典
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

第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

実行結果の列名を別名で表示する 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

表名を変更する ALTER TABLE RENAME To

表名を変更する 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 CLUSETR /

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 / SQL

指数値を計算 EXP

自然対数を求める LN / LOG / LOG10

サインを計算 SIN

コサインを計算 COS

双曲線コサインを計算 COSH

タンジェントを計算 TAN

逆サインを計算 ASIN

逆コサインを計算 ACOS

逆タンジェントを計算 ATAN / ATN

コタンジェントを計算 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

NULL値を変換 NVL

文字列型に変換 TO_CHAR

日付型に変換 TO_DATE

数値型に変換 TO_NUMBER

7. システム情報関数

システム

権限チェックの際に使用されるユーザ名を戻す CURRENT_USER

データベース接続を開始させたユーザ名を戻す SESSION_USER

現在データベースを実行しているユーザ名 USER

8. ネットワークアドレス型関数

ネットワーク

ネットワークのブロードキャストを返す BROADCAST

IPアドレスを文字列で戻す HOST

ネットマスクの長さを抽出する MASKLEN

ネットマスクを作成 NETMASK

アドレスからネットワーク部分を抽出 NETWORK

IPホストとネットワークアドレスの長さを文字列として抽出 TEXT

省略形表示を文字列として抽出 ABBREV

MACアドレスの最後の3バイトをゼロに設定して返す TRUNC

9. MySQLの関数(MySQL)

式を実行しクライアントでの経過時間を測る BENCHMARK

暗号を複合化 DECODE

文字列を暗号化 ENCODE

現在のデータベース名を得る DATABASE

ネットワークアドレスに対する数値を返す INET_ATON

ネットワークアドレスに対する数値からネット IINET_NTOA

ワークアドレスを返す

MySQLのバージョンを得る VERSION

10. 幾何関数 (PostgreSQLのみ)

計算

面積 AREA

中心 CENTER

直径 DIAMETER

長方形の高さ HEIGHT

閉じたパスか否か ISCLOSED

開いたパスか否か ISOPEN

長さ LENGTH

閉じたパスに変換 PCLOSE

点の数 NPOINTS

開いたパスに変換 POPEN

半径 RADIUS

幅 WIDTH

11. 幾何型変換関数(PostgreSQLのみ)

変換

円を長方形に変換 BOX(円)

点を長方形に変換 BOX(点, 点)

多角形を長方形に変換 BOX(ポリゴン)

長方形を円に変換 CIRCLE(長方形)

円を作成 CIRCLE(中心点,半径)

長方形の対角線を求める LSEG(長方形)

点を線分に変換 LSEG(点, 点)

多角形をパスに変換 PATH(ポリゴン)

円の中心 POINT(円)

多角形の中心 POINT(ポリゴン)

長方形を12点の多角形に変換 POLYGON(長方形)

円を12点の多角形に変換 POLYGON(円)

円をnpts多角形に変換 POLYGON(npts, 円)

12. Oracleの関数(ORACLEのみ)

計算

ある値の集合の合計に対する、その値の比率を計算 RATIO_TO_REPORT

双曲線タンジェントを返す TANH

編集

データ型コード、長さ、内部表現を含むVARCHAR2値を戻す DUMP

文字列内に含まれる文字列のバイト位置を戻す INSTRB

文字列のバイト数を求める LENGTHB

文字列をバイト単位で切り出し SUBSTRB

現行のセッションに関するVARCHAR2 データ型の情報を戻す USERENV

変換

文字列の内部表現でのバイト数を戻す VSIZE

NULL値を変換 NVL2

すべてのシングルバイト文字を対応するマルチバイト文字に変換 TO_MULTI_BYTE

すべてのマルチバイト文字を対応するシングルバイト文字に変換 TO_SINGLE_BYTE

システム

セッション・ユーザーを一意に識別する整数を戻す UID

13. 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

データベースがNULL値を許容するかどうかを返す GETANSINULL

式が数値型として有効かどうかを調べる ISNUMERIC

文字列内でパターンが最初に現れる先頭位置を返す PATINDEX

14. SQLiteの関数(SQLiteのみ)

編集

引数の型を返す typeof

システム

接続中の最後に挿入したrowidを返す last_insert_rowid

SQLiteのバージョンを返す sqlite_version

計算

NULLでないの最初の引数を返す coalesce

NULLでない方の引数を返す ifnull

引数が異なる場合は1番目の引数を返す nullif

日付・時刻

変更フォーマット結果のユリウス日を返す julianday

年月日等をフォーマットに基づき返す strftime

第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章 プログラムインターフェイス

PHPでMySQLに接続する場合

PerlでMySQLに接続する場合

JavaでMySQLに接続する場合

PR

秀和システム