6

SQL は文脈自由言語ですか、それとも他のタイプの言語ですか?

4

4 に答える 4

7

https://stackoverflow.com/a/31265136によると、SQL は通常の言語ではありません。簡単な説明は、各選択クエリが次のように見えるということです

 SELECT x FROM y WHERE z

y別の選択クエリ自体になる可能性があるため、有限状態マシンでシミュレートすることはできません。前に述べたように、 Backus-Naur Formには SQL 標準の CFG がいくつかあります。したがって、SQL は非正規の文脈自由言語です。

于 2015-10-29T13:14:41.540 に答える
2

@aquinas は次のように書いています。

SQLもレギュラーということですか?CFG には通常の言語が含まれます。したがって、それらは相互に排他的ではありません。ただし、質問に答えると、SQL は通常の言語ではありません。

@MSX は次のように書いています。

明確にするために、言語は文脈自由文法によって生成された場合、文脈自由です。SQL 文脈自由文法定義がオンラインにあります。グーグルで検索すると、いくつか見つかります。たとえば、次のようなものがあります。

于 2015-05-26T18:30:17.133 に答える
-1

PL/SQL コンテキストで類似しているのは、SQL または PL/SQL が正確にどのコードであるかということです。これは、ファンクション キーワードを具象として定義した場合、どのファンクションを使用できるかを制御したい場合、このコンテキストを知る必要があるためです。

于 2020-07-16T01:16:40.563 に答える