第4章. CockroachDBのSQL
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
CockroachDBの言語はSQLである。 コマンドライン・ユーティリティもあるが、アプリケーションとデータベース間のやり取りはすべてSQL言語コマンドによって行われる。
SQLは長い歴史を持つ豊かな言語であり、第1章ではその歴史の一端に触れた。 SQL言語がリリースされるたびに進化しているため、SQL言語のすべての機能を完全に定義しようとすると、それだけで1冊の本が必要になり、ほとんどすぐに古くなってしまうだろう。
したがって、この章ではCockroachDBで使用されるSQL言語の大まかな概要を提供することを目的とし、完全なリファレンスにはならない。SQLに対するタスク指向のアプローチを取り、CockroachDBのSQL実装のユニークな機能に特に言及しながら、最も一般的なSQL言語タスクをカバーする。
第1章で説明したように、SQLは宣言型言語である。 SQL文は、クエリやデータ演算子に対する論理的な要求を表すものであり、データベースがそれらの要求をどのように実装すべきかを指定するものではない。
CockroachDBのSQL言語の完全なリファレンスは、CockroachDBドキュメント・セットで発見できる。 SQL言語のより広範なレビューは、O'Reilly book SQL in a Nutshellで発見できる。
この章のいくつかの例では、様々なSQL言語機能を説明するために、この章のMovRサンプルデータセットを使用している。 第2章ではサンプルデータのインストール方法を示した。
SQL言語の互換性
CockroachDBは、SQL:2016標準のPostgreSQL実装であると幅広い互換性がある。 SQL:2016標準には多数の独立したモジュールが含まれており、主要なデータベースですべての標準を実装しているものはない。しかし、SQLのPostgreSQL実装は、データベース・コミュニティに存在する限り、間違いなく「標準」に近い。
CockroachDBは、いくつかの点でPostgreSQLと異なる:
-
CockroachDBは現在、ストアドプロシージャ、イベント、トリガをサポートしていない。 PostgreSQLでは、これらのストアドプロシージャは
PL/pgSQL言語で記述され、データベースサーバ内で、オンデマンドまたは何らかのトリガイベントにレスポンスしてプログラミングロジックを実行できる。 -
CockroachDBは現在、ユーザ定義関数をサポートしていない。
-
CockroachDBはPostgreSQL XML関数をサポートしていない。
-
CockroachDBは、PostgreSQLのフルテキストインデックスと関数をサポートしていない。
SELECTでデータをクエリする
クエリを実行する前に、テーブルを作成し、入力する必要があるが、SELECT 文から始めるのが論理的である。なぜなら、SELECT 文の多くの機能は、他の種類のSQL(例えば、UPDATE文のサブクエリ)にも登場するからである。また、データ科学者やアナリストにとって、SELECT 文は、学ぶ必要のある唯一のSQL文であることが多い。
SELECT 文(図4-1)は、リレーショナル・クエリの主力であり、複雑で豊富な構文を持っている。 CockroachDBSELECT ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access