Программирование >>  Реализация целостности данных 

1 ... 37 38 39 [ 40 ] 41 42 43 ... 124


ЧАСТЬ 1 Теории ИОННЫХ баз данных

GROUP BY шяющее получить суммарные значения. Он поддерживается только SQL Server:

SELECT Categories.CategoryNane, Products.Producttome,

SUM([Order Details].Quantity) AS SumOfOuantity FROM (Categories INNER JOIN Products

ON Categories.CategorylD = Products. CategorylD) INNER JOIN [Order Details]

ON Products. ProductID = [Order Details]. ProductID

GROUP BY Categories.CategoryName, Products.ProductName WITH ROLLUP;

На рис11 показан результирующий набор записей, полученный после выполнения этого оператора.

fleverages

Chai

Chang

1D57

. Chartreuse verlE

M

Beverages

Cote de

Beverages

i Guarana Fanlastica

1125

Beyeragss

ilpoh Coffee

Severages

lLal<katil<8eri

i Laughing erjack Lager

Bararages

; Outback Lager

..... Ш

Beverages

iRhanbrau Klosterbiei

11SS

Beverages

jSasquatch Ale

........ 506

9 eyerages

: Sleeleye Stout

883

Эeyerages

B137

Condiments

Aniseed Syrup

Condiments

ChefAnlons Cajun SeasoninV

Puc. 5-11. Оператор ROLLUP позволяем чить суммарные значения

Как видите, набор записей на рис I I фактически тот же, что и на рис. 5-9, му лишь добавлены дополнительные записи. Записи, где есть значения Null (одна из таких записей показана на рис. .> 11), содержат суммарные значения для групп или подгрупп. Таким образом, всего было продано 8137 единиц напитков.

Оператор CUBE

Оператор CUBE, как и ROLLUP, реализован только в SQL Server как расширение оператора GROUP BY. Оператор CUBE агрегирует каждый столбец в <списке полей оператора ОгоирВу> по всем остальным столбцам. Концептуально оператор CUBE похож на ROLLUP, но в отличие от него, вычисляет суммарные значения для дополнительных групп, а марные значения для каждого столбца, нере-численного в



Предположим, чт ератора ОгоирВу> состоит из трех полей - А, В, и С. Тогда оператор CUBE вернет следующие семь агрегированных значений:

суммарное значение для всех значений столбца С;

суммарное значение для всех значений столбца С, сгруппированных по А;

суммарное значение для всех значений столбца С, сгруппированных по С в А;

суммарное значение для всех значений столбца С, сгруппированных по В в А;

суммарное значение для всех значений столбца С, сгруппированных по В;

суммарное значение для всех значений столбца С, сгруппирован-н1х по А в В;

суммарное значение для всех значений столбца С, сгруппированных по С в В.

Итоги

Эта глава была посвящена различным операциям над базовыми от-реализованным при помощи операторов и

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

и их расширений, связанные с трехзначной логикой и значениями

Null.

Ограничение, проекция и соединение - это стандартные реляционные операции адающие подмножества одного набора записей. Соединение, объединение, пересечение, разность и произведение - это реляционные операции шяющие объединять наборы записей разными способами. Все эти операции (за исключением разности) реализуются при помощи SQL-оператора SELECT. Разность тоже можно реализовать при помощи оператора SELECT, но иногда для этого приходится применять особые методы.

Кроме того, мы рассмотрели несколько дополнительных операторов. Агрегирование и расширение относятся к операциям, выполняющим различные вычисления с данными. Переименование позволяет ввести заголовки столбцов, отображаемые в проекции. Операторы TRANSFORM, ROLLUP и CUBE - это расширения языка SQL, реализованные Microsoft. Каждый из этих операторов представляет собой отдельный способ агрегирования и представления данных.

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



ЧАСТЬ 1

осветила меко не все ее вопросы. Подробное рассмотрение реляционной теории ба ны\ выходит за рамки этой книги, однако все основные положения этой теории изложены в первых пяти главах.

Далее мы перейдем к практическим аспектам разработки СУБД и пользовательского интерфейса.



1 ... 37 38 39 [ 40 ] 41 42 43 ... 124

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика