v8: Сходства и различия языка запросов 1С и стандартного 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 могут быть связаны с внешним (коррелированные запросы)
|