Изначально SQL задумывался как средство работы конечного пользователя, но в конечном итоге он стал настолько сложным, что превратился в инструмент программиста.
Конечный пользователь представляет работу с базами данных как приложение, программу, в которой все интуитивно понятно, которая не будет требовать особых навыков и логического мышления, но никак не сотни и тысячи строк программного кода, который написал один человек. В одной команде SELECT конечный пользователь может запутаться надолго. А помимо этой команды есть еще и множество других.
Отступления от стандартов
Несмотря на наличие международного стандарта ANSI SQL-92, многие разработчики СУБД вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом, появляются специфичные для каждой конкретной СУБД диалекты языка SQL. Диалектом называется каждая из реализаций языка SQL в конкретной СУБД.
Выделяют три уровня соответствия стандарту — начальный, промежуточный и полный. В наше время нет ни одного диалекта, полностью соответствующего стандарту. Производители СУБД применяют собственные реализации SQL, отвечающие как минимум начальному уровню соответствия стандарту и содержащие расширения, специфические для данной СУБД. Каждый производитель вводит все больше и больше расширений, что приводит к полной отличности отдельных диалектов друг от друга.
Основные примеры диалектов языка SQL:
- · PL/SQL — в СУБД Oracle
- · Transact-SQL — в СУБД Microsoft SQL
- · Informix-SQL — в СУБД Informix
- · Jet SQL — Microsoft Access.
Недостаток состоит в том, что различия в диалектах сильно затрудняют перенос из одной системы в другую.