<?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/system818/">
    <title>system818 @ ウィキ</title>
    <link>http://w.atwiki.jp/system818/</link>
    <atom:link href="https://w.atwiki.jp/system818/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>system818 @ ウィキ</description>

    <dc:language>ja</dc:language>
    <dc:date>2008-10-09T16:38:05+09:00</dc:date>
    <utime>1223537885</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/system818/pages/11.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/system818/pages/40.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/system818/pages/38.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/system818/pages/37.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/system818/pages/36.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/system818/pages/35.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/system818/pages/34.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/system818/pages/33.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/system818/pages/32.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/system818/pages/39.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/system818/pages/11.html">
    <title>トップページ</title>
    <link>https://w.atwiki.jp/system818/pages/11.html</link>
    <description>
      ※現在工事中です!
しばらくお待ちください。

【参照リンク】

[[SQLの窓&gt;http://hp.vector.co.jp/authors/VA003334/]]
[[個人ホームページ&gt;http://wristwatch.no.land.to/]]

【資格対策(Oracle Bronze10g)】

[[Oracle Bronze10g SQL基礎I講座(I)]]
[[Oracle Bronze10g SQL基礎I講座(Ⅱ)]]
[[Oracle Bronze10g SQL基礎I講座(Ⅲ)]]

[[Oracle Bronze10g SQL基礎I講座(Ⅳ)]]
[[Oracle Bronze10g SQL基礎I講座(Ⅴ)]]
[[Oracle Bronze10g SQL基礎I講座(Ⅵ)]]

[[Oracle Bronze10g SQL基礎I講座(Ⅶ)]]
[[Oracle Bronze10g SQL基礎I講座(Ⅷ)]]
[[Oracle Bronze10g SQL基礎I講座(Ⅹ)]]

[[SQLリファレンス辞典]]


[[顧客カード(X-point)&gt;http://localhost/xpoint/form.do?act=newEnt&amp;fid=3&amp;domcd=trial&amp;domtoken=XPZynqZsK7Nw2&amp;resize=true]]

[[案件シート(X-point)&gt;http://localhost/xpoint/form.do?act=newEnt&amp;fid=4&amp;domcd=trial&amp;domtoken=XPZynqZsK7Nw2&amp;resize=true]]
[[テスト(X-point)&gt;http://localhost/xpoint/form.do?act=newEnt&amp;fid=91&amp;domcd=trial&amp;domtoken=XPZynqZsK7Nw2&amp;resize=true]]    </description>
    <dc:date>2008-10-09T16:38:05+09:00</dc:date>
    <utime>1223537885</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/system818/pages/40.html">
    <title>Oracle Bronze10g SQL基礎I講座(Ⅴ)</title>
    <link>https://w.atwiki.jp/system818/pages/40.html</link>
    <description>
      **第5章 グループ関数について

***5.1 グループ関数とは

■グループ関数では、NULL値は対象から除外されます。
■NULL値の扱いの例外としては、COUNT(*)の場合、NULL値もカウントします。
■AVG,COUNT,SUM,STDDEV,VARIANCE関数では、数値型データのみを扱う。

※VARIANCE関数
|(構文)　&amp;bold(){VARIANCE( 数値項目 )}|
(説明)　引数で指定した数値項目の、分散を返します。
　　　　　入力レコードが1行の場合は、０を返します。

※STDDDEV関数
(構文) |&amp;bold(){STDDEV( 数値項目 )}|
(説明) 引数で指定した数値項目の標準偏差を返します。

----

***5.2 AVG関数とは

※構文※
|&amp;bold(){AVG( 列名 )}|

※説明※
NULL値の行は、対象列なので、平均値を求めるデータには含めません。

----

***5.3 COUNT関数とは

※構文※
|&amp;bold(){COUNT({ * | 列名 })}|

※説明※
･count(*)を指定したときは、NULL値の行もカウントします。
･count(列名)を指定したとき、NULL値は、行のカウント対象外となります。

----

***5.4 sum関数

※構文※
|&amp;bold(){sum(列名)}|

※説明※
NULL値の行は、合計の計算対象外です。

----

***5.5.1 max関数

※構文※
|&amp;bold(){MAX(列名)}|

※説明※
列のデータ型は、数値だけでなく、文字型データ、日付型データでも使用可能。

----

***5.5.2 min関数

※構文※
|&amp;bold(){MIN(列名)}|

※説明※
列のデータ型は、数値だけでなく、文字型データ、日付型データでも使用可能。

----

***5.6 GROUP BY句とグループ関数

･グループ関数は、SELECT文では、SELECT列、HAVING句、ORDER BY句で使用できます。
･グループ関数を、GROUP BY句、WHERE句に記述することはできません。

----    </description>
    <dc:date>2008-08-07T15:06:39+09:00</dc:date>
    <utime>1218089199</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/system818/pages/38.html">
    <title>Oracle Bronze10g SQL基礎I講座(Ⅹ)</title>
    <link>https://w.atwiki.jp/system818/pages/38.html</link>
    <description>
      *第10章 列について

**10.1 列の追加
***○ALTER TABLE文 ADD句
【機能】
表に列を追加

【構文】
|&amp;bold(){ALTER TABLE 表名 ADD 列名 データ型 [DEFAULT デフォルト値];}|

【説明】
･デフォルトを指定して列を追加したい場合、既存行の追加列にはデフォルト値が設定される。
･デフォルトを指定したい場合、既存行の追加列にはNULLが設定される。

----

**10.2 列の変更
***○ALTER TABLE文 MODIFY句
【機能】
列を修正する

【構文】
|&amp;bold(){ALTER TABLE 表名 MODIFY 列名 データ型 [DEFUALT デフォルト値 [NOT NULL ┃ NULL]];}|
|&amp;bold(){ALTER TABLE 表名 MODIFY (列名 データ型[,列名 データ型..]);}|

【説明】
(1)列の拡大
･既存列のデータ長を拡大する変更、数値精度の拡大変更は可能。

(2)列の縮小
･列にデータがない場合(データがすべてNULLの場合)は可能。
･列にデータがある場合でも、既存列のデータに影響しない縮小変更は可能。
固定長型では、縮小することはできません。

(3)列のデータ型の変更
･データがない場合又は変更する列がすべてNULLならば、データ型の変更は可能。
･既存列にデータがある場合でも、既存データに影響しないデータ型の変更は可能。

■デフォルト値の追加又は変更
表)
|処理|説明|
|列の追加でデフォルト値を設定|既存行には、デフォルト値が格納される|
|列の変更でデフォルト値を設定|既存行は、そのままで新規に追加されるデータからデフォルト値が格納される|

----

**10.3 列の未使用

***○ALTER TABLE文 SET UNUSED(COLUMN)句
【機能】
列に未使用マークを設定

【構文】
|&amp;bold(){ALTER TABLE 表名 SET UNUSED COLUMN 列名;}|
|&amp;bold(){ALTER TABLE 表名 SET UNUSED (列名 [,列名...]);}|

【説明】
･列に未使用マークが付けられていますが、列定義自体は、表からは削除されません。
･未使用マークの列名と同じ列名を定義することができます。
･未使用列を削除するには、ALTER TABLE文のDROP句を使用します。
･表には、未使用の列数がいくつあるかは、ビューUSER_UNUSED_COL_TABSで調べることができます。

----

**10.4 未使用マークの削除

***○ALTER TABLE文 DROP UNUSED COLUMNS句
【機能】
未使用マークの付いた列をすべて削除します。

【構文】
|&amp;bold(){ALTER TABLE 表名 DROP UNUSED COLUMNS;}|

【説明】
･未使用マークがついたすべての列を表から削除します。
･未使用マークの列が削除されて、ディスク領域にスペースができる。

----

**10.5 列名の変更

***○ALTER TABLE文 RENAME COLUMN句
【機能】
列名を変更します。

【構文】
&amp;bold(){ALTER TABLE 表名 RENAME COLUMN 旧列名 TO 新列名;}

【説明】
･すでに表内で使用されている列名に変更は不可。
･列の制約は有効です。(主キー制約、一意制約、参照整合制約、CHECK制約等)

----

**10.6 列の削除

***○ALTER TABLE文 DROP (COLUMN)句
【機能】
表から列を削除します。

【構文】
|&amp;bold(){ALTER TABLE 表名 DROP COLUMN 列名 [CASCADE CONSTRAINTS];}|
|&amp;bold(){ALTER TABLE 表名 DROP (列名、列名...)[CASCADE CONSTRAINTS];}|

※&amp;bold(){CASCADE CONSTRAINTS}を指定すると、削除する列を参照する
外部キー制約やすべての複数列制約を削除することができます。

【説明】
･表から指定列を削除します。
･表の最後の列は、削除できない。
･列にデータが格納されていても削除できる。
･削除列が、参照整合制約の親キーの場合、削除できない。
･未使用マークの付いている列も削除されます。

----

**10.7 列のデフォルト値
■&amp;bold(){デフォルト値を指定して列を追加した場合}
･INSERT文で、データを追加する場合、列値を指定しない列には、NULL値が格納される。
･列にデフォルト値を指定すると列に値が入力されない場合に、NULL値の代わりにデフォルト値が格納される。

■&amp;bold(){既存列にデフォルト値を指定した場合}
･既存行にデフォルト値を指定した場合またはデフォルト値を変更した場合、既存データには、変更なし。
･新規データの追加からデフォルト値が使用される。

----

**10.8 列のコメント
***○COMMENT ON COLUMN文
【構文】
|COMMENT ON COLUMN [表名.]列名 IS &#039;コメント内容&#039;;|

【説明】
･コメント内容は、最大は4000バイトまで。
･コメントを追加するには、自分のスキーマのオブジェクトか、COMMENT ANY TABLEシステム権限が必要です。

----

**10.9 コメント情報
(表)コメント情報ビューの一覧
|ビュー|説明|備考|
|ALL_COL_COMMENTS|自分がアクセスできる表又はビューの列のコメント||
|USER_COL_COMMENTS|自分が所有する表またはビューの列のコメント||
|ALL_TAB_COMMENTS|自分がアクセスできる表またはビューのコメント||
|USER_TAB_COMMNETS|自分が所有する表またはビューのコメント||    </description>
    <dc:date>2008-08-06T10:42:44+09:00</dc:date>
    <utime>1217986964</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/system818/pages/37.html">
    <title>Oracle Bronze10g SQL基礎I講座(Ⅸ)</title>
    <link>https://w.atwiki.jp/system818/pages/37.html</link>
    <description>
      *第9章 表について

**9.1 表の作成
***○CREATE TABLE文

【機能】
表を作成します。

【構文】
#html2(){{{{{{
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;table border=&quot;1&quot;&gt;
&lt;tr&gt;&lt;td&gt;create table 表名(&lt;br&gt;
列名 データ型 [DEFAULT 式][NOT NULL]&lt;br&gt;
列名 データ型 [DEFAULT 式][NOT NULL]&lt;br&gt;
...&lt;br&gt;
列名 データ型 [DEFAULT 式][NOT NULL]
&lt;/body&gt;
&lt;/html&gt;

}}}}}}

【説明】
･CREATE TABLE権限と領域が必要。
･列には、NULLを格納することができる。(NULLの格納を禁止するときには、NOT NULLを指定)

&amp;bold(){※CREATE TABLE文でAS句を使用して、他の表から表を作成することができる。}

***○CREATE TABLE文(副問合せ)

【機能】
副問合せにより表を作成します。

【構文】
#html2(){{{{{{
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;table border=&quot;1&quot;&gt;
&lt;tr&gt;&lt;td&gt;create table 表名(&lt;br&gt;
[(列名 [DEFAULT 式][NOT NULL],&lt;br&gt;
列名 [DEFAULT 式][NOT NULL],&lt;br&gt;
...&lt;br&gt;
列名 [DEFUALT 式][NOT NULL])]&lt;br&gt;
AS (副問合せ);&lt;/td&gt;&lt;/tr&gt;
&lt;/body&gt;
&lt;/html&gt;
}}}}}}

