Декларативный. Говорит о том, ЧТО нужно в результате, а
не о том, КАК это получить.
Императивный. Говорит о том, КАК решать задачу, пошагово.
Оперирует таблицами, полями
Оперирует переменными, программными объектами
Различия в синтаксисе
∙ Справочник.ИмяСпр
∙ Литералы дат ДАТАВРЕМЯ
∙ Функция ПОДСТРОКА
Различия в синтаксисе
∙ Справочники.ИмяСпр
∙ Литералы дат ‘2006-12-31’
∙ Функция СРЕД
В серверной версии запросы всегда выполняются сервером (приложений
или сервером БД)
По усмотрению программиста (директивы препроцессора, флаг
Сервер)
Оторван от контекста модуля, параметры нужно явно передавать
в запрос
Выполняется строго в контексте модуля.
Срисован с SQL
Срисован с Visual Basic / C
NULL
Неопределено
Сходства
1. Обращение к свойствам (разыменование) через точку
2. ЕСЛИ ~ ВЫБОР
3. Сходные функции
4. ВЫБРАТЬ – цикл по коллекции
5. Одинаковый механизм логических сравнений (условий), за исключением
NULL
6. NULL и Неопределено (по смыслу похожи, но не по значению)
Сходства и различия языка
запросов 1С 8.0 и стандартного SQL
∙ выборка определенных полей (или всех полей с помощью звездочки
*) (SELECT / ВЫБРАТЬ);
∙ указание таблиц-источников данных (FROM / ИЗ);
∙ задание условий отбора (WHERE / ГДЕ);
∙ группировка по заданным полям с подсчетом агрегатных функций (GROUP
BY / СГРУППИРОВАТЬ ПО, SUM, AVG, COUNT, MIN, MAX);
∙ отбор групп (HAVING / ИМЕЮЩИЕ);
∙ сортировка результата (ORDER BY / УПОРЯДОЧИТЬ ПО)
∙ соединения таблиц (JOIN...ON / СОЕДИНЕНИЕ ПО), в том числе левые
и правые внешние соединения;
∙ объединения нескольких запросов (UNION / ОБЪЕДИНИТЬ);
∙ вложенные подзапросы (в ИЗ).
∙ подсчет промежуточных и общих итогов, в том числе по группировочным
полям и уровням иерархии (итоговые строки включаются в результат
запроса вместе с детальными); В SQL есть WITH ROLLUP
Различия
∙ в 1С есть обращение к свойствам объектов через точку или несколько
точек (по-научному это называется "разыменование ссылочных
полей");
∙ в 1С есть обращение к табличным частям объектов, например, справочников
и документов (специфика 1С:Предприятия);
∙ в 1С есть виртуальные таблицы для быстрого обращения к нужным
данным из регистров (остатки, обороты и т.д.);
∙ в 1С есть расширения для построителя отчетов
∙ в 1С есть двуязычность языка запросов (рус/англ)
∙ в 1С есть возможность наложения блокировки на таблицы с помощью
предложения ДЛЯ ИЗМЕНЕНИЯ
∙ SQL позволяет изменение данных, изменение структуры таблиц, управление
правами пользователей и т.д.
∙ вложенные запросы в SQL могут быть связаны с внешним (коррелированные
запросы)