0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【SilverSQL】第1章~第4章

Last updated at Posted at 2025-05-02

リレーショナルデータベースとOracleデータベース

リレーショナルモデル

  • 表形式のデータ構造を用いてデータを管理する仕組み。

階層型データベース

  • 下位データ(子)は、ただ1つの上位のデータと(親)と関連付けられる。

ネットワーク型データベース

  • 下位データ(子)が、複数の上位のデータと(親)と関連付けられる。

SQLコマンド

SQLコマンド
分類 コマンド 説明
データ検索 SELECT 表に格納された行の参照
データ操作言語 INSERT 表への行の追加
UPDATE 表に格納された行の更新
DELETE 表に格納された行の削除
MERGE 取得した行を表に更新または追加
データ定義言語 CREATE オブジェクトの作成
DROP オブジェクトの削除
ALTER オブジェクトの定義変更
TRUNCATE 表に格納されたすべての行を一括削除
GRANT 権限付与
REVOKE 権限の取り消し
トラザクション制御 COMMIT トラザクションの確定
ROLLBACK トラザクションの取り消し

SQL*Plusコマンド

SQL*Plusコマンド
コマンド 説明
DEFINE 置換変数を設定または確認
DESCRIBE 指定した表などのオブジェクトの定義を確認
EXIT SQL*Plusを終了
SET SQL*Plusシステム変数を設定
SHOW SQL*Plusシステム変数の値または現行のSQL*Plus環境を表示
SHOW PARAMETER 初期化パラメータの設定値を表示
UNDEFINE 置換変数を削除

SELECT文の基礎とデータの扱い

代用引用メカニズム

  • 初めの囲み文字:「q'」と任意の文字
  • 終わりの囲み文字:任意の文字と「'」

データの選択(検索)およびソート

パターン文字列で使用できる特殊文字

パターン文字列で使用できる特殊文字
特殊文字 パターンにマッチする条件
%(パーセント) 任意の文字列(空文字を含む)
_(アンダースコア) 任意の1文字

置換変数

  • &<変数名>または、&&<変数名>

単一行ファンクションを使用した出力のカスタマイズ

ファンクション

主なファンクション
分類 ファンクション 説明
文字ファンクション LOWER 文字列を小文字に変換する
UPPER 文字列を大文字に変換する
INITCAP 文字列の先頭文字を大文字に、それ以降を小文字に変換する
CONCAT 文字列を連結する
SUBSTR 文字列から部分文字列を抜き出す
LPAD 文字列の左側に文字を埋め込む
RPAD 文字列の右側に文字を埋め込む
REPLACE 文字列を置換する
TRIM 文字列の前後にある文字を取り除く
LENGTH 文字列の文字数を戻す
INSTR 文字列を位置を戻す
数値ファンクション ROUND 数値を四捨五入する
TRUNC 数値を切り捨てる
MOD 数値を除算したときの余りを戻す
POWER 数値のべき乗を戻す
日時ファンクション ADD_MONTHS 数か月前または数か月後の日時を戻す
MONTHS_BETWEEN 2つの日時の期間を月単位で戻す
NEXT_DAY 特定の曜日の日付を戻す
LAST_DAY 月の最終日の日付を戻す
SYSDATE データベースサーバーのOSの日時を戻す
ROUND 日時を丸める
TRUNC 日時を切り捨てる
変換ファンクション TO_CHAR データを文字型へ変換する
TO_NUMBER データを数値型へ変換する
TO_DATE データを日時型へ変換する
NULL関連ファンクション NVL NULLを指定した値に置き換える
NVL2 NULLをどうかに応じて異なる値を戻す
NULLIF 値が等しい場合にNULLを戻す
COALESCE 複数の値のうち、最初かに見つかった非NULL値を戻す

TRIM

文字列の前後にある指定された文字を削除

TRIM( [trim_char FROM] str)
  • LEADINGを指定した場合、文字列strの先頭から連続した文字trim_charを探し、削除。
  • TRAILINGを指定した場合、文字列strの末尾から連続した文字trim_charを探し、削除。
  • BOTHを指定した場合、文字列strの先頭および末尾から連続した文字trim_charを探し、削除。
  • trim_charおよびFROMを省略した場合、文字列strの先頭および末尾から連続した空白文字を探し、削除。
SQL> SELECT TRIM(LEADING '*' FROM '**ABC**') FROM dual;
結果
ABC**

INSTR

引数で指定した文字列の出現した位置を数値で戻す

INSTR(str, serach [, pos [, n]])
  • 文字列strのpos文字目から文字列searchを検索し、文字列searchがn回目に出現する位置を戻す。
  • posおよびnを省略した場合は1
  • 文字列strに文字列searchがなかった場合、戻り値は0
SQL> SELECT INSTR('ABCDEABCDE', 'C') FROM dual;
SQL> SELECT INSTR('ABCDEABCDE', 'C', 6, 1) FROM dual;
結果
INSTR('ABCDEABCDE', 'C'), INSTR('ABCDEABCDE', 'C', 6, 1)
                       3                               8

ROUND

数値を四捨五入する

ROUND( n [ , int ] )
  • 数値nを小数点以下int桁に四捨五入。
  • intが負の場合は小数点の左側intで四捨五入。
  • intを省略した場合は0として扱われ、結果を整数にする。
SQL> SELECT ROUND(18.167), ROUND(18.167, 1), ROUND(18.167, -1) FROM dual;
結果
ROUND(18.167), ROUND(18.167, 1), ROUND(18.167, -1)
           19              18.6                 20
ROUNDファンクションに指定できる日時書式モデルと丸めの処理
  • 書式モデルを省略すると「DD」で四捨五入
ROUNDファンクションに指定できる日時書式モデルと丸めの処理
書式モデル 丸め処理
DD 時間が00:00:00 ~ 11:59:59の場合、当日の00:00:00を戻す。
12:00:00 ~ 23:59:59の場合、翌日の00:00:00を戻す。
MM 日にちが1日~15日の場合、当日の1日を戻す。
16日~末日の場合、翌日の1日を戻す。
RRまたはYY 月が1月~6月の場合、当年の1月1日を戻す。
7月~12月の場合、翌年の1月1日を戻す。
SQL> SELECT ROUND(TO_DATE('2021/09/16 10:11:12'), 'DD') FROM dual;
結果
2021/09/16 00:00:00

TRUNC

数値を切り捨てる

TRUNCファンクションに指定できる日時書式モデルと丸めの処理
TRUNCファンクションに指定できる日時書式モデルと丸めの処理
書式モデル 丸め処理
DD 時間を切り捨て、当日の00:00:00を戻す。
MM 日にちを切り捨て、当月の1日を戻す。
RRまたはYY 月を切り捨て、当年の1月1日を戻す。
SQL> SELECT TRUNC(TO_DATE('2021/09/16 10:11:12'), 'DD') FROM dual;
結果
2021/09/16 00:00:00

MOD

数値を除算したときの余りを戻す

MOD(n, div)
  • 数値nを数値divで割ったときの余りを戻す。
SQL> SELECT MOD(9, 4), MOD(9, 3), MOD(4, 9) FROM dual;
結果
MOD(9, 4)  MOD(9, 3)   MOD(4, 9)
        1          0           4

POWER

数値のべき乗を戻す

POWER(n, m)
  • 数値nのm乗を戻す。
SQL> SELECT POWER(2, 2), POWER(3, 2), POWER(3, 3) FROM dual;
結果
POWER(2, 2)  POWER(3, 2)   POWER(3, 3)
          4            9            27
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?