Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



Разрешение коллизии имен. Квалифицированные имена и алиасы.




Читайте также:
  1. II. Имена существительные
  2. III. Имена прилагательные
  3. IX. Разрешение споров и разногласий
  4. Глава 1. Обо всех именах превосходного свойства базовой опоры
  5. Доменные имена
  6. Задание 16. Поставьте имена прилагательные в форму сравнительной степени. Объясните, почему невозможно образовать простую форму сравнительной степени имени прилагательного.
  7. Имена девочек
  8. Имена мальчиков
  9. Имена прилагательные
  10. Имена связей

 

Синтаксис SQL не запрещает называть поля разных таблиц одним и тем же именем, что приводит к конфликту имен при формировании запроса из таких таблиц.

 

Квалифицированное (полное) имя à Имя таблицы. Имя поля

 

Замечание. Некоторые СУБД способны одновременно манипулировать с таблицами из разных БД – снова, возможно, одноименными, что приводит к необходимости дальнейшего уточнения имен, например

 

Имя БД! Имя таблицы. Имя поля

(синтаксис FoxPro)

 

Применение полных имен не спасает от коллизии в случае, когда команда SELECT ссылается на одну базовую таблицу несколько раз (например, при выборке из декартовой степени (двух копий) одной таблицы или – см. далее, в случае вложенных запросов, т.е. использования одной выборки в предикатах другой выборки). В таких случаях необходимо использовать псевдонимы/алиасы таблиц; последние задают временные имена (копий) таблицы, действительные только на момент выполнения данной выборки;

 

Группировка и групповые вычисления. Опции Group By и Having

 

Синтаксис

GROUP BY List

 

где List – список (перечисление) полей группировки. При этом поля из списка могут быть заданы явно или числовой ссылкой на номер поля в списке выбора (в некоторых версиях также – выражением символьного типа) .

 

 

Cписок выборки при этом может состоять лишь из обращений к функциям, выдающим одно значение для каждой группы (групповым функциям) - по определению, таковыми являются значения полей группировки, а также следующие агрегатные (т.е. групповые) функции:

 

- COUNT(Выражение) - количество значений заданного выражения в группе, не равных NULL;

- COUNT(*) - число строк в группе;

- MIN(Выражение) - минимальное значение данного выражения по группе;

- MAX(Выражение) - максимальное значение данного выражения по группе;

- SUM(Числовое_выражение) - сумма значений заданного выражения по группе;

- AVG(Числовое_выражение), - среднее значение заданного выражения по группе;

 

Семантика –

1) производиться разбиение базовой таблицы (декартово произведение базовых таблиц) на группы – классы эквивалентности, для которых поля из заданного списка принимают одинаковые значения.



R1,R2 принадлежат одной группе g » R1 »list R2 » R1(List)=R2(List)

 

3) Для каждой группы вычисляются значения заданных списком выборки функций над группами

 

Select F1(List), …, Fn(List) from T group by List =

{ <F1(g), …, Fn(g)>: g Î T/»list }

 

 

 


Примечание. Использование агрегатных функций возможно и без явного применения опции GROUP BY - в этом случае группой считается вся базовая таблица (декартово произведение базовых таблиц, если их несколько)

 

Опция

HAVING Условие_на_группу

 

по семантике схожа (и часто путается ) с опцией WHERE, но, в отличие от последней, фильтрует не одиночные записи, а группы. Используется только совместно с GROUP BY. Очевидно, задаваемое условие на группу должно ссылаться только на групповые функции. Как правило, это условие является проверкой значений некоторых агрегатных функций - для проверки значений полей списка группировки эффективнее использовать опцию WHERE.

 


Дата добавления: 2015-01-29; просмотров: 7; Нарушение авторских прав







lektsii.com - Лекции.Ком - 2014-2021 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты