コンピュータ言語には、インタプリテーション言語とプログラミング言語という二つの大きなカテゴリーがあります。
インタプリテーション言語は非手続き型であり、何をするかだけを記述します。一方、プログラミング言語は、C++やJavaなど、どのように物事を行うかを記述します。
この分類から見ると、SQLはインタプリテーション言語に属します。ユーザーはデータの生成方法ではなく、求める結果を指定します。例えば、以下のステートメントを使用して、姓が「張」の従業員のレコードを照会します。データベースはデータ取得プロセスを実行し、検索したデータをユーザーに返します。SQLのこの説明的な特性により、論理レベルでデータを処理できます。実装の詳細に注意を払う必要があるのは、データを操作する場合だけです。
SELECT last_name,first_name
WHERE last_name LIKE '張 %' ORDER BY last_name,first_name;
データベースは、WHERE 句で指定された条件(これを述語とも呼びます)を満たすすべての行を取得します。データベースはこれらの行を一つの単位としてユーザー、他のSQLステートメント、またはアプリケーションに渡すことができます。アプリケーションは各行を個別に処理する必要はなく、開発者はこれらのデータ行が物理的にどのように保存されているか、またどのように検索されるかを知る必要もありません。
すべてのSQLステートメントはオプティマイザーを使用します。オプティマイザーはデータベースのコンポーネントの一つであり、要求されたデータへの最も効率的なアクセス方法を決定します。OceanBaseデータベースはまた、オプティマイザーを活用してユーザーのさまざまなニーズをよりよく満たすための技術も提供しています。