【Oracle MASTER Silver SQL】試験対策用メモ

【Oracle MASTER Silver SQL】試験対策用メモIT資格
IT資格

ORACLE MASTER Silver SQL】(1Z0-071-JPN)の試験対策用の個人的な忘備録として、暗記事項をまとめました。

章の構成は『試験公式ページ』の出題範囲に依拠しています。

スポンサーリンク

第1章:リレーショナル・データベースの概要

DBMSの利点

  • DBMS(データベース管理システム)を使うと以下の様なメリットを得られる
    • 大量のデータを複数のユーザで利用でき、データを高速で参照・変更ができる
    • データ型・トランザクション機能・整合性制約により、データの高い整合性を維持できる
    • データが破損した場合速やかに復旧できる
    • ユーザ単位でアクセスと操作権限の制御ができる

SQLを実行するツール

  • Oracleの実行ツールには、SQL*PlusOracle SQL Developerがある
  • SQL*Plusはコマンドラインベースのツール
    • ターミナル・コマンドプロンプト上で実行する
    • SQLに加えて専用のコマンドを実行できる
  • Oracle SQL DeveloperはGUIベースのツール

オブジェクト

  • オブジェクトとは表などのデータを管理するものをオブジェクトと呼ぶ
  • Oracleでは主に以下のオブジェクトが使われる
オブジェクト名内容
データを格納する
ビュー(view)SELECT文に名前を付け保存したもの
シーケンス一意である数値(連番など)を生成する
索引表からのデータの読み取りを高速化するもの
シノニムオブジェクトの別名を定義できる
Oracleの主なオブジェクト

セグメント・表領域

  • セグメントとは記憶域のこと
  • 表などのデータを持つオブジェクトには、セグメントが1対1で対応している
  • セグメントは表領域に格納される
    • 1つの表領域は複数のセグメントを格納できる

スキーマ

  • スキーマとはユーザと1対1で対応するもので、オブジェクトが格納されている
  • スキーマには同名のユーザが所有しているオブジェクトが入っている

初期化パラメータ

  • 初期化パラメータはメモリサイズや各機能のオンオフ等の設定値
  • ALTER SESSION SET文で初期化パラメータをセッションレベルで変更できる
ALTER SESSION SET <パラメータ名> = <設定値>;

第2章:SQL SELECT 文を使用したデータの取得

列別名

  • 列名の後に列別名を指定できる
  • 列別名の前のASは省略できる
  • 列別名を"(2重引用符)で囲む必要があるのは列別名が以下の場合
    • 空白を含む
    • $_#以外の記号を含む
    • 大文字・小文字を区別する
    • 最初の文字が数字・記号を含む
    • Oracleの予約語

データ型

  • 列にはデータ型が指定され、データ型に対応するデータしか格納できない
  • 主なデータ型は以下
データ型名内容
NUMBER整数と小数
NUMBER(n) n桁の整数(n:1~38)
NUMBER(n,m) 最大桁数n、小数点以下の最大桁数mの整数・小数
CHAR(n)サイズがnバイト固定長の文字列(n:1~2000)
nは省略可能(省略時は1)
n未満の文字列を入れた場合、空白埋めされる
VARCHAR2(n)最大サイズがnバイトの文字列(n:1~4000)
nの指定必須
BLOB最大128テラバイトのバイナリデータ
CLOB最大128テラバイトの文字列
DATE日付と時刻(小数秒を含まない)
年・月・日・時・分・秒を格納できる
TIMESTAMP日付と時刻(小数秒を含む)
年・月・日・時・分・秒・小数秒を格納できる
TIMESTAMP WITH TIME ZONE日付と時刻(小数秒を含む)とタイムゾーン情報
TIMESTAMP WITH LOCAL TIME ZONE正規化された日付と時刻(小数秒を含む)
INTERVAL YEAR TO MONTH年月の時間間隔
INTERVAL DAY TO SECOND日時分秒の時間間隔
主なデータ型