【説明】
･副問合せの表を元に新規の表を作成します。
&amp;bold(){･副問合せの表の主キー、一意キー、外部キー、CHECK制約、索引、列のデフォルト値は、継承されません。}
&amp;bold(){･表定義で指定できるのは、列名、デフォルト値、整合性で、データ型は指定できない。}
･作成する表の列名は、副問合せの表の列名を継承、指定することができる。
･ASの後の副問合せの前後のカッコは、オプションで省略可能です。

----

**9.2 表の変更
※表の変更には、表の所有者又は、ALTER権限またはALTER ANY TABLEシステム権限が必要。

～後程詳しく説明する内容と重複するので省略します。～

----

**9.3 表の変更
***○DROP TABLE文

【機能】
表を削除します。

【構文】
|&amp;bold(){DROP TABLE 表名 [CASCADE CONSTRAINTS][PURGE];}|

【説明】
&amp;bold(){･表に関連するビュー、シノニムは。削除されませんが、無効になる。}
&amp;bold(){･表に関連付けられた索引、トリガー、制約も削除される。}
･表を削除するには、表の所有者であるか、DROP ANY TABLE権限が必要。
･PURGE句を指定すると削除した表をゴミ箱に格納しないで、直接削除します。
(指定しないで削除した表は、FLASHBACK TABLE文で戻すことが可能)

----

**9.4 表名の変更

***○RENAME文
･自分が作成した表名を変更するには、RENAME文を使用します。

【機能】
･オブジェクト名を変更します。

【構文】
|&amp;bold(){RENAMEもとのオブジェクト名 TO 新しいオブジェクト名}|

【説明】
&amp;bold(){･表名、ビュー名、順序名、プライベート･システム名を変更することができます。}
&amp;bold(){･変更に伴い整合性制約、索引および権限付与も変更になります。}
･RENAME文を実行できるのは、オブジェクトの所有者です。

***○ALTER TABLE文 RENAME句
【機能】
表名を変更

【構文】
|&amp;bold(){ALTER TABLE [スキーマ名.]表名 RENAME TO 新しい表名;}|

【説明】
&amp;bold(){･ビュー、シノニムは無効。}
･スキーマ名は、変更元の表名だけに指定可能。(変更元のスキーマは、指定不可)

----

**9.5 表の切捨て

***○TRUNCATE TABLE文
【機能】
表を切り捨てます。

【構文】
|&amp;bold(){TRUNCATE TABLE 表名;}|

【説明】
&amp;bold(){･すべての行を削除します。表を削除するわけではない。}
･ロールバックはできませんが、DELETE命令より高速に行を削除する。
&amp;bold(){･参照整合性制約の親表を切り捨てることはできない。(小表に対応する外部キーがない場合にもエラー)}
&amp;bold(){･ビューに対しては指定不可。}

