構造化クエリ言語(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)を開発しました。そして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]。