構造化クエリ言語(Structured Query Language)は、SQLと略され、特定の目的を持つプログラミング言語です。現在流行している他のリレーショナルデータベースと同様に、すべてのプログラムやユーザーはSQLを使用してOceanBaseデータベース内のデータにアクセスできます。一部のプラットフォームやツールがユーザーにインターフェースや画面を通じて直接データベースにアクセスすることを許可している場合でも、これらのプラットフォームやツールの基盤となっているのは実際にはSQLです。
SQLの歴史
1970年6月、IBM社のカリフォルニア州サンノゼ研究所に所属するE・F・コッド博士が、ACM(Association for Computing Machinery)誌に論文「大規模共有データバンクのための関係モデル」(A Relational Model of Data for Large Shared Data Banks)を発表し、関係モデルの概念を初めて提唱しました。
1974年、同研究所のD・D・チェンバリンとR・F・ボイスが、IBM社が開発したリレーショナルデータベースシステムSystemRにおいて、SEQUEL(Structured English QUEry Language)という標準言語を開発しました。そして1976年11月のIBM Journal of R&Dに、新バージョンのSQL(SEQUEL/2と呼ばれ、1980年にSQLと改名)を公表しました。
1979年、Oracle社が最初に商用SQLを提供し、同時にIBM社もDB2およびSQL/DSデータベースシステムにSQLを実装しました。
今日に至るまで、SQLはリレーショナルデータベース管理システム(Relational Database Management System:RDBMS)の標準言語となりました。
SQLの標準
1986年10月、米国国家規格協会ANSIは、SQLをリレーショナルデータベース管理システムの標準言語として採用し、ANSI X3.135-1986と命名しました。その後、国際標準化機構(ISO)もSQLを国際標準として採択しました。
1989年、ANSIはANSI X3.135-1989報告書で定義されたSQL標準言語を採用し、ANSI SQL 89と称しました。この標準は、それ以前のANSI X3.135-1986版に取って代わりました。
以下はSQLの発展の概要です:
1986年、ANSI X3.135-1986、ISO/IEC 9075:1986、SQL-86。
1989年、ANSI X3.135-1989、ISO/IEC 9075:1989、SQL-89。
1992年、ANSI X3.135-1992、ISO/IEC 9075:1992、SQL-92(SQL2)。
1999年、ISO/IEC 9075:1999、SQL:1999(SQL3)。
2003年、ISO/IEC 9075:2003、SQL:2003。
2008年、ISO/IEC 9075:2008、SQL:2008。
2011年、ISO/IEC 9075:2011、SQL:2011。
現在、ほとんどの場合で言及されるSQL標準に含まれる内容は、実際にはSQL 92の中で最も基本的で核心的な部分です。OceanBaseデータベースも現在はSQL 92標準に準拠しており、後続のSQL標準の重要な機能の一部をサポートしています。
SQLの実行
SQLは、OceanBase、Oracle、MySQLなどのリレーショナルデータベースにアクセスするためのインターフェースであり、すべてのSQL文はデータベースに対する操作指示です。
通常、SQLは以下の5つの部分に分けられます:
データクエリ言語 DQL(Data Query Language):データ検索言語とも呼ばれ、テーブルからデータを取得し、それをプログラムに返して出力する方法を記述します。DQLはデータベースに保存されているデータの内容を変更しません。
データ操作言語 DML(Data Manipulation Language):データベースに保存されているデータの内容を変更するために使用され、データの追加、変更、削除を行います。
トランザクション制御言語 TCL(Transaction Control Language):データベースの完全性と一貫性を保証し、同一トランザクション内のDMLステートメントは、すべて同時に成功するか、すべて同時に失敗するかのどちらかです。
データ制御言語 DCL(Data Control Language):データアクセス権限を制御するコマンドです。特定のアカウントが特定のデータベースリソースにアクセスする権限を制御できます。
データ定義言語 DDL(Data Definition Language):データベース内のリソースの定義、変更、削除を行います。例えば、テーブルの作成や削除などです。
SQLの移植性
SQLはデータベースへのアクセスの標準言語であり、主要なリレーショナルデータベースはすべてSQLをサポートしています。そのため、SQLで記述されたプログラムはすべて移植可能です。通常、わずかな修正であるリレーショナルデータベース間で移植できます。
用語の慣例
太字 は、操作またはテキストや語彙表で定義された用語に関連付けられたグラフィカルユーザーインターフェース要素を示します。
予約語、キーワード、識別子、パラメータは大文字小文字を区別しません。読みやすさと識別を容易にするため、これらの単語は大文字で書かれます。
異なるプログラミング環境では、SQLステートメントの終端文字が異なります。このドキュメントでは、セミコロン ";" をSQLの終端として使用します。
行内コードは、ドキュメント内で引用されるコードを示します。重要な情報を強調するため、このドキュメントでは「説明」、「注意」、「重要」といったテキストを太字で表示します。
このドキュメントでは、オプションのパラメータテキストは角括弧で囲みます。例:[-n, -quiet]。