В настоящее время я пишу приложение C ++ для анализа и выполнения операторов SQL. Я дошел до этого, но теперь мне трудно продолжать, потому что я не знаю, что должно произойти в определенных ситуациях, например, с объединением таблиц, например, в:

SELECT col1.table1, col2.table2 
FROM table1, table2;

Без явного указания JOIN.

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

Я хочу быть в состоянии найти то, что должно произойти, даже (особенно), если это просто означает соответствующее сообщение об ошибке.

sql
1
StinkyPete 30 Апр 2019 в 18:59

3 ответа

Лучший ответ

Вы не указали, с каким типом SQL-сервера вы работаете, но MySQL бесплатен, и некоторые коммерческие поставщики SQL имеют бесплатные версии своих продуктов для разработчиков. Установите и попробуйте.

1
Duston 30 Апр 2019 в 19:40

Это старый синтаксис для CROSS JOIN. По сути, все строки таблицы 1 объединены со всеми строками таблицы 2: полное перекрестное произведение обеих таблиц.

Это совершенно правильный синтаксис SQL, но просто старый (из 80-х и 90-х). Вам лучше использовать / принять только CROSS JOIN.

1
The Impaler 30 Апр 2019 в 16:03

Если вы хотите знать, что должно произойти, то единственное место, где можно посмотреть, - это стандарт SQL2016: https://www.iso.org/standard/63555.html

В ИСО / МЭК 9075-1: 2016 описывается концептуальная основа, используемая в других частях ИСО / МЭК 9075 для определения грамматики SQL и результата обработки операторов на этом языке с помощью реализации SQL .

Это ~ 175 долларов ...

0
thebjorn 30 Апр 2019 в 16:03