SQL

SQLとはリレーショナルデータベースの問い合わせ言語です。

SQL

DROP MATERIALIZED VIEW LOG

DROP MATERIALIZED VIEW LOGは、マテリアライズド・ビュー・ログを削除するSQL文である。

DROP MATERIALIZED VIEW LOG ON [schema.]table
schema
マテリアライズド・ビュー・ログを削除する表のスキーマを指定する。スキーマの指定を省略した場合、自スキーマのテーブルのマテリアライズド・ビュー・ログを作成する。
table
マテリアライズド・ビュー・ログを削除する表を指定する。

CREATE LIBRARY

CREATE LIBRARYとは、外部プロシージャライブラリを作成するSQL文である。

自分のスキーマに外部プロシージャライブラリを作成するには、CREATE LIBRARYシステム権限が必要である。任意のスキーマに外部プロシージャライブラリを作成するには、CREATE ANY LIBRARYシステム権限が必要である。

CREATE [OR REPLACE] LIBRARY [schema.]name {AS|IS} 'filename'
OR REPLACE
作成するライブラリが既に存在した場合は、ライブラリを再作成する。
schema
ライブラリを作成するスキーマを指定する。スキーマの指定を省略した場合は、自分のスキーマにライブラリを作成する。
name
作成するライブラリの名前を指定する。
filename
ライブラリのパスを指定する。

ライブラリを作成する例を示す。

CREATE OR REPLACE LIBRARY mylib AS '/opt/app/oracle/product/11.2.0/db_64/lib/libmylib.so'

ALTER LIBRARY

ALTER LIBRARYとは、外部プロシージャライブラリを明示的に再コンパイルするSQL文である。 ALTER LIBRARYでライブラリファイルのパス名を変更することはできない。 ライブラリファイルのパス名を変更するには、CREATE OR REPLACE LIBRARYで外部プロシージャライブラリを再定義する。

任意のスキーマの外部プロシージャライブラリを明示的に再コンパイルするには、ALTER ANY LIBRARYシステム権限が必要である。

ALTER LIBRARY [schema.]name COMPILE

DROP LIBRARY

DROP LIBRARYとは、外部プロシージャライブラリを削除するSQL文である。

任意のスキーマの外部プロシージャライブラリを削除するには、DROP ANY LIBRARYシステム権限が必要である。

DROP LIBRARY name

疑似列

ROWID

ROWID疑似列とは、行のアドレスであり、テーブル内で一意である。

SQL> SELECT ROWID FROM quotes WHERE code = 4755;

ROWID
------------------
AAADVFAABAAAI1KAAA

SQL>

SELECT文のWHERE句に条件として指定できる。

SQL> SELECT * FROM quotes WHERE ROWID = 'AAADVFAABAAAI1KAAA';

      CODE NAME
---------- ----------------------------------------------------------------
      4755 楽天

SQL>

ROWNUM

ROWNUM疑似列とは、問い合わせで戻された行の番号であり、1から順番に付けられる。

SELECT empno FROM (
  SELECT empno FROM emp ORDER BY empno
)
WHERE RONUM <= 10
ORDER BY empno

SELECT文のWHERE句に条件として指定することで、先頭n件の結果だけを取得できる。

SELECT * FROM emp WHERE ROWNUM <= 10

関数

COALESCE

式のリストのうち、NULLでない最初の値を戻す。式のリストが全てNULLである場合、COALESCEはNULLを戻す。

COALESCE(expr [, expr] ... )

COALESCEの使用例を次に示す。

SELECT COALESCE(quantity, 0) FROM inventory

上記のSQL文の場合、inventory.quantityNULLでなければinventory.quantityが戻り、inventory.quantityNULLならば0が戻る。したがって、NULLを0に変換することができる。

DECODE

DECODE(expr, condition1, value1 [,condition2, value2...] [,default])
expr
評価する式。列名や関数など。
condition
条件値
value
条件値に一致した場合にDECODE関数の戻り値となる値
default
いずれの条件値にも一致しなかった場合にDECODE関数の戻り値となる値。defaultを省略した場合はnull。

INSTR

文字列から部分文字列を検索し、現れた位置を示す数値を戻す。

INSTR(string, substring [, position [, occurrence]])
string
検索対象となる文字列
substring
検索する部分文字列
position
検索を開始する位置。省略した場合はデフォルト値である1が設定される。
occurrence
部分文字列が表れる回数。省略した場合はデフォルト値である1が設定される。

string中のpositionの位置から検索して、substringoccurrence番目に現れた位置を示す数値。指定条件で現れなかった場合は0を戻す。

LOWER

文字列stringに含まれる文字をすべて小文字に変換した文字列を戻す。

LOWER(string)

MOD

MODは剰余(割り算の余り)を返す関数である。

MOD(n1, n2)

n1n2で割った余りを戻り値として返す。

MOD関数を使用したSQL文の例を示す。

SQL> SELECT MOD(12, 5) FROM DUAL;

MOD(12,5)
----------
         2

SQL> SELECT MOD(12, 6) FROM DUAL;

MOD(12,6)
----------
         0

SQL>

SUBSTR

SUBSTRは、文字列の一部を切り出すSQL関数である。

SUBSTR(文字列, 開始位置)
SUBSTR(文字列, 開始位置, 文字数)

開始位置を後ろから(右から)指定するには、負の数を指定する。

SUBSTR関数の使用例を示す。

SELECT name, SUBSTR(name, 2), SUBSTR(name, -2), SUBSTR(name, 1, 2) FROM students;
name SUBSTR(name, 2) SUBSTR(name, -2) SUBSTR(name, 1, 2)
SATO NEO ATO NEO EO SA
佐藤愛桜 藤愛桜 愛桜 佐藤

SUBSTRB

文字列charの中から、start番目から始まる長さlengthの文字列を抜き出して戻す。SUBSTRとは異なり、文字数ではなくバイト数で指定する。

SUBSTRB(char, start)
SUBSTRB(char, start, length)
char
文字列
start
charから文字列を抜き出す開始位置。startが負の場合、charの終わりから逆方向に数えた位置を表す。
length
抜き出すバイト数。省略した場合、charの最後まで抜き出す。

UPPER

文字列stringに含まれる文字をすべて大文字に変換した文字列を戻す。

UPPER(string)
string
大文字にする文字列
SELECT UPPER(ename) FROM emp