Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика / Банки данных. Базы данных. Модели данных. СУБД.ppt
Скачиваний:
513
Добавлен:
31.05.2015
Размер:
3 Mб
Скачать

Оператор SELECT

Если вы хотите видеть каждый столбец таблицы, имеется необязательное сокращение которое вы можете использовать. Звездочка (*) может применяться для вывода полного списка столбцов следующим образом:

SELECT * FROM Salespeople;

Агрегатные функции в SQL

Агрегатные функции предназначены для того, чтобы вычислять некоторое значение для заданного множества строк. Таким множеством строк может быть группа строк, если агрегатная функция применяется к сгруппированной таблице, или вся таблица.

Виды агрегатный функций

COUNT - производит номера строк или не-NULL значения полей которые выбрал запрос.

SUM - производит арифметическую сумму всех выбранных значений данного пол.

AVG - производит усреднение всех выбранных значений данного пол.

MAX - производит наибольшее из всех выбранных значений данного пол.

MIN - производит наименьшее из всех выбранных значений данного пол.

Использование агрегатных функций

SELECT {COUNT | MAX | MIN | SUM | AVG}

(* [ALL|DISTINCT] <имя столбца>, …) FROM <имя таблицы>

WHERE <условие>

GROUP BY <имя столбца>, … | HAVING

<условие>;

Выполнение агрегатных функций

Заказы

 

 

 

 

 

 

-----------------------------------------------

ONUM

|

AMT

|

ODATE

| CNUM

| SNUM

-------

|

-----------

|

-------------

|------

|------

3001

|

18.69

|

10/03/1990

| 2008

| 1007

3003

|

767.19

|

10/03/1990

| 2001

| 1001

3002

|

1900.10

|

10/03/1990

| 2007

| 1004

3005

|

5160.45

|

10/03/1990

| 2003

| 1002

3006

|

1098.16

|

10/03/1990

| 2008

| 1007

3009

|

1713.23

|

10/04/1990

| 2002

| 1003

3007

|

75.75

|

10/04/1990

| 2004

| 1002

3008

|

4723.00

|

10/05/1990

| 2006

| 1001

3010

|

1309.95

|

10/06/1990

| 2004

| 1002

3011

|

9891.88

|

10/06/1990

| 2006

| 1001

-----------------------------------------------

 

 

SELECT SUM ((amt)) FROM Orders;

-

26658.4

SELECT AVG ((amt)) FROM Orders;

-

2665.84

SELECT MAX ((amt)) FROM Orders;

-

9891.88

SELECT MIN ((amt)) FROM Orders;

-

18.69

SELECT COUNT (*) FROM Orders; -

11

 

Группировка для агрегатных функций

Заказчики

 

 

 

 

 

 

 

 

 

 

----------------------------------------------

 

 

 

 

CNUM

|

CNAME

| CITY

| RATING

| SNUM

-------------------------

-------

|

------------

|---------

|

--------

|------

CITY

| RATING | SNUM

2001

|

Hoffman

| London

|

100

| 1001

---------

|

--------

|------

2002

|

Giovanni

| Rome

|

200

| 1003

London

|

200

| 1001

2003

|

Liu

| SanJose

|

200

| 1002

Rome

|

300

| 1003

2004

|

Grass

| Berlin

|

300

| 1002

SanJose

|

500

| 1002

2006

|

Clemens

| London

|

100

| 1001

Berlin

|

300

| 1002

2008

|

Cisneros

| SanJose

|

300

| 1007

 

 

 

 

2007

|

Pereira

| Rome

|

100

| 1004

 

 

 

 

Выбрать рейтинг по городам:

SELECT city, SUM(RATING) FROM Clients

GROUP BY city;

Использование HAVING

Предположим, что в предыдущем примере, вы хотели бы увидеть только максимальную сумму приобретений значение которой выше $3000.00

SELECT snum, odate, MAX (amt) FROM Oreders

WHERE MAX ((amt)) > 3000.00 GROUP BY snum, odate;

Проекция и выборка

SELECT [ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] ...}

FROM

{имя_таблицы_1 | представление} [псевдоним]

[,{имя_таблицы_2 | представление} [псевдоним], ...]

[WHERE <условие>]

[GROUP BY <имя_столбца_1> [,<имя_столбца_2>, ...] | [HAVING <имя_столбца_1> [,<имя_столбца_2>, ...]]

[ORDER BY <имя_столбца_1> [,<имя_столбца_2>, ...]];

Проекция – это выбор столбцов в любом порядке.

Выборка любой запрос SELECT.

Декартовое произведение

SELECT [ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] ...}

FROM {имя_таблицы_1 | представление} [псевдоним]

,{имя_таблицы_2 | представление} [псевдоним],

...;

Предварительные

замечания

Системы дистрибутивных баз данных состоят из набора узлов, связанных вместе коммуникационной сетью, в которой:

каждый узел обладает своими собственными системами баз данных;

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