7's workspace

業務外にSpringBootを使ってWebアプリを完成させるまでの記録

簡易接続ネーミング

【 簡易接続ネーミングについて 】 

・簡易接続ネーミング・メソッドは、特別な構成は、必要ありません 
・ホスト名、ポート番号とサービス名の指定だけでデータベース・サーバーに 
 接続できます 

 CONNECT username/password@host[:port][/service_name] 

・デフォルトのポート番号は、1521です 

《参考資料》Oracle Database 2 日でデータベース管理者 
 10g リリース1(10.1)部品番号: B12447-03 
 4.ネットワーク環境の構成 
 ネーミング・メソッド 

障害があるとき

【 データベースの起動について 】 

・制御ファイル、初期化パラメータ、データ・ファイルに障害がある場合 
 データベースは、正常に起動しません 
REDOログ・ファイルを多重化している場合、正常なREDOログ・ファイル 
 があれば、データベースは起動します 
アーカイブ・ログ・ファイルは、リカバリに必要ですが、データベース 
 の起動には、関係しません 

データベースがオープンの時にアクセスできる特権

   特権ユーザーに関する問題です 
正しくは、SYSDBA,SYSOPERは、ユーザーではありません 
この問題で、特権ユーザーと言っているのは、SYSDBA,SYSOPERの権限が付与されたユーザーのことです 

【ポイント】  
【 特権ユーザーについて 】 

・SYSDBA,SYSOPERは、データベースがオープンしていなくてもデータ 
 ベース・インスタンスにアクセスできる特権ユーザーです 
 DBAには、データベースを管理できる権限がありますが、データベース 
 に接続するには、データベースがオープン状態のときだけです 
・SYS,SYSTEMユーザーは、データベースがオープンしていないと接続で 
 きません  

UNDOの保存期間

【 UNDO_RETENTIONについて 】 

・UNDO_RETENTIONは、UNDO保存の下限値を指定します 
 設定値の単位は、秒、デフォルトは、900秒(15分)、動的変更は可能です 
・フラッシュバック問い合わせで、使用されます 
・UNDOの保存期間の自動チュ-ニングの低しきい値です 

《参考》UNDO_RETENTIONとUNDO表領域 
・UNDO_RETENTIONの値で必要な領域よりUNDO表領域のサイズが小さい場合 
には、UNDO表領域のデータは、上書きされ、「スナップショットが古すぎます」 
というメッセージが表示される場合があります 
・上書きされないようにするには、RETENTION GUARANTEE句を指定します 

《参考資料》Oracle Database 2 日でデータベース管理者 
 10g リリース1(10.1)部品番号: B12447-03 
6.データベース記憶域構造の管理 
UNDO アドバイザの使用 

<索引の作り方>
CREATE [UNIQUE] INDEX 索引名 ON 表名 (列リスト);
  • UNIQUE:索引内の値が一意であることを保証する
  • 列リスト:複数列を宣言した場合は、指定列の組み合わせによる索引レコードを作成する

<ビューの作り方>

CREATE [FORCE] VIEW ビュー名 [列別名リスト]
AS SELECT 列リスト FROM 表名 [WHERE句][GROUP BY句][HAVING句][ORDER BY句]
[WITH CHECK OPTION | WITH READ ONLY];
  • FORCE:ビューの基礎表が存在しなくてもビュー定義を作成
  • WITH CHECK OPTION:ビューに対する更新があるときもWHERE句によるチェックを実行し、ビュー定義に違反する更新を禁止
  • WITH READ ONLY:ビューに対する更新を禁止(読み取り専用のビューになる)

<シノニムの作り方>

CREATE [PUBLIC] SYNONYM シノニム名 FOR 元のオブジェクト名;
  • PUBLIC:全データベースユーザーが使用できるシノニム。CREATE PUBLIC SYNONYM権限が必要
  • 元のオブジェクト名:別のユーザーが所有するオブジェクトの場合は「ユーザー名.オブジェクト名」

<順序の作り方>

CREATE SEQUENCE 順序名
[START WITH 開始番号] [INCREMENT BY 増分値]
[MINVALUE 最小値 | NOMINVALUE] [MAXVALUE 最大値 | NOMAXVALUE]
[CACHE キャッシュ数 | NOCACHE] [CYCLE | NOCYCLE];
  • START WITH:開始番号。デフォルトは1
  • INCREMENT BY:増分値。デフォルトは1。負の値を指定すると降順になる
  • MINVALUE:順序の最小値を指定できる。START WITH~MAXVALUEの値
  • NOMINVALUE:デフォルト。昇順の場合は1、降順の場合は-10^26
  • MAXVALUE:順序の最大値を指定できる。28けた以内の整数
  • NOMAXVALUE:デフォルト。昇順の場合は10^27、降順の場合は-1
  • CACHE:メモリ上に事前にキャッシュしておく数。デフォルトは20
  • NOCACHE:キャッシュしない
  • CYCLE:昇順の場合は最大値に達すると最小値に戻る。降順の場合は最小値に達すると最大値に戻る
  • NOCYCLE:デフォルト。順序が最大値(降順の場合は最小値)に達すると、それ以上の値を生成しない

 順序を使用するときには、NEXTVAL疑似列、CURRVAL疑似列を使用します。

 
NEXTVAL 次の順序番号を取得する。複数のセッションが同時に取得しようとした場合、先着順に次の番号を発行する
CURRVAL そのセッションで最後に取得した値を戻す。セッションで一度も採番していない場合はエラーとなる
 

 

GROUP BY句+ORDER BY句ORDER BY句のとき、SELECT列を指定していないとエラー

【 ORDER BY句について 】

・ORDER BY句は、SELECT文の最後に記述します
・ORDER BY句には、複数の列名または式を指定することができます
・ORDER BY句では、列名以外に、列別名、列番号、グループ関数を指定できます
・SELECT句にない列を、ORDER BY句で、指定することができます
・例外は、GROUP BY句とORDER BY句をいっしょに使用した場合には、SELECT句の
 列を、ORDER BY句で指定します 【 ORDER BY句について 】

・ORDER BY句は、SELECT文の最後に記述します
・ORDER BY句には、複数の列名または式を指定することができます
・ORDER BY句では、列名以外に、列別名、列番号、グループ関数を指定できます
・SELECT句にない列を、ORDER BY句で、指定することができます
・例外は、GROUP BY句とORDER BY句をいっしょに使用した場合には、SELECT句の
 列を、ORDER BY句で指定します

SQL> DELETE FROM EMP WHERE salary = NULL;

【 DELETE文のWHERE句が常に偽について 】

・WHERE句の条件が満たされる行が削除されます
・WHERE句が偽の場合には、行は削除されません

《例1》WHERE句が常に真値ならば、全行を削除します

SQL> DELETE TBL1 WHERE 1 = 1;

《例2》WHERE句が常に偽値ならば、削除されません

SQL> DELETE TBL1 WHERE 1 = 2;