----

**9.6 表のコメント

■表またはビューにコメントを設定するには、COMMENT ON TABLE文を使用します。

***○COMMENT ON TABLE文
【構文】
#html2(){{{{{{
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;table border=&quot;1&quot;&gt;
&lt;tr&gt;&lt;td&gt;
&lt;b&gt;COMMENT ON TABLE 表名 IS‘コメント内容&#039;&lt;/b&gt;;←表に対してコメントを記載する際&lt;br&gt;
&lt;b&gt;COMMENT ON TABLE 表名 IS ‘&#039;;&lt;/b&gt;←表に対してコメントを削除する際&lt;br&gt;
&lt;b&gt;COMMENT ON COLUMN 表名.列名 IS ‘コメント内容&#039;;&lt;/b&gt;←列に対してコメントを記載する際
&lt;/tr&gt;&lt;/td&gt;
&lt;/table&gt;
&lt;/body&gt;
&lt;/html&gt;

}}}}}}

【説明】
･コメント内容は、最大4000バイトまでです。
･コメント内容を削除するには、‘&#039;として設定します。
･コメントを追加するには、自分のスキーマのオブジェクトか、COMMENT ANY TABLE システム権限が必要。

※表のコメントを付ける際(使用手順)

１．テーブルとカラムにCOMMENTコマンドでコメントを作成します。

SQL &gt; comment on table テーブル名 is &#039;指定したいコメント名(テーブル名)&#039;;
SQL &gt; comment on column テーブル名.列名 is &#039;指定したいコメント名(列名)&#039;;

２．SQL*Plus で以下のように実行します。 

SQL &gt; @list (list.sqlファイルを読み込む)
&amp;blanklink(listファイルのスクリプト){http://www.mars.dti.ne.jp/~o-shin/new/kowaza/script/list.sql}

table_nameに対して値を入力: テーブル名 

----

**9.7 表情報

表)表情報ビューの一覧
|ビュー|説明|備考|
|DBA_TABLES|データベースのすべての表||
|ALL_TABLES|ユーザーがアクセスできる表||
|USER_OBJECTS|ユーザーが所有するオブジェクト||
|ALL_TAB_COMMENTS|自分がアクセスする表またはビューのコメント||
|USER_TAB_COMMENTS|自分が所有する表またはビューのコメント||

----

**9.8 表領域
･表領域は、複数のオブジェクトを格納するための論理的な領域。
･ユーザーの使用容量制限は、表単位でなく、表領域単位に設定します。
&amp;bold(){･表領域は、下記用途に分かれます。}

表)主な表領域一覧
|表領域|説明|備考|
|SYSTEM表領域|必須の表領域で、データ･ディクショナリが格納||
|SYSAUX表領域|SYSTEM表領域の必須の補助表領域||
|UNDO表領域|ロールバック情報データを格納する領域||
|一時表領域|メモリでソートできない場合に使用する領域||

----    </description>
    <dc:date>2008-08-06T10:41:53+09:00</dc:date>
    <utime>1217986913</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/system818/pages/36.html">
    <title>Oracle Bronze10g SQL基礎I講座(Ⅷ)</title>
    <link>https://w.atwiki.jp/system818/pages/36.html</link>
    <description>
      *第8章 表の結合について

**8.1 表の結合とは

***■Oracle構文
Oracle構文ではWhere句で、検索条件だけでなく表の結合もできる。

[表]表結合のOracle構文一覧(一部省略)
|左外部結合文|SELECT .. FROM 表名A,表名B &amp;bold(){WHERE} 表名A.列名&amp;bold(){(+)} = 表名B.列名;|
|右外部結合文|SELECT .. FROM 表名A,表名B &amp;bold(){WHERE} 表名A.列名 = 表名B.列名&amp;bold(){(+)};|


***■SQL1999構文(1999年6月に採用されたSQL規格のこと)
※こちらについては後程説明します。


***■表別名について
SQL文を見やすくするために使用します。
列を修飾する表名を、表名を使用したり、表別名を使用したりと自由に選択することはできません。


***■外部結合について
表結合では、結合条件を満たすデータを取り出しますが、結合条件を満たさないデータが必要になる場合。
･&amp;bold(){外部結合}→結合条件を満たさないデータを取り出します結合
･&amp;bold(){右、左外部結合}→結合条件を満たさないデータを取り出す表により･･･。
･&amp;bold(){完全外部結合}→結合条件を満たすデータだけでなく、結合条件を満たさない２つのデータを取り出す結合。

----

**8.2 SQL:1999構文の表の結合

***○自然結合文
|構文:SELECT .. FROM 表名A NATURAL JOIN 表名B [WHERE 検索条件];|
説明
･2つの表の同じ名前の列が等しい値の行を取り出します。
･結合する列のデータ型は同じでなければならない。
&amp;bold(){･結合で使用する列をSELECT句やWHERE句等で使用する場合には、表名または表別名を付けません。}
･2つの表に結合する同じ列名が存在しない場合、なにも選択されないだけで、エラーにはならない。

***○等価結合文
|構文:SELECT .. FROM 表名A JOIN 表名B USING(列名) [WHERE 検索条件];|
説明:
･2つの表から指定列の等しい行を取り出します。
&amp;bold(){･USING句の列名には、表名または表別名をつけません。}

***○等価結合／非等価結合文
|構文:SELECT .. FROM 表名A JOIN 表名B ON 結合条件 [{WHERE ┃ AND }検索条件];|
説明:
･ON句で2つの表の結合条件を指定。
･結合する表に同じ列名がある場合には、表名又は表別名で修飾します。
･結合した表に検索条件の追加は、WHERE句又はAND句を指定。

***○クロス結合文
|構文:SELECT .. FROM 表名A CROSS JOIN 表名B;|
説明:
･デカルト積を戻す(交差結合とも呼び、2つの表の直積演算により行を取り出す)

***○左外部結合文
|構文:SELECT .. FROM 表名A LEFT OUTER JOIN 表名B ON 表名A.列名 = 表名B.列名 [WHERE 検索条件];|
説明:
･2つの表で、指定列が一致する行だけでなく、表名Aの一致しない行も取り出します
･検索条件の指定はON句の後に、WHERE句を指定。

***○右外部結合文
|構文:SELECT .. FROM 表名A RIGHT OUTER JOIN 表名B ON 表名A.列名 = 表名B.列名 [WHERE 検索条件];|
説明:
･2つの表で、指定列が一致する行だけでなく、表名Aの一致しない行も取り出します

***○完全外部結合文
|構文:SELECT .. FROM 表名A FULL OUTER JOIN 表名B ON 表名A.列名 = 表名B.列名 [WHERE 検索条件];|
説明:
･2つの表で指定列が一致するだけでなく、一致しない列もあり。

***○3つ以上の結合文
|構文:SELECT ... FROM 表名 JOIN 表名B ON 結合条件 JOIN 表名C 結合条件 [{WHERE ┃ AND}検索条件];|
説明:
･結合対象表を指定するJOIN句と結合するには指定するON句を指定して表を結合。

----

