Трудно точно знать, о чем думали разработчики языка SQL, когда писали стандарт, , но вот мое мнение .
SQL, как правило, требует от васчетко изложите свои ожидания и свои намерения.Язык не пытается «угадать, что вы имели в виду» и автоматически заполняет пробелы. Это хорошо .
Когда вы пишете запрос, самое важное соображение заключается в том, что он дает правильные результаты . Если вы сделалиошибка, вероятно, лучше, чтобы анализатор SQL информировал вас, а не делал предположения о вашем намерении и возвращал результаты, которые могут быть неверными.Декларативный характер SQL (когда вы указываете, что вы хотите получить, а не как его извлекать), уже упрощает непреднамеренную ошибку. Введение нечетких слов в синтаксис языка не улучшило бы это .
Фактически, каждый случай, когда я могу вспомнить, где язык допускает ярлыки , вызывает проблемы.Возьмем, к примеру, естественные объединения - где вы можете опустить имена столбцов, к которым вы хотите присоединиться, и разрешить базе данных выводить их на основе имен столбцов.Как только имена столбцов изменяются (как они, естественно, со временем) - семантика существующих запросов изменяется вместе с ними . Это плохо ... очень плохо - вы действительно не хотите, чтобы подобное волшебство происходило за кулисами в коде вашей базы данных.
OneСледствием этого выбора дизайна, однако, является то, что SQL является многословным языком, на котором вы должны явно выразить свое намерение. Это может привести к необходимости писать больше кода, чем вам может понравиться, и огорчаться по поводу того, почему определенные конструкции настолько многословны... но в конце дня - это то, что есть.