Моя SQL версия определяется базой данных, к которой я обращаюсь, или моим SQL клиентом? - PullRequest
1 голос
/ 13 февраля 2020

У меня есть запрос SQL, который я хочу оптимизировать, поэтому я спросил владельца базы данных, какую версию SQL они использовали (поскольку обычные методы, похоже, не поддерживали). Они ответили, что моя версия SQL определяется не ими, а моим локальным клиентом SQL. Они утверждали, что используют систему под названием «DB2» с поддержкой нескольких диалектов SQL.

Затем я спросил наш ИТ-отдел, какую версию SQL использовал наш клиент (этот клиент был Squirrel SQL). После некоторой возни они вошли в базу данных, запросили ее и сообщили, что версия SQL - DB2. [Последовательность десятичных чисел].

Это, вероятно, глупый вопрос, но кто-то возражает, если он укажет это ?

  • Используемая версия SQL определяется используемой базой данных или клиентом SQL?

  • Если база данных определяет версию SQL, то с какой версией SQL связана DB2? Использует ли он свою собственную версию?

Ответы [ 2 ]

3 голосов
/ 13 февраля 2020

" Они ответили, что моя версия SQL определяется не ими, а моим локальным SQL клиентом "

Это полная и полная чушь - эти люди, очевидно, понятия не имеют, о чем они говорят.

Диалект SQL, который понимает сервер, определяется только этим сервером. Клиент не имеет к этому никакого отношения. Если сервер базы данных не поддерживает какую-либо конкретную функцию c, никакой клиент SQL не изменит это.

2 голосов
/ 13 февраля 2020

Существует отраслевой стандарт ANSI SQL, который внедряют производители баз данных. Кроме того, они используют нестандартные проприетарные вещи, дополнительные команды, ключевые слова, процедурные вещи, такие как хранимые процедуры, триггеры и курсоры, которые не охватываются стандартом, но, как они ожидают, предоставят полезные функции, которые будут отличать их от соревнование.

Соответствие стандартам Db2 11 см. https://www.ibm.com/support/knowledgecenter/SSEPGG_11.1.0/com.ibm.db2.luw.common.doc/doc/c0011215.html. Фактическое значение c находится за платным доступом, так что это не очень полезно. См. https://www.whoishostingthis.com/resources/ansi-sql-standards/#sql -ansi-Standard-for-Database-Administration для объяснения стандартов ANSI SQL.

Различные продукты db2 (Z / OS, LUW) могут иметь разные расширения. Z / OS должна делать ужасные вещи с мейнфреймами, без которых LUW может обойтись. Но у вас не будет выбора, вы должны использовать команды, реализованные базой данных, к которой вы подключены. Клиент SQL не играет в этом никакой роли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...