**8.3 外部結合について
　　　　～実践のみなので省略です～    </description>
    <dc:date>2008-08-06T10:40:49+09:00</dc:date>
    <utime>1217986849</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/system818/pages/35.html">
    <title>Oracle Bronze10g SQL基礎I講座(Ⅶ)</title>
    <link>https://w.atwiki.jp/system818/pages/35.html</link>
    <description>
      **第7章 副問い合せについて

***7.1 副問い合せとは
&amp;bold(){副問い合せとは、SQL文内に、組み込まれた問い合わせのこと(サブクエリーともいう)}

(表)副問合せ一覧
|副問合せ|説明|条件|備考|
|単一行副問合せ|副問合せが1行のみ戻す|単純比較条件(=,&gt;,&lt;,&lt;&gt;等を使用)||
|複数行問合せ|副問合せが複数行を戻す|グループ比較条件(IN,ALL,ANYを使用)||

※副問合せには、GROUP BY句、ORDER BY句を指定することができる。
&amp;bold(){※単一行副問合せで、単純比較条件を使用している場合に、複数行が戻されるとエラーになる。}

(表)複数行問合せの条件
|条件|説明|備考|
|IN|いずれかと等しい|=ANYと同じ意味です|
|NOT IN|いずれとも等しくない|!=ALLまたは&lt;&gt;ALLと同じ意味|
|ALL|すべての値と比較|副問合せから行が戻されない場合、FALSEとなる|
|ANY|各値と比較|副問合せから行が戻されない場合、TRUEとなり、ANYと同じ意味で、SOMEを使用する場合あり。|

----

***7.2 SELECT文の副問い合せ

○SELECT文(副問合せ)○
構文:&amp;bold(){SELECT ... FROM 表名 WHERE 列名 比較条件 (副問合せ);}
     SELECT ... FROM 表名 [GROUP BY 列名] HAVING {列名 | グループ関数} 比較条件 (副問合せ);

※注意･･･&amp;bold(){SELECT句、GROUP BY句、ORDER BY句では使用不可。}

----

***7.3 INSERT文の副問い合せ

○INSERT文(副問合せ)○
構文:&amp;bold(){INSERT INTO (副問合せ values(列名,...)) [where 検索条件];}
説明:
･副問合せの列数とvalues句の列数の数は同じ。

構文:&amp;bold(){INSERT INTO 表名 [ (列名,...) ] (副問合せ);}
説明:
･副問合せは、TABLE句、VALUES句、WHERE句で指定できる。

----

***7.4 UPDATE文の副問い合せ

○UPDATE文(副問合せ)
構文:&amp;bold(){UPDATE TABLE (副問合せ) SET 列名 = 値 [WHERE 検索条件];}     
     UPDATE TABLE 表名 SET 列名 = (副問合せ) [WHERE 検索条件];

説明:
･副問合せは、TABLE句、SET句とWHERE句で指定。

----

***7.5 DELETE文の副問い合せ

○DELETE文(副問合せ)
構文:&amp;bold(){DELETE TABLE( 副問合せ ) [WHERE 検索条件];}
説明
･副問合せは、TABLE句、WHERE句で指定できる。

----

***7.6 CREATE TABLE文の副問い合せ

○CREATE TABLE文(副問合せ)
構文:&amp;bold(){CREATE TABLE 表名[(列名,...)] AS (副問合せ);}
説明
･副問合せの両端のカッコは、省略可能。
･作成元の制約は、NOT NULL制約のみが、新規の表にコピーされる(主キー制約もコピーされない)
･作成元表の権限は、作成した表に継承されない。

----

***7.7 複数列副問い合せ
～実践のみ～(説明なし)

----

***7.8 副問合せのNULL値
(表)
|条件|説明|備考|
|IN|NULL値を除いた値が戻ります||
|NOT IN|戻るデータにNULL値があるとデータは戻らない||
|ALL|戻るデータにNULL値があるとデータは戻らない||
|ANY|NULL値を除いた値が戻ります||
|EXISTS|NULL値を除いた値が戻ります||
|NOT EXISTS|戻るデータにNULL値があるとデータは戻らない|NULL値だけのときは真です|

----    </description>
    <dc:date>2008-08-06T10:40:17+09:00</dc:date>
    <utime>1217986817</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/system818/pages/34.html">
    <title>Oracle Bronze10g SQL基礎I講座(Ⅲ)</title>
    <link>https://w.atwiki.jp/system818/pages/34.html</link>
    <description>
      **第3章 条件について

***3.1 条件とは
&amp;bold(){条件は、１つ以上の式と論理演算で構成され、TRUE(真)、FALSE(偽)、NULLのいずれかの値を返す。}

(条件一覧)
|比較条件|２つの式を比較して、その結果を返す|
|論理条件|式に対して論理演算子を行う|
|範囲条件|範囲に含まれるかどうかを調べる|
|IN条件|リスト内の項目と比較|
|NULL条件|NULL値かどうかを調べる|
|EXISTS条件|副問合せが条件を返すかどうか調べる|
|LIKE条件|文字列がパターンと一致するかどうかを調べる|

----

***3.2 比較条件
(比較条件指定の例(一部省略あり))

|条件|説明|
|a&lt;&gt;b|aとbが等しくない時、TRUE(真)、等しいときFALSE(偽)|
|a&lt;=b|aがb以下の時、TRUE(真)、そうでないときFALSE(偽)|
|a&gt;=b|aがb以上の時、TRUE(真)、そうでないときFALSE(偽)|

----

***3.3 論理演算
&amp;bold(){論理条件は、式に対して論理演算子を行う。}

(表:論理条件一覧)
|演算子|説明|
|NOT|真偽値を反転|
|AND|どちらも真値のとき、TRUE(真)を返す。どちらかが偽値の時、FALSE(偽)を返す。|
|OR|どちらかが真値のとき、TRUE(真)を返す。どちらも偽値のとき、FALSE(偽)を返す。|

&amp;bold(){※AND条件※}
|【構文】式 AND 式|
|【説明】左辺、右辺どちらかがFALSE(偽)ならばFALSE(偽)を、両方ともTRUE(真)ならばTRUE(真)を返す。|

&amp;bold(){※OR条件※}
|【構文】式 OR 式|
|【説明】左辺、右辺がともにFLASE(偽)のときは、FLASE(偽)、どちらかがTRUE(真)の場合はTRUE(真)を返す。|

----

***3.4 範囲条件
&amp;bold(){範囲条件は、範囲に含まれるかどうかを調べる}

(表)範囲条件一覧
|BETWEEN AND|2つの値の範囲にあるかどうか(両端を含む)|
|NOT BETWEEN AND|2つの値の範囲にないかどうか(両端は含まない)|

&amp;bold(){※BETWEEN条件※}
|【構文】列名 BETWEEN 値1 AND 値2|
|【説明Ⅰ】･値1以上で、値2以下の範囲にある値の時、TRUE(真)を、そうでないとき、FALSE(偽)を返す。|
|【説明Ⅱ】･値1と値2の両端の値は、TRUE(真)となり、値2のほうが大きい場合は、エラーになりませんがFALSE(偽)となり選択されない。|


&amp;bold(){※NOT BETWEEN条件※}
|【構文】列名 NOT BETWEEN 値1 AND 値2|
|【説明Ⅰ】･値1より小さいか、値2より大きい値のとき、TRUE(真)をそうでないときは、FALSE(偽)を返す。|
|【説明Ⅱ】･値1が値2より大きい場合、エラーにはなりませんが、TURE(真)となる。|

----

***3.5 IN条件
IN条件は、リスト内の項目と比較します。

(表)IN条件一覧
|条件|説明|
|IN|リストのいずれかと一致するか|
|NOT IN|リストのいずれとも一致しないか|

&amp;bold(){※IN条件※}
|【構文】列名 IN(値、...値)|
|【説明Ⅰ】･INで指定した値のリストのいずれかと一致したとき、TRUE(真)を、そうでないとき、FALSE(偽)を返す。|
|【説明Ⅱ】･IN条件のリスト内に、NULLを記述することはできますが、比較対象からは除外される。|

----

***3.6 NULL条件
&amp;bold(){NULL条件は、NULL値かどうかを調べる。}

(表)NULL条件一覧
|条件|説明|
|IS NULL|NULL値かどうか|
|IS NOT NULL|NULL値でないかどうか|

&amp;bold(){※IS NULL条件※}
|【構文】列名 IS NULL|
|【説明Ⅰ】･NULLかどうかを調べる。NULLの時、TRUE(真)を、そうでないとき、FALSE(偽)を返す。|

&amp;bold(){※IS NOT NULL条件※}
|【構文】列名 IS NOT NULL|
|【説明Ⅰ】･NULLでないかどうかを調べる。NULLのでない時、TRUE(真)を、そうでないとき、FALSE(偽)を返す。|

----

***3.7 EXISTS条件
&amp;bold(){EXISTS条件は、副問合せが条件を返すかどうか調べる}

(表)EXISTS条件一覧
|条件|説明|
|EXISTS|条件を満たす行があるかどうか|
|NOT EXISTS|条件を満たす行がないかどうか|

&amp;bold(){※EXISTS条件※}
|【構文】EXISTS (副問合せ)|
|【説明Ⅰ】･副問合せが1行以上を戻すとき、TRUE(真)、そうでないときFALSE(偽)を返す|

&amp;bold(){※NOT EXISTS条件※}
|【構文】NOT EXISTS (副問合せ)|
|【説明Ⅰ】･副問合せが行を戻さないとき、TRUE(真)、そうでないときFALSE(偽)を返す|

----

***3.8 LIKE条件
&amp;bold(){LIKE条件は、文字列パターンと一致するかどうかを調べる}

(表)EXISTS条件一覧
|条件|説明|
|LIKE|パターンが一致するかどうか|
|NOT LIKE|パターンが一致しないかどうか|


&amp;bold(){※LIKE条件※}
|【構文】列名 LIKE &#039;文字列&#039;|
|【説明Ⅰ】･LIKE条件では、ワイルドカードの文字である％や_を検索するためにエスケープ文字を指定。|
|【説明Ⅱ】･大文字、小文字を区別するので注意。|

----

***3.9 条件の優先順位

(表)優先順位一覧
|1|比較演算|比較条件|
|2|その他の条件|BETWEEN,IN,EXISTS,LIKE等|
|3|NOT|論理否定|
|4|AND|論理積|
|5|OR|論理和|

----    </description>
    <dc:date>2008-08-06T10:39:25+09:00</dc:date>
    <utime>1217986765</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/system818/pages/33.html">
    <title>Oracle Bronze10g SQL基礎I講座(Ⅱ)</title>
    <link>https://w.atwiki.jp/system818/pages/33.html</link>
    <description>
      **第2章 行制限と並べ替えについて

***2.1 行制限と並べ替え

(表)行制限と並べ替え句一覧
|句|説明|
|DISTINCT|重複を取り除く|
|GROUP BY|指定列を元にグループ化する|
|HAVING|GROUP BY句の検索対象を制限します|
|ORDER BY|指定列の値により行を並び替える|
|WHERE|検索する対象を制限|

----

***2.2 DISTINCT句
&amp;bold(){DISTINCT句は、指定列の値の重複を取り除く。}

|【構文】SELECT DISTINCT 列名[,列名...] FROM 表名;|
|【説明Ⅰ】･指定列値の重複を取り除き、指定列値を昇順に並べ替える。|
|【説明Ⅱ】･DISTINCT句には、複数の列を指定することができる。|

----

***2.3 WHERE句
&amp;bold(){WHERE句の検索条件を満たす行を取り出します。}

|【構文】SELECT ... FROM 表名 WHERE 検索条件;|
|【説明】･検索条件には、列名、条件を指定。|

----

***2.4 ORDER BY句
&amp;bold(){ORDER BY句は、指定の列または式により行を並び替える。}
|【構文】SELECT ... FROM 表名 ORDER BY {列名 ┃ 式} [ASC ┃ DESC];|
|【説明Ⅰ】･ORDER BY句には、複数の列名または式を指定可能。|
|【説明Ⅱ】･ASC(デフォルト),DESCを指定しない場合には昇順|
|【説明Ⅲ】･NULL値は、一番大きな値として扱われます。昇順では最後に、降順では、最初に表示される。|
|【説明Ⅳ】･ORDER BY句では、列名以外に、列別名、列番号、グループ関数を指定することができる。|

----

***2.5 GROUP BY句
&amp;bold(){GROUP BY句は、指定列でグループ化します。}

|【構文】SELECT ... FROM 表名 GROUP BY 列名 [,列名 ... ];|
|【説明Ⅰ】･GROUP BY句には、列別名、列番号、グループ関数を指定することは不可|
|【説明Ⅱ】･GROUP BY句で指定した列は、重複値が取り除かれ、昇順で並べ替える。|
|【説明Ⅲ】･GROUP BY句によりグループ化した行は、条件により制限するには、HAVING句を使用します。|

----

***2.6 HAVING句
&amp;bold(){HAVING句は、グループ化した結果を、制限。}

|【構文】SELECT ... FROM 表名 [GROUP BY 列名] HAVING 検索条件;|
|【説明Ⅰ】･GROUP BY句で、グループ化した結果に対して、検索条件を満たすデータを取り出す。|
|【説明Ⅱ】･HAVING句を単独で使用可能。|

----

***2.7 句の順番と組み合わせ

【SELECT文記載時の規則】
|&amp;bold(){SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ... ;}|

･GROUP BY句とHAVING句の順番は、逆でも可能。
･ORDER BY句は、SELECT句の中の列以外を指定することが可能。

■GROUP BY句、ORDER BY句で使用可、使用不可のデータ型について
★使用可能なデータ型･･･DATE,TIMESTAMP,RAW,CHAR,VACHER2,NUMBER,INTERVAL YEAR TO MONTH,INTER DAY TO SECOND
★使用不可なデータ型･･･LONG,LONG RAW,LOB型(CLOB,BLOB等)

----    </description>
    <dc:date>2008-08-06T10:38:17+09:00</dc:date>
    <utime>1217986697</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/system818/pages/32.html">
    <title>Oracle Bronze10g SQL基礎I講座(Ⅰ)</title>
    <link>https://w.atwiki.jp/system818/pages/32.html</link>
    <description>
      **第1章 SELECT文について

***1.1 SELECT文とは

1.1.1 SELECT文の3つの機能
・SELECT文の機能は、表からデータを取り出しますが、以下のような３つの機能に分けることができる。
→射影    &amp;bold(){表内の特定列のデータ}を取り出す
→選択    &amp;bold(){表内の特定行のデータ}を取り出す
→結合    &amp;bold(){２つ以上の表からデータ}を取り出す

