русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Выражения в SQL.


Дата добавления: 2013-12-23; просмотров: 1813; Нарушение авторских прав


Средства манипулирования данными (DML) в SQL.

Имеется всего четыре, но очень мощных, оператора: SELECT (отбор), INSERT (вставка), DELETE (удаление), UPDATE (обновление).

¨ SELECT (отбор).

SELECT [DISTINCT | ALL] СписокКолонок

FROM ИмяТаблицы [ПсевдонимТаблицы], ...

[WHERE УсловиеОтбора]

[GROUP BY КлючГруппировки]

[HAVING УсловиеОтбораПослеГруппировки]

[ORDER BY КлючУпорядочения]

[UNION [ALL] Select-оператор]

ПсевдонимТаблицы – произвольное имя. Если псевдоним не указан, то по умолчанию онсовпадает с ИменемТаблицы.

Семантика оператора SELECT. По исходным FROM-таблицам, назовем их Т1,... строится безымянная выходная таблица.

§ Строится W1 = декартово произведение FROM-таблиц Т1,... просто присоединением к каждой строке из Т1 каждой строки из Т2, присоединением к результату каждой строки из...

§ Строится W2 = выборка из W1 по WHERE-УсловиюОтбора

§ Строки таблицы W2 «пачкуются» в группы. В одну группу входят все строки с одним и тем же значением КлючаГруппировки.

Строится W3 = в W3 формируется точно по одной строке для каждой группы из W2. Способ формирования такой строки по группе определяется СпискомКолонок, детали рассмотрим позже.

§ Строится W4 = выборка из W3 по HAVING-УсловиюОтбораПослеГруппировки.

§ Если имеется UNION-фраза, то аналогично строится результат для Select-оператора этой фразы (кстати, в ней могут быть вложенные UNION-фразы).

Строки полученного результата добавляются к W4, поэтому результат UNION-фразы должен быть таблицей, совместимой с W4. Если UNION-фраза не имеет уточнения ALL, то добавляются только строки, хотя бы чем-то отличающиеся по значению от строк, уже имеющихся в W4.

§ Строки полученной в итоге таблицы W4 упорядочиваются по КлючуУпорядочения. Фраза ORDER BY может присутствовать в операторе не более одного раза, даже при наличии многих UNION-фраз.



§ Если указано уточнение DISTINCT, из W4 удаляются все (полные) повторения строк (остаются точно по одной из каждой группы одинаковых).

§ Окончательный результат оператора SELECT строится по итоговому W4 вычеркиванием лишних колонок, не объявленных в СпискеКолонок.

· Простые выражения строятся по обычным правилам из констант, имен полей таблиц и предопределенных операций для базовых типов данных. Можно использовать уточненные имена полей таблицПсевдонимТаблицы.ИмяПоляТаблицы. Значение простого выражения вычисляется для фиксированной строки таблицы (возможно собранной из нескольких исходных таблиц, как было описано выше).

· Групповые выражения тоже имеют скалярное значение, но их значение вычисляется по группе строк, заданной КлючомГруппировки, как было описано выше.

Групповые выражения строятся с помощью групповых функций.

§ SUM([DISTINCT] ПростоеВыражение) имеет значением сумму значений ПростогоВыражения по всем строкам группы.

Если указано уточнение DISTINCT, то каждое из полученных для строк группы значений ПростогоВыражения участвует в сумме точно один раз без повторений.

§ Аналогичный смысл у групповых функций AVG (среднеарифметическое), MAX (максимальное), MIN (минимальное).

§ COUNT(Аргумент), где

Аргумент = * | DISTINCT ПростоеВыражение

имеет значением для Аргумент = * - количество строк в группе, а для другого вида Аргумента –количество различных значений ПростогоВыражения по всем строкам группы.

ПРИМЕР. Пусть таблица поставок PST сгруппирована по ключу группировки PST.KDET.

COUNT(DISTINCT PST.KPST) – количество разных поставщиков уже поставивших деталь KDET.

COUNT(*) – количество партий этой детали уже полученных от всех поставщиков.

SUM(PST.KOL) – общее количество в штуках детали KDET уже полученное, суммарно по всем поставщикам.

Из вышеприведенных групповых выражений можно строить более сложные групповые выражения, используя дополнительно константы, имена полей и операции базовых типов данных.

· Условия. Выражения этого вида играют в SQL особую роль. Это логические выражения, которые используются как УсловияхОтбора (до и после группировки).

Ниже Выражение – простое или групповое выражение.

§ Выражение Сравнение Выражение

Набор операций Сравнения для базовых типов данных: = < > и т.п.

§ Выражение Сравнение SelectOne-оператор

SelectOne-оператор должен строить одно колоночную таблицу с одной строкой.

§ Выражение [NOT] BETWEEN Выражение AND Выражение

E1 BETWEEN E2 AND E3 в терминах языка Паскаль имеет смысл E1 IN [E2..E3], а NOT – отрицание.

§ Выражение [NOT] IN (Выражение, ...)

E1 IN (E2,...) в терминах языка Паскаль: E1 IN [E2,...].

§ Выражение [NOT] IN (SelectList-оператор)

SelectList-оператор строит одно колоночную таблицу.

§ Выражение Сравнение {ALL|SOME} (SelectList-оператор)

E > ALL (SelectList-оператор) имеет смысл: E строго больше всех значений из строк одно колоночной таблицы. SOME ... хотя бы одного значения...

§ EXISTS (Select-оператор)

Имеет смысл: результат Select-оператора непустая таблица.

Из вышеприведенных условий можно строить более сложные с помощью операций логики высказываний: AND OR NOT.



<== предыдущая лекция | следующая лекция ==>
Средства описания баз данных (DDL) в SQL. | Теперь вернемся к синтаксису оператора SELECT.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.