Oracle Database SQL言語リファレンス 11g リリース1(11.1) E05750-03 |
|
Structured Query Language(SQL)とは、プログラムおよびユーザーが、Oracle Databaseのデータにアクセスするために使用する一連の文です。アプリケーション・プログラムやOracleのツール製品を使用すると、SQLを直接使用せずにデータベースにアクセスできます。ただし、アプリケーションがユーザーの要求を実行するときには、必ずSQLを使用します。この章では、ほとんどのデータベース・システムで使用されるSQLの背景について説明します。
この章では、次の内容を説明します。
1970年6月にACM(Association of Computer Machinery)が刊行した「Communications of the ACM」誌で、E. F. Codd博士の論文「大型共用データ・バンク用のデータのリレーショナル・モデル」が発表されました。Codd博士のモデルは、現在ではリレーショナル・データベース管理システム(RDBMS)の完成したモデルとして認められています。Structured English Query Language(SEQUEL)は、IBM社がCodd博士のモデルを使用するために開発したものです。このSEQUELが後のSQLです。1979年、Relational Software, Inc.(現在のオラクル社)は、商業的に利用可能な最初のSQLの処理系を導入しました。今日、SQLは標準のRDBMS言語として認められています。
オラクル社は、業界標準に準拠するよう努力し、SQL標準化委員会にも積極的に参加しています。業界で認知されている委員会には、ANSI(米国規格協会)、およびIEC(国際電気標準会議)が電気・電子部門を担当しているISO(国際標準化機構)があります。ANSIとISO/IECはともに、SQLをリレーショナル・データベースの標準言語として認めています。新しいSQL規格がこの両機関から同時に発表された場合、その規格の名前は、各機関の規則に従って付けられますが、技術的な詳細は同じです。
2003年7月に採用された最新のSQL規格をSQL:2003といいます。SQL規格の1つであるPart 14: SQL/XML (ISO/IEC 9075-14)は2006年に改訂されており、SQL/XML:2006と呼ばれます。SQL/XMLを除いて、この規格の正式名称は、次のとおりです。
改訂されたPart14の正式名称は、次のとおりです。
SQLは、アプリケーション・プログラマ、データベース管理者、マネージャ、エンド・ユーザーなど、あらゆる分野のユーザーに利益をもたらします。技術的ないい方をすると、SQLはデータ副言語です。SQLの目的は、Oracle Databaseのようなリレーショナル・データベースとのインタフェースを提供することであり、すべてのSQL文はデータベースに対する命令です。この点において、SQLは、CやBASICのような汎用プログラミング言語と異なります。SQLには、次のような特長があります。
SQLでは、データを論理的なレベルで処理できます。処理系について考えることは、データの細部を操作する場合のみで済みます。たとえば、表から一連の行を検索するには、行をフィルタ処理するための条件を定義します。この条件を満たすすべての行が1つの手順で検索され、ユーザー、別のSQL文またはアプリケーションに1つの単位として渡されます。行単位で処理する必要がなく、行の物理的な格納方法や検索方法を気にする必要もありません。SQL文を実行すると、Oracle Databaseの問合せオプティマイザが働きます。この機能によって、指定したデータに最も速くアクセスする方法が決定されます。Oracleには、オプティマイザの性能を向上させる方法も用意されています。
SQL文を使用して、次の処理を行うことができます。
SQLでは、前述のすべてのタスクを1つの一貫性のある言語に統一しました。
すべての主なリレーショナル・データベース管理システムは、SQLをサポートしているため、SQLで得た技術的な知識を他のデータベースでも生かすことができます。さらに、SQLで記述されたプログラムは移植性に優れているため、わずかな変更のみで他のデータベースに移行できます。
Oracle DatabaseのSQLエンジンは、すべてのOracle Databaseアプリケーションの基礎となっています。Oracle SQLは、データベース・アプリケーションの多様化するニーズを満たし、先端の計算アーキテクチャ、APIおよびネットワーク・プロトコルをサポートするために発展し続けています。
SQLでは、従来の構造化データに加え、より複雑なデータの格納、取出しおよび処理を実行できます。
XMLType
データ型は、半構造化XMLデータをサポートします。
標準ベース機能のネイティブ・サポートに、次のものが含まれています。
Oracle SQLは、多目的でスケーラブルかつ高パフォーマンスのデータベース・アプリケーションの開発を総合的にサポートするために、継続して機能が拡張されています。
SQL構文を使用して実行できる操作の多くは、Enterprise Managerを使用するとさらに簡単に実行できます。詳細は、Oracle Enterprise Managerのドキュメント・セット、『Oracle Database 2日でデータベース管理者』またはOracle Databaseの「2日で」シリーズのいずれかのマニュアルを参照してください。
SQL文の記述に関する次の字句規則は、Oracle DatabaseのSQL実装に対してのみ適用されますが、他のすべてのSQL実装にも一般的に適用されます。
SQL文では、文の定義の中で空白が入る可能性がある任意の位置に、1つ以上のタブ、改行文字、空白またはコメントを記述できます。したがって、Oracle Databaseは、次の2つの文を同一と解釈します。
SELECT last_name,salary*12,MONTHS_BETWEEN(hire_date, SYSDATE) FROM employees WHERE department_id = 30 ORDER BY last_name; SELECT last_name, salary * 12, MONTHS_BETWEEN( hire_date, SYSDATE ) FROM employees ORDER BY last_name;
予約語、キーワード、識別子およびパラメータは、大文字と小文字を区別せずに記述できます。ただし、テキスト・リテラルと引用符で囲んだ名前では、大文字と小文字は区別されます。テキスト・リテラルの構文の詳細は、「テキスト・リテラル」を参照してください。
Oracleには、SQL開発プロセスを容易にする多くのユーティリティが提供されています。
Oracle Call InterfaceおよびOracleプリコンパイラを使用すると、標準SQL文をプロシージャ・プログラミング言語に埋め込むことができます。
ほとんどのOracleツール製品は、Oracle SQLのすべての機能もサポートしています。このマニュアルでは、SQLのすべての機能について説明しています。ご使用のOracleのツール製品でサポートしていない機能がある場合は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』など、そのOracleのツール製品について記述しているマニュアルで、制限事項を確認してください。
|
![]() Copyright © 1996, 2008, Oracle Corporation. All Rights Reserved. |
|