1.1.2 基本的なSELECT文の構文
       ・SELECT文は、選択対象を指定するSELECT句と対象の表を指定するFROM句で構成されます。
       ・SELECT文の終わりには、セミコロン(;)をつけます。

----

***1.2 列指定

・SELECT句で、選択対象を指定します。

※列指定※
|構文:SELECT{* ┃ 列名 [,列名..] ┃ 式 } FROM 列名;|

|選択対象|説明|例|
|*|表のすべての列(列の順番は、表定義の順番になります)|SELECT * FROM EMP;|
|列名[,列名..]|選択する表内の列名。列名と列名はカンマで区切る。|SELECT EMPNO,ENAME FROM EMP;|
|式|式|SELECT SAL * 1.5,COMM + 100 FROM EMP;|

----

***1.3 算術演算子

･算術演算子には、単項演算子とバイナリ演算子があります。
･SELECT文では、SELECT句、WHERE句、GROUP BY句、ORDER BY句等で使用できます(FROM句は、不可)

※単項演算子※
|構文:単項演算子 オペランド|

説明:
･オペランドの前に、単項演算子を記述します(単項演算子の後に空白は不要です)


|演算子|説明|例|
|+|オペランドの符号を示します(符号はそのまま)|+COL1|
|-|オペランドの符号を反転します|-COL1|


※バイナリ演算子※
|構文:オペランド　バイナリ演算子　オペランド|

説明:
･オペランドの間に、バイナリ演算子を記述します。(単項演算子の前後に空白は不要です)
･バイナリ演算子は、四則演算と同じ&quot;+&quot;、&quot;-&quot;、&quot;*&quot;、&quot;/&quot;です。


|演算子|構文|説明|例|
|+|a + b|aとbを加える|COL1 + 100|
|-|a - b|aからbを引く|COL1 - COL2|
|*|a * b|aとbを掛ける|COL1 * 1.5|
|/|a / b|aをbで割る|COL2 / 100|

■算術演算の優先順位
　　単項演算子が高い順番になる(カッコをつけることにより優先順位を変更可能)

|優先順位|演算子|説明|
|１|+、－|単項演算子の+または-|
|２|*、－|バイナリ演算子の乗算、除算|
|３|+、－、┃┃ |バイナリ演算子の加算、減算、連結演算子|

----

***1.4 列別名

※列別名※
|構文:SELECT 列名 [AS] 列別名 [,列名...] FROM 列名;|

説明:
･列別名をつけるには、列のあとにスペースを置き、その後に列別名を指定する。
･列別名も名前の命名規則に従います(先頭が数字や記号の列別名を指定することはできない)
･列別名に、区切り文字(スペース等)や小文字を使用する場合には、列別名を二重引用符で囲む。
･AS句は、オプションで省略可能です。

(列見出しの記述例)
SQL&gt;SELECT LOCATION[列名]   LOC[列別名]  FROM TBL1

※SELECT句の列別名の指定方法一覧
|列別名の指定例|説明|
|LOCATION LOC|列名LOCATIONに列別名LOCを指定します。|
|LOCATION AS LOC|列名LOCATIONに列別名LOCを指定します。|
|LOCATION &quot;Loc 1&quot;|列別名LOCATIONに列別名「Loc 1」を指定する。|
※列別名として単一引用符で囲うとエラーになる。

※デフォルトの列見出し表示位置
|列名と値の表示位置|データ型|
|左詰め|文字型データ、日付型データ|
|右詰め|数値型データ|

----

***1.5 代替引用リテラル
文字リテラルで、開始と終了の引用文字を任意に指定することができる。