DESCRIBEコマンド

  • DESCRIBEコマンドで表の構造を確認できる
  • コマンドはDESCと短縮可能
  • コマンドで確認できる要素は以下
列名内容
名前表にある列名
NULL?空白の場合NULLが入力できる
NOT NULLの場合NULLが入力できない
データ型と文字サイズ・数値の精度
DESCRIBEコマンドで確認できる要素

文字リテラル

  • '(1重引用符)で文字列を囲むと文字リテラルとなり、文字列そのものを指定できる
  • 文字リテラル内で1重引用符を使用したい場合は1重引用符を2つ続けて記述するか、代替引用メカニズムを使う
    • 代替引用メカニズムは「q'と任意の文字」「任意の文字と'」で囲む

NULL

  • 列に値を設定せずに追加・更新するとNULLが設定される
  • 空文字はNULLとして扱われる
  • NULLを含む計算式はNULLとして扱われる
  • NULLと「指定した文字列」を連結すると指定した文字列が返される

DISTINCT

  • SELECTの直後にDISTINCTを記述すると重複データを除外できる
    • それ以外の場所には指定できない

第3章:データの制限とソート

条件式

  • 条件式には列別名を指定できない

条件の評価順序

  • 条件の評価順序は以下になる(上にあるものが優先される)
    1. =!=<><=>=
    2. IS NULLLIKEBETWEENINEXISTS
    3. NOT
    4. AND
    5. OR
  • ()で囲むと順序が優先される

ORDER BY句

  • ASC(昇順)・DESC(降順)省略時は昇順になる
  • ASC(昇順)を指定すると、文字列はアルファベット順、日時は古い→新しい順でソートされる

置換変数

  • 置換変数を使うことでSQL文の一部を変えたものを繰り返して実行できる
    • &<変数>を使うと毎回変数の値入力が必要
    • &&<変数>を使うと変数の値が保存され繰り返し使える
  • DEFINEコマンドでSQL実行前に置換変数を値を設定できる
  • 置換変数の処理前後を非表示にするには変数VERIFYOFFにする

第4章:単一行関数を使用した出力のカスタマイズ

文字列を受け取るファンクション

UPPER・LOWER・INITCAPファンクション

  • アルファベットの大文字・小文字を変更するファンクションはUPPERLOWERINITCAPがある
    • INITCAPファンクションは先頭文字を大文字、それ以降を小文字にする

SUBSTRファンクション

  • 文字列から文字を抜き出す
SUBSTR(<文字列STR>,<開始位置N>,<長さL>) --STRの先頭N文字目からL文字を抜き出す
                                        --lを省略したら最後まで抜き出す

SUBSTR('ABCDE',2) --BCDE
SUBSTR('ABCDE',-2) --DE マイナスは開始位置を後ろから数える
SUBSTR('ABCDE',2,3) --BCD

REPLACEファンクション

  • 文字列を置換する
REPLACE(<文字列STR>,<開始位置N>,<長さL>) --STRの先頭N文字目からL文字を抜き出す
                                        --lを省略したら最後まで抜き出す

SUBSTR('ABCDE',2) --BCDE
SUBSTR('ABCDE',-2) --DE マイナスは開始位置を後ろから数える
SUBSTR('ABCDE',2,3) --BCD

LPAD・RPADファンクション

  • 文字列に文字を埋め込む(0埋めなど)
LPAD(<文字列STR>,<長さL>,<文字列PAD>) --STRの左側に、長さがLになるようにPADを埋め込む
                                      --PADを省略したら空白が埋め込まれる

LPAD('AB',5,'0') --000AB
LPAD('AB',5)     --   AB
RPAD(<文字列STR>,<長さL>,<文字列PAD>) --STRの右側に、長さがLになるようにPADを埋め込む
                                      --PADを省略したら空白が埋め込まれる

RPAD('AB',5,'0') --AB000

参考文献

スポンサーリンク
Dim雑記
タイトルとURLをコピーしました