<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/wiki8_m2/">
    <title>m2 @Wiki</title>
    <link>http://w.atwiki.jp/wiki8_m2/</link>
    <atom:link href="https://w.atwiki.jp/wiki8_m2/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>m2 @Wiki</description>

    <dc:language>ja</dc:language>
    <dc:date>2006-02-16T06:36:40+09:00</dc:date>
    <utime>1140039400</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/wiki8_m2/pages/25.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/wiki8_m2/pages/24.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/wiki8_m2/pages/8.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/wiki8_m2/pages/16.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/wiki8_m2/pages/21.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/wiki8_m2/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/wiki8_m2/pages/23.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/wiki8_m2/pages/22.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/wiki8_m2/pages/20.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/wiki8_m2/pages/19.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/wiki8_m2/pages/25.html">
    <title>Oracleのセットアップ</title>
    <link>https://w.atwiki.jp/wiki8_m2/pages/25.html</link>
    <description>
      ----
-2.1 OUIの機能
Oracle Universal Installer(OUI)には、以下の3つの機能がある。

+新規ソフトウェアのインストール
+インストール済製品の確認
+製品のアンインストール

----
-2.3 OUIの非対話形式での使用
OUIを用いて日対話形式でOracleソフトウェアをインストールする際は、レスポンスファイルを使用する。
 【レスポンスファイルの使用について】
 ・OracleソフトウェアのCD-ROMに収録されているサンプルファイルを編集する。
 ・インストール時に入力が必要なパラメータを前もって記述する。

----
-2.4 Oracleインストールのシステム用件

【システム用件(Windows)】
|要件|最小値|
|物理メモリー(RAM)|256MB(最小)、512MB(推奨)|
|仮装メモリー|RAM容量の2倍|
|一時ディスク領域|100MB|
|ハードディスク領域|1.5GB|

【システム要件(Linux)】
|要件|最小値|
|物理メモリー(RAM)|512MB|
|スワップ領域|1GBまたはRAM容量の2倍|
|/tmp内のディスク領域|400MB|
|ソフトウェアファイル用のディスク領域|2.5GB|

----
-2.5 Oracleソフトウェアが使用する環境変数
|環境変数|内容|
|ORACLE_BASE|Optimal Flexible Architecture(OFA)に基づいた&amp;br()Oracleディレクトリ構造のベースディレクトリを指定する|
|ORACLE_HOME|Oracleソフトウェアを含むディレクトリを指定する|
|ORACLE_SID|インスタンス名を指定する|
|LD_LIBRARY_PATH|共有オブジェクトライブラリの位置を指定する|

----
-2.7 Linux環境でのOracleインストール(ローカルグループとユーザー)
Linux環境においてOracleソフトウェアをインストールするには、次のローカルグループおよびユーザーが存在している必要がある。

+oinstallグループ･･･Oracleインベントリグループ
+dbaグループ･･･OSDBAグループ
+oracleユーザー･･･Oracleソフトウェアの所有者

 Windows環境では管理者権限をもったユーザーで
 インストールする必要がある(administratorなど)

----
-2.8 Linux環境でのOracleインストール(スクリプト)
Linux環境でOracleソフトウェアをインストールする場合、rootユーザーでOSプロンプトから以下のスクリプトを実行する必要がある。

+root.sh
+orainstRoot.sh

 Windows環境ではこれらのスクリプトは実行する必要はない

----
-2.10 Database Configuration Assistant(DBCA)
Database Configuration Assistant(DBCA)では以下の機能を行うことができる。

+データベースの作成
+データベース・オプションの構成
+データベースの削除
+テンプレートの管理

 データベース名の変更はできない
 →データベースの再作成または制御ファイルの再結成が必要

----
-2.11 DBCAの使用テンプレート
DBCAが使用するテンプレートには以下の2つのタイプがある

 シードテンプレート
 ①ソースとなる既存のデータベース構造情報と物理データファイルの両方を持つ
 ②物理データファイルやユーザー定義のスキーマなどが含まれている
 →短時間でのデータベース作成が可能！

 非シードテンプレート
 ①ソースデータベースで指定されているデータベースオプション、表領域、
 データファイル、初期化パラメータファイルなどの構造的な情報が含まれている
 ②ユーザー定義のスキーマデータは含まれていない
 →必要に応じて属性を変更できるため、柔軟データベース作成が可能！

----
-2.12 DBCA「データベースオプションの構成｣
DBCAの「データベースオプションの構成｣では、以下の構成ができる。
+Oracle TextやOracle OLAPなどのオプションのデータベースコンポーネントに関する構成
+デフォルトのデータベース稼動モードの切り替え(専用サーバーモード／共有サーバーモード)

----
-2.13 Database Upgrade Assistant(DBUA)のサイレントモードでの使用
Database Upgrade Assistant(DBUA)は、対話形式でOracleソフトウェアをアップグレード処理する場合に使用する。
また、DBUAをユーザーインターフェースを表示せずに実行する場合、サイレントモードを使用する。
 例）ORCLというデータベースをサイレンとモードでアップグレードする場合
 dbua -silent -dbName ORCL

----
-2.15 DBCAを使用時のブロックサイズの指定
DBCAを使用したデータベース作成時、ブロックサイズを指定するためにはカスタムテンプレートを使用する必要がある。
カスタムテンプレートを使用するには、データベース作成時にオプションとして「カスタムデータベース」を指定する。

----
-2.16 専用サーバーモードと共有サーバーモード
 専用サーバーモード
 ・１つのユーザープロセスに対して、1つのサーバープロセスが稼動するモード
 →ユーザーが少数の場合に有効

 共有サーバーモード
 ・複数のユーザープロセスがサーバープロセスを共有するモード
 →サーバープロセスの数を最低限に抑え、使用可能な&amp;
 システムリソースの使用効率を最大化

----
-2.17 DBCAのテンプレート
+DBCAのテンプレートには、データベースの作成に必要な情報がXML形式で記述されている。
+非シードテンプレートは物理データファイルやユーザー定義のスキーマなどを持っていないため、シードテンプレートと比較してデータベース作成に時間がかかる。

----
-2.18ディクショナリ管理の表領域

【ディクショナリ管理のパラメータ】
|項目|説明|
|初期サイズ|セグメントに割り当てられる最初のエクステントのサイズを指定&amp;br()(サイズを指定しなかった場合のデフォルト値)|
|次のサイズ|2番目以降のエクステントのサイズを指定|
|最小サイズ|エクステントのサイズが、指定サイズまたはその倍数に設定される&amp;br()(サイズを指定しなかった場合のデフォルト値)|
|増分サイズ|第2(次のサイズ)エクステントより後に割り当てられるエクステントの&amp;br()サイズが拡張される割合を指定する|
|最小値|セグメント作成時に割り当てられるエクステント数を指定する|
|最大値|セグメントが保持できるエクステント数の最大値を指定|

 エクステント情報はデータディクショナリで管理される。データディクショナリは
 SYSTEM表領域に格納されているため、新たなオブジェクトを作成しエクステントを
 獲得した時点でSYSTEM表領域にI/Oが発生する。

----    </description>
    <dc:date>2006-02-16T06:36:40+09:00</dc:date>
    <utime>1140039400</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/wiki8_m2/pages/24.html">
    <title>Oracleデータベース管理の概要</title>
    <link>https://w.atwiki.jp/wiki8_m2/pages/24.html</link>
    <description>
      1.11 Oracleインスタンスの構成
Oracleインスタンスはシステムグローバル領域(SGA)とバックグラウンドプロセスから構成される。

【システムグローバル領域(SGA)】
|データベースバッファキャッシュ|
|共有プール|
|REDOログバッファ|
|ラージプール|
|Javaプール|

【バックグラウンドプロセス】
|システムモニター(SMON)|
|プロセスモニター(PMON)|
|データベースライター(DBWn)|
|ログライター(LGWR)|
|チェックポイント(CKPT)|

----
1.14 Oracleデータベース管理用ツール

|ツール名|説明|
|Oracle Universal Installer(OUI)|Oracleソフトウェアのインストールに使用する&amp;br()GUIツール|
|Database Configuration Assistant(DBCA)|データベースを作成するGUIツール|
|Database Upgrade Assistant(DBUA)|既存DBから新しいOracleバージョンへアップグレード&amp;br()する際に使用するGUIツール|
|Oracle Net Manager(Net Manager)|Oracle Netのネットワークを構成するGUIツール|
|Oracle Enterprise Manager(EM)|ブラウザベースのデータベース&amp;br()管理ツール|
|SQL*Plus|データベース管理用のコマンドラインツール|
|iSQL*Plus|ブラウザベースのデータベース管理用コマンド&amp;br()ラインツール|
|Recovery Manager(RMAN)|データベースのバックアップ・リストア用ツール|
|Data Pump|データベース間のデータ転送ツール|
|SQL*Loader|外部ファイルをOracleにロードするツール|    </description>
    <dc:date>2006-02-14T00:53:03+09:00</dc:date>
    <utime>1139845983</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/wiki8_m2/pages/8.html">
    <title>Oracle10g Bronze DBA</title>
    <link>https://w.atwiki.jp/wiki8_m2/pages/8.html</link>
    <description>
      Oracle10g Bronze DBA

+[[Oracleデータベース管理の概要]]
+[[Oracleのセットアップ]]
+[[Oracle Enterprise Managerの使用]]
+[[ネットワークの構成]]
+[[インスタンスの管理]]
+[[データベース記憶領域の管理]]
+[[ユーザーの管理]]
+[[オブジェクトの管理]]
+[[バックアップとリカバリ]]
+[[データベースのチューニング]]
+[[総仕上げ問題]]    </description>
    <dc:date>2006-02-14T00:37:14+09:00</dc:date>
    <utime>1139845034</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/wiki8_m2/pages/16.html">
    <title>リレーショナルデータベースとSQL</title>
    <link>https://w.atwiki.jp/wiki8_m2/pages/16.html</link>
    <description>
      -1.5 リレーショナルデータベースの主な特徴
+SQL文を通し、DBへのアクセスと変更を行う。
+ユーザーはデータの物理的配置を知る必要はない。
+SQL文の中ではさまざまな演算子を使用できる。
 データベースとアプリケーションの変更が互いに影響を及ぼさない
----
-1.6 リレーショナルモデルの構成要素
+オブジェクトあるいはリレーションの集合
+リレーションを操作する演算子のセット
+正確性および一貫性のためのデータ整合性
----
-1.7 SQLの分類
SQLはリレーショナルデータベース用のデータベースアクセス言語である。
 階層型データベースやネットワークデータベースのアクセス言語は別にある
----
【SQLの分類】
|データ操作言語(DML)|SELECT, INSERT, UPDATE, DELETE, MERGE|
|データ定義言語(DDL)|CREATE TABLE, TRUNCATE TABLEなど|
|データ制御言語(DCL)|GRANT, REVOKEなど|
|トランザクション制御|COMMIT, ROLLBACK, SAVEPOINTなど|
----
-1.11 Oracleサーバーの構成
Oracleサーバー
+Oracleデータベース
+Oracleインスタンス
　2.1.　SGA(システムグローバル領域)
　2.2.　バックグラウンドプロセス    </description>
    <dc:date>2006-02-12T00:02:48+09:00</dc:date>
    <utime>1139670168</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/wiki8_m2/pages/21.html">
    <title>表の結合</title>
    <link>https://w.atwiki.jp/wiki8_m2/pages/21.html</link>
    <description>
      -6.1 SQL:1999準拠の結合構文
（１）3種類の結合
①クロス結合 (CROSS JOIN)
◆デカルト席を生成する結合。
◆結合条件は指定できない。
【例：CROSS JOIN句によるCROSS結合】
 SELECT * FROM emp CROSS JOIN dept;

②内部結合([INNER] JOIN)
◆結合条件を指定する。
◆結合に合う行だけが結合して戻される。
【例：[INNER] JOIN句による内部結合(INNERは省略可能。通常は省略する)
 SELECT * FROM emp JOIN DEPT ON (emp.deptno = dept.deptno);

③外部結合(LEFT | RIGHT OUTER JOIN)
◆結合条件を指定する。
◆条件に合わない行も戻すことができる。
◆左側外部結合、右側外部結合、完全外部結合の3種類がある。
【例：LEFT OUTER JOIN句による外部結合】
 SELECT * FROM emp LEFT OUTER JOIN dept on (emp.deptno = dept.deptno);

（２）結合の指定方法(ON句と自然結合)
内部結合と外部結合では、ON句または自然結合を使い結合条件を指定する。
①ON句
◆任意の結合条件を指定する。行の選択条件も指定できる。(従来のOracle独自構文のWHERE句と同じ)
②自然結合
◆2つの表の同じ列名の列(共通列)に同じ値を持つ行を結合する。

（３）等価結合と非等価結合
◆等価結合･･･結合条件に等価演算子(=)を使うもの
◆非等価結合･･･等価演算子以外の演算子(BETWEENなど)を使うもの

（４）自己結合
◆1つの表をあたかも別の表であるかのように結合する。
◆表別名を指定して表を区別する。

----
-6.8 USING句
USING句を使い、自然結合に使用する列を限定することができる。
【USING句を使うのに適している場合】
+データ型が異なる共通列が存在する場合。(そのまま自然結合するとエラーになる)
+共通列を使って自然結合すると不都合が生じる場合(共通列がNULL値であるなど)

----
-6.12 USING句
2つの表に共通列が複数存在する場合、全ての共通列で結合するならNATURAL JOIN句を使う。特定の列だけで結合したい場合、JOIN USING句を使う。
 自然結合で結合される列を表修飾するとエラーになる！
【JOIN USING句の基本構文】
SELECT　列名, 列名 ･･･ FROM　表１
JOIN　表2　USING(列名);
(例)EMP表とDEPT表に複数共通列があり、そのうちDEPTNO列だけに限定して結合する場合
 SELECT ename, deptno FROM emp JOIN dept USING(deptno);

----    </description>
    <dc:date>2006-02-05T15:52:50+09:00</dc:date>
    <utime>1139122370</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/wiki8_m2/pages/15.html">
    <title>表以外のスキーマオブジェクト</title>
    <link>https://w.atwiki.jp/wiki8_m2/pages/15.html</link>
    <description>
      -11.2 VIEW定義情報
ビューの定義情報はUSER_VIEWSデータディクショナリに格納されている。

----
-11.3 単一ビューの特徴(一部のみ)
+データのグループ(GROUP BY句)を含まない。
+関数([[グループ関数]]など)を含まない。
+ビューを通してINSERT, UPDATE, DELETE操作が実行できる。
----

-11.4 複合ビューの特徴(一部のみ)
+データのグループ(GROUP BY句)を含む。
+関数(グループ関数など)を含む。
+条件付で、ビューを通してINSERT, UPDATE, DELETE操作が実行できる。

----
-11.5 CREATE VIEW構文
【CREATE VIEW文の基本構文】
CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW ビュー名
[(列名, 列名, ･･･)]
AS [[副問合せ]]
[WITH CHECK OPTION [CONSTRAINT 制約名]]
[WITH READ ONLY [CONSTRAINT 制約名]];

◆OR REPLACE ･･･ 既存のビューを更新する。
◆FORCE | NOFORCE
　FORCE  :元表が存在しない場合でもビューを作成する。
　NOFORCE:元表が存在する場合のみビューを作成する。(デフォルト)
◆列名･･･ビューの列名を元表から変える場合に指定する。
◆WITH CHECK OPTION ･･･ 整合性チェックを実行する制約。
◆WITH READ ONLY ･･･ ビュー経由のDML操作を禁止する制約。

----
-11.17 ビューを通した行の削除
1つの表のみを元表とするビューは、ビューを通して行を削除できるが、以下の要素が含まれる場合は削除できない。
+グループ関数
+GROUP BY句
+DISTINCTキーワード
+擬似列ROWNUMキーワード
----

-11.18 ビューを通した行の更新
1つの表のみを元表とするビューは、ビューを通して行を更新できるが、以下の要素が含まれる場合は更新できない。
+グループ関数
+GROUP BY句
+DISTINCTキーワード
+擬似列ROWNUMキーワード
+式によって定義された列
 削除の場合と比べ、「式によって定義された列」が加わっていることに注意!

----
-11.19 ビューを通した行の挿入
1つの表のみを元表とするビューは、ビューを通して行を挿入できるが、以下の要素が含まれる場合は挿入できない。
+グループ関数
+GROUP BY句
+DISTINCTキーワード
+擬似列ROWNUMキーワード
+式によって定義された列
+ビューによって選択されていないNOT NULL制約つきの列が元表にある。
 削除の場合と比べ、「式によって定義された列」
 「NOT NULL制約つきの･･･」が加わっていることに注意!

----
-11.25 順序
順序とは、一意な数値を自動的に生成するオブジェクトである。順序の概要は次のとおり。
+一意な数値を自動的に生成する。
+複数ユーザーが共有可能なオブジェクトである。&amp;br() →順序はオブジェクトであるため特定のユーザーによって所有されるが、順序に対するSELECTオブジェクト権限を他ユーザーに与えることで共有できる。
+通常、主キー地の作成に使用される。
+プログラムのコードを置き換える。(開発期間の短縮に役立つ)
+メモリキャッシュ機能により、数値の生成処理のパフォーマンスが向上する。
+1つの順序を複数の表で利用できる。(順序と表はそれぞれ独立しているため)
+連番は保証されない。
 トランザクションがロールバックされても、順序値は
 ロールバックされないため、欠番が発生する。

----
-11.26 順序オブジェクトの作成方法
【CREATE SEQUENCE文の基本構文】
CREATE SEQUENCE (順序名)
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}];

【オプションの説明】( )内はデフォルト値
|属性|デフォルト|意味|
|INCREMENT BY n|1|増分値n|
|START WITH n|1|初期値n|
|MAXVALUE n / NOMAXVALUE|NOMAXVALUE|最大値n|
|MINVALUE n / NOMINVALUE|NOMINVALUE|最小値n|
|CYCLE / NOCYCLE|NOCYCLE|最大値・最小値に達したときの動作&amp;BR()CYCLE  :最大値(最小値)に達すると、最小値(最大値)から繰り返す&amp;BR() NOCYCLE:指定値以上の順序を生成するとエラーになる。|
|CACHE n / NOCACHE|CACHE 20|事前にメモリに順序番号を生成する。パフォーマンスの向上になる。&amp;BR()NOCACHEの場合はキャッシュしない。|

----
-11.31 順序値の生成・確認
 ◆順序名.NEXTVAL擬似列･･･次の一意名順序値を戻す。
 ◆順序名.CURRVAL擬似列･･･現在の順序値を戻す。現セッションの中で NEXTVALを発行して生成した一番最近の順序値を戻す。現セッション中で一度もNEXTVALを使っていない場合、エラーになる。

 NEXTVAL/CURRVALの指定可能箇所】
 1.SELECT文のSELECT句(SELECT文の副問合せSELECT句では不可)
 2.INSERT文の中の副問合せのSELECT句
 3.INSERT文のVALUES句
 4.UPDATE文のSET句

 NEXTVAL/CURRVALは次の箇所では指定できない
 1.ビューのSELECT句
 2.GROUP BY句、DISTINCT句、HAVING句またはORDER BYを含むSELECT文
 3.SELECT文、DELETE文またはUPDATE文の中の副問合せ
 4.CREATE TABLE文またはALTER TABLE分の中のDEFAULT式

----
-11.37 順序オブジェクトの変更方法
【ALTER SEQUENCE文の基本構文】
ALTER SEQUENCE (順序名)
[INCREMENT BY n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}];

【ALTER SEQUENCE文のポイント】
+初期値を変更できない。変えたい場合、順序を削除し再作成する必要がある。
+順序を変更できるのは、順序の所有者、ALTER ANY SEQUENCEシステム権限またはALTERオブジェクト権限を持つユーザー。
+以降の番号のみが影響を受ける。
+妥当性検査が実行される。&amp;BR()(例)番号を昇順に生成する場合、現在の番号よりも小さいMAXVALUEはエラーになる。

----
-11.40 順序オブジェクトの削除方法
【DELETE SEQUENCE文の基本構文】
DROP SEQUENCE 順序名;

----
-11.42 索引
索引とは、表データへのアクセスを高速化するためのオブジェクトである。
+列(または列の組み合わせ)に対して索引を作成する。
+索引データには、キーの値とそのキーの値を持つ行へのポインタ(ROWID)が格納されている。このポインタを使い、ダイレクトに行にアクセスする。
+索引が作成されていなければ全表走査が行われる。
+索引を使うことで、全表走査よりディスクI/Oの回数を減らし、アクセスを高速化する。
+対応する表から独立している。
+スキーマオブジェクトである。
+Oracleサーバーによって自動的に使用・保守される。(表のキーの値が更新されると、索引も自動的に更新される)
+表を削除すると、その表に作成された索引も削除される。

----
-11.44 索引の作成方法
+主キー制約または一意制約を定義すると、その列(または列の組み合わせ)に対して一意索引が自動的に作成される。
+CREATE INDEX文を使い、列(または列の組み合わせ)に対して非一意索引を作成する。

----
-11.46 CREATE INDEX文
【CREATE INDEXの基本構文】
CREATE INDEX 索引名
ON 表名(列名[,列名]･･･)

----
-11.47 一意索引の制約
◆一意索引を定義した列に対して、NULL値を除き同じ値は禁止される。

----
-11.48 索引の作成に適さない条件
+データ量の少ない表である。
+問合せの条件としてその列が使用されることがあまりない。
+全行の2～4％以上の行を検索する問合せを頻繁に実行する。
+表が頻繁に更新される。
+列に含まれる値の範囲が狭い。

----
-11.49 索引の作成に適した条件
+列が多数のNULL値を含み、かつNULLでない値を検索する。
+WHERE句または結合条件で1つ以上の列が一緒に頻繁に使用される。
+データ量の多い表である。
+全行の2～4％未満の行を検索する問合せを頻繁に実行する。
+表内の列が、広い範囲の値を含む。

----
-11.50 DROP INDEX文
【DROP INDEX文の基本構文】
DROP INDEX 索引名;

----
-11.52 シノニム
【プライベートシノニム】
◆シノニムを作成したユーザーだけが使用できる。
◆スキーマオブジェクトであるため、同一スキーマ内で他のオブジェクト名と重複不可。

【パブリックシノニム】
◆全ユーザーが使用できるシノニム。
◆システムの中の全てのパブリックシノニムの中で一意でなければならない。

----
-11.54 CREATE SYNONYM文
【CREATE SYNONYM文の基本構文】
 ◆プライベートシノニム･･･CREATE SYNONYM シノニム名 FOR オブジェクト名;
 ◆パブリックシノニム･･･CREATE PUBLIC SYNONYM シノニム名 FOR オブジェクト名;

----
-11.55 シノニム作成時の注意点
シノニムとアクセス権限は全く別に扱われる。
 プライベート／パブリックシノニムを作成しても、最初はアクセス権限が
 ないためアクセスできない。別途設定する必要がある。

----
-11.62 DROP SYNONYM文
【DROP SYNONYM文の基本構文】
 ◆プライベートシノニム･･･DROP SYNONYM シノニム名;
 ◆パブリックシノニム･･･DROP PUBLIC SYNONYM シノニム名;    </description>
    <dc:date>2006-02-05T14:13:47+09:00</dc:date>
    <utime>1139116427</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/wiki8_m2/pages/23.html">
    <title>集合演算子</title>
    <link>https://w.atwiki.jp/wiki8_m2/pages/23.html</link>
    <description>
      -8.1 集合演算子
集合演算子は、2つ以上の問合せ(複合問合せ)結果から1つの結果を生成するものである。

◆文1：SELECT * FROM X; ･･･B A A C の4行を戻す
◆文2：SELECT * FROM Y; ･･･B C の2行を戻す

【集合演算子の機能と例】
|集合演算子|機能|重複|ソート|集合演算結果|最終結果|
|文1 &amp;br()UNION &amp;br()文2;|重複を含まない&amp;BR()全ての行|NO|YES|①全ての行：B A A C B C &amp;br() ②ソート：A A B B C C &amp;br() ③重複を排除：A B C|A B C|
|文1&amp;BR()UNION ALL&amp;BR()文2|重複を含む全ての行|YES|NO|①全ての行|B A A C B C|
|文1&amp;BR()INTERSECT&amp;BR()文2|両方の問合せによって&amp;BR()戻される重複を&amp;BR()含まない全ての行|NO|YES|①両方の問合せで戻さ&amp;BR()れる全ての行：B C&amp;BR()②ソート：B C&amp;BR()③重複を排除：B C|B C|
|文1&amp;BR()MINUS&amp;BR()文2|文1と文2の結果の&amp;BR()差分で重複を含まない&amp;BR()全ての行|NO|YES|①文1と文2の結果の&amp;BR()差分の全ての行：A A&amp;BR()②ソート：A A&amp;BR()③重複を排除：A|A|
 UNION ALL以外は重複処理、ソート処理を行う。
 UNION ALLのみ重複処理、ソート処理を行わない。

 【NULLの重複チェック】
 ◆NULLも1つの値として扱われる。
 ◆重複を排除する場合、複数のNULLは1つだけのNULLを戻す。
 ◆ソートの場合はNULLは無限大と等しい。

----
-8.2. 副問合せのSELECT句の規則
①データ型の種類の一致
各SELECT句の対応する列のデータ型の種類(文字列型、数値型、日付型など)は同じでなければならない。
 ×：CHAR(文字列型)とDATE(日付型)
 ○：CHAR(文字列型)とVARCHAR2(文字列型)

②選択する列の数
各SELECT句の選択リストの数は一致していないとエラーになる。

③列名
列名は異なっていても構わない。
【列名についての注意点】
◆1番目の問合せのSELECT句の列名または別名が、出力結果の列見出しとして使われる。
◆ORDER BY句に指定できる列名も、1番目の問合せのSELECT句の列名または列別名のみ。

④列のサイズ
列のサイズは異なっていても構わない。

----
-8.11 集合演算子の優先順位
+UNION、UNION ALL、INTERSECT、MINUSの優先順位は同じである。
+左(上)から右(下)の順に評価される。
+カッコがあれば、カッコ内が優先される。    </description>
    <dc:date>2006-02-05T12:41:27+09:00</dc:date>
    <utime>1139110887</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/wiki8_m2/pages/22.html">
    <title>副問合せ</title>
    <link>https://w.atwiki.jp/wiki8_m2/pages/22.html</link>
    <description>
      -7.1 副問合せの使用可能な句
◆副問合せは次の句の中で使用できる。
+FROM句
+WHERE句
+HAVING句
----

-7.2 副問合せ使用のガイドライン
+副問合せはカッコで囲む。
+副問合せは比較条件の右側に置く(読みやすいようにするため。左側においても問題はない)
+単一行比較条件と複数行比較条件の2種類の比較条件を使用できる。

----
-7.4 副問合せについて
①単一行比較条件と複数行比較条件
比較条件には、比較できる行数の観点から、単一行比較条件と複数行比較条件がある。
【単一行比較条件（&lt;, &lt;=, &gt;, &gt;=, &lt;&gt;, = )】
◆副問合せの結果、データが1件だけ戻される場合に比較できる。
◆副問合せの結果としてデータが複数戻されるとエラーになる。
（例）JONESという名前の社員が2人以上いる場合にエラーになる
 SELECT ename FROM emp WHERE deptno=(SELECT deptno FROM emp WHERE ename=&#039;JONES&#039;);

【複数行比較条件(IN, ALL, ANY)】
◆副問合せの結果、データが1件あるいは複数戻される場合に比較できる。
　(上のエラー例の比較演算子=をINにすると、エラーにならず正しく実行できる)

②単一行副問合せと複数行副問合せ
副問合せには、単一行を戻す問合せと複数行を戻す問合せがある。
【単一行副問合せ】
◆問合せの結果、データが1件だけ戻される。
◆単一行比較条件、複数行比較条件のどちらでも使える。
（例）単一GY方比較条件を使った単一行副問合せ
 SELECT ename FROM emp WHERE deptno=(SELECT deptno FROM emp WHERE empno=12345);

【複数行副問合せ】
◆問合せの結果、データが複数行戻される。
◆複数行副問合せの中で単一行比較条件を使うとエラーになる。
　そのため、必ず複数行比較条件を使わなければならない。
（例）複数行比較条件を使った複数行副問合せ
 SELECT ename FROM emp WHERE deptno IN (SELECT deptno FROM emp WHERE sal &gt; 3000);

----
-7.8 複数行比較条件ALL, ANY
+=ANY(値のリスト)･･･リスト内のいずれかと一致する(INと同じ意味)
+&gt;ANY(値のリスト)･･･リストの最小値より大きい。
+&lt;ANY(値のリスト)･･･リストの最大値より小さい。
+&gt;ALL(値のリスト)･･･リストの最大値より大きい。
+&lt;ALL(値のリスト)･･･リストの最小値より小さい。

 sal &gt; ANY(2000, 1000, 3000)はsal &gt; 1000 と同じ。

----
-7.11 副問合せにNULLが戻される場合の比較条件
副問合せからNULLが戻されるとき、NOT IN句や&lt;&gt;ALLの比較条件に注意する。

empno NOT IN(mgr1, mgr2, ..., NULL)となった場合、empno &lt;&gt; mgr1 AND empno &lt;&gt; mgr2 AND ... AND empno &lt;&gt; NULLと同じである。この条件の中ではNULLと比較するので結果はNULLである。また、ANDによって条件を結び付けているので、一つでもNULLがあれば条件全体がNULLになる。
 IS NOT NULLを追加してNULLを戻さないようにすればデータは戻される。

----
-7.18 副問合せの使用法
副問合せはFROM句、WHERE句、HAVING句以外に、次のようなSQL文でも使える。
【UPDATE文 SET句】
以下の文は、社員番号1010の社員のsalを社員番号1020のsalに更新する。
 UPDATE emp SET sal=(SELECT sal FROM emp WHERE empno=1020) WHERE empno=1010;

【CREATE TABLE ～AS SELECT構文】
以下の文は、emp表から部門番号30に所属する社員だけのemp30表を作成する。
 CREATE TABLE emp30 AS SELECT empno, ename, sal FROM emp WHERE deptno=30;

【INSERT ～ SELECT文】
以下の文は、emp表の社員番号1010の社員データをemp30表へコピーする。
 INSERT INTO emp30 SELECT empno, ename, sal FROM emp WHERE empno=1010;

【ビューを作成するCREATE VIEW ～ AS SELECT】
以下の文は、emp表から部門番号30に所属する社員だけのempview30ビューを作成する。
 CREATE VIEW empview30 AS SELECT * FROM emp WHERE deptno=30;    </description>
    <dc:date>2006-02-05T04:15:24+09:00</dc:date>
    <utime>1139080524</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/wiki8_m2/pages/20.html">
    <title>グループ関数</title>
    <link>https://w.atwiki.jp/wiki8_m2/pages/20.html</link>
    <description>
      －5.1 グループ関数の概要
+グループ関数は第2レベルまでネストさせることができる。
+SELECT句、ORDER BY句、HAVING句で指定できる。
 WHERE句、GROUP BY句では使用できない

----
-5.4 COUNT関数
◆COUNT(JOB) はJOB列のNULL以外の全ての行数を戻す。
◆COUNT(*)はJOB列のNULLを含む全ての行数を戻す。

----
-5.18 グループ関数の引数の数
グループ関数で指定できる引数(列名、式、値など)は1つのみ。複数を指定するとエラーになる。
【エラーにならない例】
SELECT AVG(col1), AVG(col2), AVG(col3) FROM ...
SELECT AVG(col1 + col2 + col3) FROM ...
SELECT AVG(col1) + AVG(col2) + AVG(col3) FROM ...

【エラーになる例】
SELECT AVG(col1, col2, col3) FROM ...

----    </description>
    <dc:date>2006-02-05T01:01:16+09:00</dc:date>
    <utime>1139068876</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/wiki8_m2/pages/19.html">
    <title>単一行関数</title>
    <link>https://w.atwiki.jp/wiki8_m2/pages/19.html</link>
    <description>
      -4.2 単一行関数のネスト
単一行関数のネストの深さに制限はない
 [[グループ関数]]のネストは第2レベルまで

----
-4.4 文字関数
|関数|実行例|意味|結果|
|INITCAP|INITCAP(&#039;ORACLE Master&#039;)|指定文字列の先頭を大文字に、&amp;BR()以降を小文字に変換|Oracle Master|
|INSTR|INSTR(&#039;GoodMorning&#039;)|指定文字列の数値位置を表示|5|
|LPAD|LPAD(&#039;Good&#039;,6,&#039;*&#039;)|左に文字列を埋め込む|**Good|
|RPAD|RPAD(&#039;Good&#039;,6,&#039;*&#039;)|右に文字列を埋め込む|Good**|
|TRIM|TRIM(&#039;G&#039; 　 FROM　&#039;GoodMorning&#039;)|先行／後続文字列の切捨て|oodMorning|

----
-4.9 TRUNC関数の切捨て桁位置
TRUNC関数では、指定された数値の位置の1つ右の桁を切り捨てる。
|TRUNC(123.456,2)|少数点以下2桁目の一つ右、つまり小数点以下3桁目を切り捨て|123.46|
|TRUNC(123.456,-2)|小数点以下-2桁の一つ右、つまり10の位を切り捨て|100|
 ROUND関数も同様の桁位置を四捨五入する

----
-4.13 日付データ操作のポイント
+日付-日付=日数となる
+日付+日付はエラーになる

----
-4.14 日付関数
|関数|実行例|意味|結果|
|MONTH_BETWEEN|MONTH_BETWEEN(&#039;2000-08-25&#039;,&#039;2000-05-10&#039;)|日付間の月数|3.48387097|
|ADD_MONTH|ADD_MONTHS(&#039;2000-08-25&#039;,-3)|月数を加減算|2000-05-25|
|NEXT_DAY|NEXT_DAY(&#039;2002-08-22&#039;,&#039;月曜日&#039;)|指定曜日の次の日付|2002-08-26|
|LAST_DAY|LAST_DAY(&#039;2002-02-01&#039;)|指定月の最終日|2002-02-28|

----
-4.15 NEXT_DAY関数の第2引数
NEXT_DAY関数の第2引数として、曜日を文字列で指定するだけでなく、数値で指定することもできる。その場合、日曜が1、月曜日が2、最後の土曜日が7である。
 NEXT_DAY(&#039;2002-08-22&#039;,&#039;月曜日&#039;)とNEXT_DAY(&#039;2002-08-22&#039;,1)は同じ意味

----
-4.17 日付についてのROUND／TRUNC
日付についてもROUNDまたはTRUNC関数を使用できる。
第2引数を省略した場合、時間を四捨五入(切捨て)する[&#039;DAY&#039;を指定するのと同じ]
◆日を四捨五入
 ROUND(&#039;2002-07-16&#039;,&#039;MONTH&#039;)･･･(結果)2002-08-01
◆月を切り捨て
 TRUNC(&#039;2002-07-16&#039;,&#039;YEAR&#039;)･･･(結果)2002-01-01

----
-4.19 日付書式要素
|年||
|YYYY|4桁の年|
|YY|年の下2桁|
|月||
|MM|2桁の月(01～12)|
|MON|月の省略形(JAN～DEC)|
|MONTH|完全な月(JANUARY～DECEMBER)|
|日||
|DD|日(01～31)|
|曜日||
|DY|曜日の省略形(SUN～SAT)|
|DAY|完全な曜日(SUNDAY～SATURDAY)|
|時間||
|HH|12時間制の時間|
|HH24|24時間制の時間|
|MI|分|
|SS|秒|
|AMまたはPM|正午標識|
|A.M.またはP.M.|ピリオド付きの正午標識|

----
-4.21 FM修飾子
FMとはFill mode(埋め込みモード)のことである。
◆FM修飾子はTO_CHAR関数の中で指定することができる。
◆日付書式を修飾した場合、埋め込み空白と先行ゼロを回避する。
◆FMは複数指定できる。1つめのFM以降は回避を有効、2つめ以降は無効、3つめ以降は有効というように、回避の有効／無効を切り替える。

【日付書式の例(09-03-04 09:15:00)】
|fm修飾子の有無|書式|表示|
|なし|MM-DD-RR HH24:MI:SS|09-03-04 09:15:00|
|あり|fmMM-DD-RR HH24:MI:SS|9-3-4 9:15:0|
|あり(複数)|fmMM-DD-RR fmHH24:MI:fmSS|9-3-4 09:15:0|

【書式DDSPTH／Ddspth】
書式DDSPTHは日付を大文字フルスペルの序数で表示する。(例：FIRST)
書式Ddspthは先頭だけを大文字にし、古スペルの序数で表示する。(例：First)

----
-4.22 FX修飾子
FXとはFormat exact(厳密な書式一致)のことである。
◆FX修飾子はTO_DATE関数の中で指定できる。
◆文字引数が日付書式と厳密に一致しなければならないことを指定する(大文字・小文字を除く)
→通常は無視される、文字引数の余分な空白や選考行ゼロなどが、FXによりエラーになる。

----
-4.28 TO_DATE関数での月日／時間の省略
◆TO_DATE関数にて、月日を省略して日付データを入力すると、月は当月、日は1日になる。
◆時間を省略した場合、デフォルトで午前0時0分0秒となる。
◆HH書式では深夜12時はAM12:00、正午はPM12:00となる

----
-4.31 NULLを処理できる関数
|関数|実行例|意味|
|NVL|NVL(comm, 0)|comm列がNULL値の場合は0を戻す|
|NVL2|NVL2(comm, sal + comm, 0)|comm列がNULLの場合は0、NULL以外の場合はsal+comm|
|NULLIF|NULLIF(ename, mail)|enameとmailが等しい場合はNULL、等しくない場合はename|
|COALESCE|COALESCE(comm, sal, 15)|リストの最初のNULLでない式を戻す|
 DECODE関数はNULLを扱うことはできない！
◆DECODE関数と同じ意味でCASE文を使うこともできる
CASE　[式]　WHEN 条件1 THEN 値1
　　　　　　　　　[WHEN 条件2 THEN 値2 ･･･]
　　　　　　　　　[ELSE デフォルト値] END
----    </description>
    <dc:date>2006-02-05T00:33:11+09:00</dc:date>
    <utime>1139067191</utime>
  </item>
  </rdf:RDF>