|構文:{ Q ┃ q }  ‘開始引用文字 ... 終了引用文字 &#039;|
説明:
･開始、終了引用文字は、任意のシングルバイト文字またはマルチバイト文字になる。
･開始と終了引用文字は、同じ文字になります。
･ただし、開始引用文字が[、{、&lt;、(の場合、対応する終了引用文字は)、}、&gt;、]になる。
･開始引用文字が[、{、&lt;、(の場合、終了引用文字を開始引用文字と同じ文字を指定するとエラーになります。

|開始引用文字|終了引用文字|使用例|
|“|“|q&#039;“it‘s me &quot;&#039;|
|&lt;| &gt;|q‘&lt;it&#039;s me&gt;&#039;|
|[|]|q&#039;[it&#039;s me]|

----

***1.6 連結演算子
列を連結するには、連結演算子「||」を使用します。

|構文:SELECT { 列 ┃ 式 } ┃┃ { 列 ┃ 式 } [ ,列... ] FROM 表名;|

説明:
･２つの列を連結して、１つの列とします。
･連結演算子は、連結する片方がNULLでも、もう片方がNULLでなければ、NULLでない値が返る。
･数値を連結すると文字列に変換されて、連結される。

----

***1.7 集合演算子

･集合演算子は、２つ以上のコンポーネントの問合せ結果を１つの結果にまとめます。
･集合演算子を含む問合せを複合問合せと呼ぶ。
･集合演算子で3つ以上の問合せを結合することができる。
･問合せで選択される列の数とデータ型は同じになる。列名は、同じである必要性はない。
･重複行が戻る集合演算子は、UNION ALLです。UNION、INTERSECT、MINUSは、重複行を戻しません。

|構文:SELECT {列 ┃ 式} [,列...] FROM 表名　集合演算子 SELECT { 列 ┃ 式 }[ ,列... ] FROM 表名;|
説明:
･２つ以上の問合せ結果を１つの結果にまとめる。

※集合演算子
|集合演算子|説明|
|UNION|各問合せによって戻るすべての行(重複行は含まない)|
|UNION ALL|各問合せによって戻るすべての行(重複行を含む)|
|INTERSECT|両方の問合せによって戻るすべての行(重複行は含まない)|
|MINUS|最初の問合せによって戻る行で、2番目の問合せでは戻されない行(重複行は含まない)|

◎備考
UNION ALL，UNION，INTERSECT，MINUSの集合演算子は、すべて同じ優先順位です。評価の順番を変更するにはカッコで囲む。
SQL演算子は、SQL条件の前に評価される。３つ以上の集合演算子では、優先順位は、同じなので、処理は右から左に行われる。

----

***1.8 名前
･表や列に付ける名前には、以下の規則がある。
　･名前の先頭に、数字、記号を使用されることはできません。
　･先頭以外ならば、英数字、記号(#、$、_等)等使用可能。
　･&amp;bold(){大文字、小文字の区別がない。}

●二重引用符で囲う名前(二重引用符で囲う名前には、上記の規則は適用なし)
･大小文字が区別される。
･予約語や先頭に数字や記号を記述することができる。
･名前に空白等の区切り文字や記号(!,#,$,@,-等)を記述することができる。
･二重引用符で定義した名前を参照するときには、二重引用符で囲う。

***1.9 SQL*Plus
SQL*Plusは、Oracle独自の対話形式のツールです。

■SQLコマンド
･SQLコマンドは、ANSI/ISOによるデータベースの標準言語のSQL。

■SQL*Plusコマンド
･SQL*Plusコマンドは、SQL*PlusのOracle独自のコマンド。
･直接データベースを操作するコマンドではない。

■DESCRIBEコマンド
･SQL*Plusコマンドの1つで、表定義の内容を確認するためのコマンド
･DESCRIBEの省略形は、DESCです。

|【構文】テーブル名 DESC;|

■NULL値について
･NULLは値が格納されていないこと意味している。
･NULLは、「IS NULL」条件または「IS NOT NULL」条件のみNULLの存在をすることが可能。

----

***1.10 SQLについて
一般的な分類としてDML、DDL、DCLとして分けられます。

(表)SQL命令分類の一覧
|DML|DELETE|行削除|
||MERGE|行をマージする|
||INSERT|行を追加する|
||UPDATE|データを更新|
|DDL|CREATE|オブジェクトを作成|
||ALTER|オブジェクトを更新|
||DROP|オブジェクト削除|
||RENAME|オブジェクト名変更|
||TRUNCATE|表を切り捨て|
|DCL|GRANT|権限を付与|
||REVOKE|権限を取り消します|

----

***1.11 PL/SQLとは
･SQLコマンド機能に加えて、変数宣言、制御文、例外処理、カーソル処理、モジュール化等の機能を持っています。

----

***1.12 DUAL表について
･SELECT文のFROM句は必須のための表を指定する必要のない場合には、FROM句でDUAL表を指定します。    </description>
    <dc:date>2008-08-06T10:37:30+09:00</dc:date>
    <utime>1217986650</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/system818/pages/39.html">
    <title>Oracle Bronze10g SQL基礎I講座(Ⅳ)</title>
    <link>https://w.atwiki.jp/system818/pages/39.html</link>
    <description>
      **第4章 単一行関数について

***4.1 単一行関数とは
･値を数値処理したり、文字列を変換したり、値を別のデータ型に変換したりすることができます。
(1行の入力から1つの結果が戻る)

----

***4.2 数値関数
(表)数値関数一覧
|関数名|機能|書式|説明|
|CEIL|n以上の最も小さい整数を戻します|CEIL(n) n:計算対象の値||
|FLOOR|n以下の最も大きい整数を戻します|FLOOR(n) n:計算対象の値|nの値が正ならば切捨て。負ならば切り上げである。|
|MOD|mをnで割った余りを戻します|MOD(m,n) m:計算対象の値 n:割る値|nが0の時には、mを戻す。mが0の時には、0を戻す。|
|ROUND|数値を指定桁で丸めます|ROUND(n[,i]) n:計算対象の値、i:四捨五入する桁数を指定|四捨五入する桁数が正数のとき小数点以下の桁数。負数の場合は正数の桁数になる。|
|TRUNC|数値を指定桁で切り捨てます|TRUNC(n[,i]) n:計算対象の値、i:切り捨てる桁数を指定|四捨五入する桁数が正数のとき小数点以下の桁数。負数の場合は正数の桁数になる。|

&amp;bold(){※CEIL関数…正の数に限っては、切り上げです。負の数の場合は、切り上げにはならない。}

----

***4.3 文字関数

&amp;bold(){INICAP関数}
|機能|書式|説明|
|文字の各単語の先頭に大文字に、2文字以後を小文字に変換して戻します|INITCAP(s) s:文字列|単語の区切りは、空白、記号等です。|

#html2(){{{{{{
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;b&gt;INSTR関数&lt;/b&gt;
&lt;table border=1&gt;
&lt;tr&gt;&lt;td&gt;機能&lt;/td&gt;&lt;td&gt;文字列から指定の文字位置を戻す&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;書式&lt;/td&gt;
&lt;td&gt;s1:検索対象の文字&lt;br&gt;
s2:検索する文字&lt;br&gt;
p:s1の検索を開始する文字位置(負数の場合、文字の最後からの逆検索)&lt;br&gt;
o:一致した回数&lt;br&gt;
p,oまたはoは、省略可能&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;説明&lt;/td&gt;
&lt;td&gt;･s1のpの位置からs2を検索して、o番目に一致した文字列を戻します。&lt;br&gt;
･検索文字と一致しない場合には、0が戻る。
&lt;/tr&gt;&lt;/td&gt;
&lt;/body&gt;
&lt;/html&gt;
}}}}}}

(例･･･INSTR関数)
INSTR(&#039;ABCdefGHIABC&#039;, &#039;ABC&#039;, -1, 2) ⇒ 1
      ↑              ↑
 2回目検出      1回目の検出
 

※上記は、ABCの数が2回目の検出の際の&#039;ABC&#039;を指している。
※仮にINSTR(&#039;ABCdefGHIABC&#039;, &#039;ABC&#039;, 1, 2)の場合は1回目の検出のところになるので、
解答は&quot;10番目&quot;になる。

#html2(){{{{{{
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;b&gt;SUBSTR関数&lt;/b&gt;
&lt;table border=1&gt;
&lt;tr&gt;&lt;td&gt;機能&lt;/td&gt;&lt;td&gt;文字を指定位置から指定文字分に切り出した文字を戻します&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;書式&lt;/td&gt;
&lt;td&gt;SUBSTR(s,p[,I])&lt;br&gt;
s:対象の文字列&lt;br&gt;
p:切り出す文字位置(負数の場合、文字の終わりからの指定になる)&lt;br&gt;
I:切り出す文字列(省略可、省略すると文字の最後までを切り出す)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;説明&lt;/td&gt;&lt;td&gt;sの文字列のp番目から長さIだけの文字を切り出します&lt;/td&gt;&lt;/tr&gt;
&lt;/body&gt;
&lt;/html&gt;
}}}}}}

&amp;bold(){LENGTH関数}
|機能|書式|説明|
|文字の長さを戻す|LENGTH(c) c:文字列|cの文字の長さを戻し、文字がNULLの場合はNULLを戻します。|

■文字関数での全角文字の扱い
･文字関数は、デフォルトで全角文字と半角文字を同じ1文字として扱う。
･LPAD、LTRIM、RPAD、RTRIM、TRIM関数には、バイト単位で扱う関数ではない。

&amp;bold(){LENGTHB関数}
|機能|書式|説明|
|文字のバイト数を戻す|LENGTHB(c) c:文字列|cの文字のバイト長を戻し、全角の1文字は2バイトです。文字がNULLの場合は、NULLを戻す。|

&amp;bold(){LOWER関数}
|機能|書式|説明|
|文字を小文字に変換|LOWER(c) c:文字列|cのすべての文字を小文字に変換|

&amp;bold(){UPPER関数}
|機能|書式|説明|
|文字を大文字に変換|UPPER(c) c:文字列|cのすべての文字を大文字に変換|

&amp;bold(){LPAD関数}
|機能|書式|説明|
|文字の左側に文字を埋めて戻す|LPAD(c1,n[,c2]) c1:文字列 n:変換して戻す文字列 c2:埋める文字|c1の左側に、c1の文字列がnになるまで、c2の文字を埋めます|

&amp;bold(){LTRIM関数}
|機能|書式|説明|
|文字の左側から指定文字を削除|LTRIM(c[,s]) c:文字列 s:削除する文字|cの左側の連続したsの文字を削除。cにs以外の文字を見つけたら処理終了|

