アットウィキロゴ

oracle

目次

メモ

set linesize 1000
set pagesize 10000
set pages 10000 line 600

データベースの種類

  1. リレーショナルデータベース・・・データが2次元の表形式をとり、データ間の関連をポインタでなく、データを使って表現する\_( ゚ロ゚)ここ重要
  2. 階層型・・・ツリー上の構造をとり、ポインタによってデータが結合されている。データのアクセスには、親データから辿って行かなければならない。つまりデータのアクセスは、親データが入り口となる
  3. ネットワーク型・・・ポインタを相互に組み込んで、網の目のような構造をとる。従属データは複数の親データを持つことができ、どのデータもアクセスの入り口となる事が出来る

ちょいメモ(Bronze SQL基礎I)

  1. リテラル文字列は、一重引用符で囲む(ただし数値の場合は、囲む必要はない)
  2. 列別名の大文字小文字をくべつするときは一重引用符ではなく、二重引用符で囲みます。
  3. 「BETWEEN a AND b」は、「列 >= a AND 列 <= b」と同じ結果になり、上限と下限を含む。
  4. 「a NOT BETWEEN x AND y」は、「a < x OR a > y」
  5. NOT LIKE条件では、NULL値のデータ検索は出来ない。
  6. NVL ( expr1 , expr2 ) ・・・式 expr1 が NULL なら expr2 の値を戻す。Null Value Logic の略
  7. グループ関数を使用した場合、SELECT句のグループ関数でない列はすべてGROUP BY句に指定する必要がある
  8. GROUP BY 句 がない場合の AVG(集計関数)
    一般的にはグループ単位の平均を求める。⇒ GROUP BY 句 を使用していない場合には選択による結果セット(条件によって選択されたレコード) を1つのグループとして全体の平均を1レコード戻す。
    
  9. 列別名はデフォルトでは大文字で表現されます。大文字/小文字を区別したり、スペースや特殊記号(#や$など)を使用したりする場合は、二重引用符(")で列別名の前後を囲む必要があります
  10. LIKE演算子を使用してパターン検索を行う際に%や_をエスケープするために、ESCAPEオプションを使用して任意の文字をエスケープ文字として指定する。
    SELECT ename FROM emp WHERE ename LIKE 'M\_%' ESCAPE '\';
    
  11. 日付の加算/減算
    日付は数値の加算と減算のように 日付値に +1 することで 1日後、-1 することで 1日前のように加減算できる。
    1秒後の求めるには 1/24/60/60 のように 1/86400 日を加算することで、1分後も同様に 1/24/60 を加算、1時間後も 1/24 を加算することで求めることができる。
    日付を小数にして加減算する場合には理解しやすくするために datetime + 1/24/60/60 や datetime + 1/(24*60*60) のような表記をすることが多い。
    
    select
    to_date('2005/03/12 21:25:06','YYYY/MM/DD HH24:MI:SS') + 1/24
    from dual 
    
  12. 単一行関数のネストには制限がないが、グループ関数のネストは2つまでである。
  13. MAX関数は、文字データに使用した場合、アルファベット順に並べたとき最後に来る値を返す。なお、NULL値は無視される。
  14. coalesce関数 (コウアレス)・・・与えられた引数のうち、NULLでない最初の引数を返す。
  15. CASE式はANSI SQLに準拠、DECODE関数はOracle独自
  16. 指定した文字を取り除くには「TRIM('H' from 'Hello World')」のように記述します。
    TRIM(' ABC ')→ABC
    TRIM('x' FROM 'xxABCxx')→ABC
    TRIM(LEADING 'x' FROM 'xxABCxx')→ABCxx
    TRIM(TRAILING 'x' FROM 'xxABCxx')→xxABC
    
  17. 日時書式要素の接尾辞…日時書式要素に付加できる接尾辞
    TH        序数          DDTH  4TH 
    SP        フルスペルで表した数  DDSP  FOUR
    SPTHまたはTHSP  フルスペルで表した序数 DDSPTH FOURTH
    
  18. データ型CHARは、固定長の文字データ。サイズの指定を省略すると1バイト
  19. データ型VARCHAR2は、可変長の文字データ。サイズの指定を省略出来ない。サイズ指定必須。
  20. データ型NUMBERは、精度と位取りのどちらも指定しない場合は、最大制度38の浮動小数となる。
  21. 列別名は、WHERE句では使用できない。SELECT句よりもWHERE句のほうが先に評価されるから
  22. ORDER BY句では、列別名を使用することが出来るが、GROUP BY句では列別名を使用することはできない。
  23. GROUP BY句、ORDER BY句を併用する場合
    通常、order by句は、select句で指定していない列にも使用可能でるが、group by句と併用する場合は、group by句で指定したいづれかの列しかORDER BY句に指定できない。
    
  24. HAVING句は、GROUP BY句の前後どちらに記述してもOK
  25. 句を指定する順番
    SELECT句
    FROM句
    WHERE句
    GROUP BY句(HAVING句)
    HAVING句(GROUP BY句)
    ORDER BY句
    
  26. SELECT句で指定していない列をHAVING句で条件付けすることも可能
  27. HAVING句は、GROUP BY句がなくても記述する事が可能
  28. FROM句で表別名を指定した場合、SELECT句WHERE句ON9では、その別名を使う必要がある。
  29. SELECT句、HAVING句、ORDER BY句には、GROUP BY句で使用した列またはグループ関数が使用できる。(WHERE句では使えない。)
  30. USING句に指定した列は、そのSELECT文内のどこでも表名で修飾することができない。
  31. 自然結合の場合、結合列は、表名または別名で修飾してはいけない。(WHERE句でも列修飾は不要。FROM句でして指定した列と判断される)
  32. クロス結合の場合、両方の表に存在する列は、表名または表別名にて修飾する必要がある。
  33. SEQUENCEに、CYCLEが設定されている場合、最大値に達した後は、MINVALUEの値から始まる。START WITHの値は関係ない!!
  34. 制約とデフォルトの書式
    制約は定義の方法により、列制約と表制約に分類されます。 列制約は列のデータ型と同様に列の定義の中で制約を指定する方法です。表制約は列の定義とは別の場所で、表に対して制約を行います。
    この2つには次のような違いがあります。
      複数の列を指定する制約は、表制約でないと定義できない。
      NOT NULL制約は列制約でないと定義できない。
    
    NOT NULL制約 列制約 列名 データ型 [CONSTRAINT 制約名] NOT NULL
    一意キー制約 列制約 列名 データ型 [CONSTRAINT 制約名] UNIQUE
    表制約 [CONSTRAINT 制約名] UNIQUE (列名 [, 列名]...)
    主キー制約 列制約 列名 データ型 [CONSTRAINT 制約名] PRIMARY KEY
    表制約 [CONSTRAINT 制約名] PRIMARY KEY (列名 [, 列名]...)
    チェック制約 列制約 列名 データ型 [CONSTRAINT 制約名] CHECK (条件)
    表制約 [CONSTRAINT 制約名] CHECK (条件)
    参照整合性制約 列制約 列名 データ型 [CONSTRAINT 制約名] REFERENCES 親表名 (親キー列名)
    表制約 [CONSTRAINT 制約名] FOREIGN KEY (外部キー列名 [, 外部キー列名]...)REFERENCES 親表名 (親キー列名 [, 親キー列名]...)
    デフォルト 列名 データ型 DEFAULT 値
  35. 曜日の表示を行う日付書式要素
    D 曜日(1~7)。
    DY 曜日の省略形。
    DAY 曜日。空白を埋め込んで、この要素に使用される日付言語の一番長い曜日の幅で表示します。
  36. 月の表示を行う日付書式要素
    MM 月を 2 桁であらわす (00 ~ 12)
    MON 月を省略名であらわす('1月 '~'12月':)。NLS_DATE_LANGUAGE などの初期化パラメータにより ('JAN' ~ 'DEC') に変化する。 最大桁数でフォーマットされる(後続スペースの付与)。
    MONTH 月をフルスペルであらわす。日本語では関係なし('1月 '~'12月')

ちょいメモ(Bronze DBA11g)

  1. データベース管理ツール
    Oracle Universal Installer(OUI)
    Database Configuration Assistant(DBCA)
    Database Upgrade Assistant(DBUA)
    Oracle Net Manager
    Oracle Enterprise Manager
    SQL*PlusとiSQL*Plus
    Recovery Manager(RMAN)
    Data Pump
    SQL*Loader
    
  2. 読み方
    data pump データポンプ
  3. CREATE USERは、データ定義言語(DDL)
  4. Oracleインスタンスは、「システムグローバル領域(SGA)」と「バックグラウンドプロセス」から構成される。
  5. プログラムグローバル領域(PGA)は、サーバプロセスに対して割り当てられる共有されないメモリ
  6. Oracleデータベースを構成するファイルは、「制御ファイル」、「データファイル」、「REDOログファイル」の3種類
  7. インスタンスとは、「バックグラウンドプロセス群」+「共有メモリ」。イメージ的には、データベースを管理しているもの(プロセス+メモリ)
  8. 「NOMOUNT」状態は、インスタンスが機動した状態。
  9. Oracle Universal Installer(OUI)を用いて、非対話形式のインストールを行う場合は、レスポンスファイルを使用する。
  10. Linux環境で、Oracleをインストールする為には、以下のユーザ・グループが必要である。
    Oracleユーザ・・・Oracleソフトウェアの所有者
    oinstallグループ・・・Oracleイベントリグループ
    dbaグループ・・・OSDBAグループ
    
  11. root.shとorainstRoot.shスクリプトを、Oracleインストール時に実行する必要あり。
  12. Oracle Enterprise Manager Database Control(Batabase Control または EM)
  13. Oracle Enterprise Manager Database Control(Batabase Control または EM)に初めからアクセス許可されているユーザ
    SYS・・・データディクショナリを構成する実表とビューを所有している
    SYSTEM・・・管理情報を格納する追加の表とビューおよび様々なOracleオプションとツールによって使用される内部表とビューを所有します。
    SYSMAN・・・Oracle Enterprise Managerを使用して、データベースを操作するために使用します。
    ★DBSNMPユーザは、EMへログインは可能。管理者権限は付与されていない。
    
  14. Oracle Enterprise Manager Database Control(Batabase Control または EM)にログインして管理タスクを実行できるユーザを作成すると、以下のロールが付与される。
    MGMT_USERロール
    
  15. クライアントが接続するOracleデータベース情報を解決する方法をネーミングメソッドと呼ぶ。
  16. ディレクトリネーミング
    名前解決にディレクトリサーバを使用する。名前解決情報を1箇所に集中させるため、ネットワーク構成の変更に柔軟。
    LDAP(Lightweight Directory Access Protocol)はディレクトリサービスを提供するプロトコル。
    
  17. 外部ネーミング
    Network Information Service(NIS)などのOracle以外のネーミングサービスを使って名前解決解決する。
    
  18. REDOログバッファは、データベース起動中にサイズを変更できません。
  19. インスタンス起動時に読み込むファイルが、パラメータファイル
    ●サーバパラメータファイル(SPFILE)
    Oracleサーバによって読み書きが可能なバイナリーファイル。データベース起動中にコマンドで変更したパラメータ情報をほじするため、再起動時にも変更が有効となる。
    手動では編集不可。テキスト初期化パラメータに優先して読み込まれる。
    ●テキスト初期化パラメータファイル
    パラメータを記述したテキストファイル。Oracleサーバは読み込みは出来るが、書き込み不可。
    手動では編集可能。編集した内容を反映させるには、データベースの再起動が必要。
    
  20. 自動共有メモリ管理では、SGA_TAGETパラメータで指定したサイズを元に、自動的に以下の領域に対してメモリを分配する。
    共有プール
    データーベースバッファキャッシュ
    Javaプール
    ラージプール
    ※REDOログバッファは、自動共有メモリ管理の対象ではない。
    LOG_BUFFERパラメータより、個別にサイズ調整する。
    
  21. データーベースを起動するために必要な権限
    SYSDBA
    SYSOPER
    
  22. ストライピング
    1つのデータを2つ以上のハードディスクに分けて同時に書き込むこと。
    

ちょいメモ(Silver DBA11g)

  1. 制御ファイルの名前を確認する方法
    1. V$CONTROLFILE ビュー
    2. show parameter control_filesコマンド
  2. 初期化パラメータファイル(CONTROL_FILES)で指定できる制御ファイルの数 1~8つのファイル名
  3. 初期化パラメータファイル(LOG_ARCHIVE_DEST_n)で指定できるアーカイブログファイル出力先 1~10つのファイル名
  4. ブロック
    ファイルとメモリ間のI/Oの最小単位。SYSTEM表領域で使用するブロックサイズを標準ブロックサイズという。
    標準以外のブロックサイズを使用する表領域も作成可能だが、標準ブロックサイズの変更は不可。
    2KB、4KB、8KB、16KB、32KBのブロックサイズが指定できる。
    
  5. エクステント
    オブジェクトの作成時に、表領域中にそのオブジェクト用に獲得する領域の最小単位。
    エクステントは、複数のデータファイルにまたがることは出来ない。
    
  6. 1つの表領域内では、同一のブロックサイズでなければならない。
  7. データディクショナリビューの一覧を取得する。
    SELECT TABLE_NAME FROM DICTIONARY;
    
  8. Management Service
    Grid Control用のユーザインターフェースを提供するJ2EEWEBアプリケーションのこと。
    
  9. ALTER SYSTEM SET ~ コマンド
    初期化パラメータ を SQL から変更するコマンド
    ALTER SYSTEM SET には、
    稼動しているインスタンス設定のみを変更する MEMORY スコープ
    設定ファイルのみを変更する SPFILE スコープ
    その両方を設定する BOTH スコープがある。
    
  10. ALTER SESSION文
    データベースへの接続に影響するすべての条件またはパラメータを、設定または変更できます。
    この文は、データベースとの接続を切断するまで有効です。
    
  11. DBA_TABLESPACES
    データベース内の表領域をすべて表示
    

用語

  1. リテラル文字・・・SELECT句に含まれた「文字、数字、日付」のこと。文字と日付のリテラルは、単一引用符(')で囲む必要がある

Oracleのマニュアル

  1. ここから取ってきた リリース1とリリース2のものが混ざってます。
    1. SQL リファレンス
    2. エラー・メッセージ
    3. アプリケーション開発者ガイド
    4. パフォーマンス・チューニング・ガイド
    5. データ・ウェアハウス・ガイド
    6. PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
    7. グローバリゼーション・サポート・ガイド
    8. 概要(Oracle Database 概要マニュアル)
    9. 管理者ガイド
    10. リファレンス
    11. ユーティリティ

参考ページ

  1. ORACLE MASTER Bronze DBA講座(1)
  2. オラクル基本の落とし穴
最終更新:2013年06月03日 08:03
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。