&amp;bold(){TRIM関数}
|機能|書式|説明|
|文字の指定方向から指定文字を削除|TRIM([[LEADING┃TRAILING ┃ BOTH] s FROM ] c  c:文字列 s:削除する文字|cの左側の連続したsの文字を削除。sを省略すると空白が使用される。|

----

***4.4 日付関数

&amp;bold(){ADD_MONTH関数}
|機能|書式|説明|
|日付に月数を加算した日付を戻す|ADD_MONTHS(d,n) d:日付 n:日付に加算する月数(マイナスの値を指定することも可能)|日付dにnの月数を加算した日付を戻す|

&amp;bold(){LAST_DAY関数}
|機能|書式|説明|
|指定月の月末の日を戻す|LAST_DAY(d) d:日付|日付dの月末の日付を戻す|

&amp;bold(){MONTHS_BETWEEN関数}
|機能|書式|説明|
|2つの日付の月間数を戻す|MONTHS_BETWEEN(d1,d2) d1:日付,d2:日付|日付d1-d2の月数を戻す|

#html2(){{{{{{
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;b&gt;NEXT_DAY関数&lt;/b&gt;
&lt;tr&gt;&lt;td&gt;機能&lt;/td&gt;&lt;td&gt;日付以降の最新の指定曜日の日付を戻す&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;書式&lt;/td&gt;&lt;td&gt;NEXT_DAY(d,c)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;説明&lt;/td&gt;
&lt;td&gt;日付dから後の指定曜日の日付を戻します。&lt;br&gt;
現在の日付が指定曜日の時は、次の週の指定曜日の説明が戻されます。&lt;br&gt;
曜日は、&#039;木&#039;、&#039;木曜日&#039;、5(曜日の番号)等で指定することができます。
&lt;/td&gt;&lt;/tr&gt;
&lt;/body&gt;
&lt;/html&gt;
}}}}}}


&amp;bold(){SYSDATE関数}
|機能|書式|説明|
|現在の日付に戻す|SYSDATE|日付は、サーバの日付情報で、日付には年月日以外にも時分秒も含まれます。|


※日付の演算として、
&amp;bold(){･日付 ＋ 日付}
&amp;bold(){･日付 ＊ 日付}
&amp;bold(){･日付  / 日付}
&amp;bold(){･日付  / 数値}　等の演算はできない。

&amp;bold(){ROUND関数(日付)}
|機能|書式|説明|
|指定した単位で日付を戻す|ROUND(d,[f]) d:日付,f:日付書式モデル|日付書式モデルとして、年、月、日、時、分、秒等の単位を指定できる。|

※YEARの切り上げ時期
&amp;bold(){･年を表す書式は、&#039;YEAR&#039;だけでなく、&#039;YYYY&#039;,&#039;YYY&#039;,&#039;YY&#039;,&#039;Y&#039;を指定できる。}

※MONTHの切り上げ時期
&amp;bold(){･月を表す書式は、&#039;MONTH&#039;だけでなく&#039;MM&#039;,&#039;MON&#039;を指定できます。}

----

***4.5 変換関数
■日付型データと数値型データを直接変換する関数はない。

(例)日付型データから数値型データへ変換してから数値型データに変換します。
日付型データ→文字型データ→数値型データ

(例)数値型データを、文字型データに変換してから日付型データに変換します。
数値型データ→文字型データ→日付型データ

#html2(){{{{{{
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;b&gt;TO_CHAR関数(日付)&lt;/b&gt;
&lt;tr&gt;&lt;td&gt;機能&lt;/td&gt;&lt;td&gt;日付dを日付書式モデルに従い文字列データに変換&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;書式&lt;/td&gt;&lt;td&gt;TO_CHAR(日付データ,日付書式)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;説明&lt;/td&gt;
&lt;td&gt;日付データを日付書式の形式の文字列に変換する&lt;/td&gt;&lt;/tr&gt;
&lt;/body&gt;
&lt;/html&gt;
}}}}}}


#html2(){{{{{{
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;b&gt;TO_DATE関数(数値)&lt;/b&gt;
&lt;tr&gt;&lt;td&gt;機能&lt;/td&gt;&lt;td&gt;文字型データcを日付書式モデルに従い日付型データに変換&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;書式&lt;/td&gt;&lt;td&gt;TO_DATE(文字列,　日付書式)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;説明&lt;/td&gt;
&lt;td&gt;日付書式の形式で指定した、文字列をDATE型に変換する&lt;/td&gt;&lt;/tr&gt;
&lt;/body&gt;
&lt;/html&gt;
}}}}}}


#html2(){{{{{{
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;b&gt;TO_NUMBER関数&lt;/b&gt;
&lt;tr&gt;&lt;td&gt;機能&lt;/td&gt;&lt;td&gt;文字型データcを数値書式モデルに従い数値型データに変換します。&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;書式&lt;/td&gt;&lt;td&gt;TO_NUMBER（ 数値文字列, [ 書式 ] ）&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;説明&lt;/td&gt;
&lt;td&gt;TO_NUMBERは引数で指定した文字列を、指定した書式に沿って、数値に変換します。&lt;/td&gt;&lt;/tr&gt;
&lt;/body&gt;
&lt;/html&gt;
}}}}}}

----

***4.6 NULLを扱う関数

&amp;bold(){COALESCE関数}
|機能|書式|説明|
|リストの最初のNULLでない値を戻す|COALESCE(a,b,c,....)|関数内のa,b,c,...で、最初のNULLでない値を戻す。|

&amp;bold(){NULLIF関数}
|機能|書式|
|aとbが等しい時、NULL値を戻す|NULLIF(a,b) a:判定対象の値 b:判定対象の値|

&amp;bold(){NVL関数}
|機能|書式|
|aがNULLのとき、bの値を戻します。aがNULLでないとき、aの値を戻します。|NVL(a,b) a:判定対象の値 b:判定対象の値|

&amp;bold(){NVL2関数}
|機能|書式|
|aがNULLでない時、bの値を戻します。aがNULLのとき、cを戻します。|NVL2(a,b,c) a:判定対象の値 b:aの値がNULL以外のとき、返す値 c:aの値がNULLの時返す値|

----

***4.7 その他の関数

#html2(){{{{{{
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;b&gt;DECODE関数&lt;/b&gt;
&lt;tr&gt;&lt;td&gt;機能&lt;/td&gt;&lt;td&gt;対象と一致する値に対応するデータを戻す&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;書式&lt;/td&gt;&lt;td&gt;DECODE(列名 | 式,条件1,値1,...{デフォルト値})&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;説明&lt;/td&gt;
&lt;td&gt;式と条件が一致する最初の値が戻される。どれにも一致しなった場合はELSE句に指定したデフォルト値が返される。&lt;/td&gt;&lt;/tr&gt;
&lt;/body&gt;
&lt;/html&gt;
}}}}}}

&amp;bold(){※CASE句とDECODE句との違い}
&amp;bold(){CASE式では、WHEN句でEXISTS、比較条件、IN、BETWEEN、LIKEなどの演算子が使用可能}だが、DECODE関数では使用不可能。
DECODE関数では、DECODEは NULL = NULL の評価は True となるが、&amp;bold(){CASE式ではNULLとなるCASE式でNULLを評価する場合は、WHEN句でIS NULLを使う。}


&amp;bold(){GREATEST関数}
|機能|書式|説明|
|リスト内の最大値を戻す|GREATEST(e,[...] e,[...]:判定対象の値)|判定対象は、数値、文字列値、日付値等です。|

----

***4.8 書式モデル

こちらの章については
[[書式モデル&gt;http://i2you.main.jp/pdf/oracle/sql/BZSQL4.PDF]]を参考にしてください。    </description>
    <dc:date>2008-08-06T10:35:44+09:00</dc:date>
    <utime>1217986544</utime>
  </item>
  </rdf:RDF>
