Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD / Labs / Russian / Russian / Lab5R-Functions-Group-by-Having-Order-by-NEW.doc
Скачиваний:
19
Добавлен:
20.02.2016
Размер:
714.75 Кб
Скачать

Лабораторная работа 5

Функции SQL Oracle. Дополнительные фразы предложения SELECT

Содержание

1. Цели лабораторной работы 1

2. Теоретические основы 2

2.1. Функции SQL Oracle 2

2.1.1. Агрегатные функции 2

2.1.2. Функции одной строки 3

2.2. Фразы GROUP BY и HAVING 9

2.2.1. Синтаксис: 9

2.2.2. Назначение 9

2.3. Фраза ORDER BY 10

2.3.1. Синтаксис: 10

2.3.2. Назначение 10

3. Описание и примеры 10

3.1. Агрегатные функции 10

3.2. Фразы GROUP BY и HAVING 11

3.3. Фраза ORDER BY 12

4. Варианты заданий 13

4.1. Вариант 1 15

4.2. Вариант 2 15

4.3. Вариант 3 16

4.4. Вариант 4 17

4.5. Вариант 5 18

4.6. Вариант 6 18

4.7. Вариант 7 19

4.8. Вариант 8 20

4.9. Вариант 9 21

4.10. Вариант 10 22

4.11. Вариант 11 23

4.12. Вариант 12 24

4.13. Вариант 13 25

4.14. Вариант 14 26

4.15. Вариант 15 28

4.16. Вариант 16 29

4.17. Вариант 17 29

4.18. Вариант 18 31

5. Контрольные вопросы 32

  1. Цели лабораторной работы

  • Изучить функции SQL Oracle, а также фразы GROUP BY, HAVING, ORDER BY предложения SELECT.

  • Приобрести практический опыт по использованию фраз GROUP BY, HAVING, ORDER BY предложения SELECT с использованием SQL*Plus.

  1. Теоретические основы

    1. Функции SQL Oracle

Функции SQL являются встроенными в Oracle и доступны для использования в соответствующих фразах различных предложений SQL. Не смешивайте функции SQL с пользовательскими функциями, написанными на языке PL/SQL.

Если вы вызываете функцию со значением аргумента null, то она автоматически возвращает значение null. Единственными функциями, которые соответствуют этому правилу, являются CONCAT, DECODE, DUMP, NVL и REPLACE.

Имеется следующие две категории функций SQL:

Функции одной строки

Эти функции возвращают единственное значение для каждой строки таблицы. Эти функции могут использоваться в списке select (если предложение SELECT не содержит фразы GROUP BY) и во фразе WHERE.

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

Они возвращают одно значение на основании совокупности строк таблицы. Агрегатные функции могут использоваться в списке select и фразе HAVING.

      1. Агрегатные функции

Если вы используете фразу GROUP BY в предложении SELECT, SQL разделяет строки таблицы на группы. В запросе, содержащем фразу GROUP BY, все элементы в списке select должны использоваться либо выражения из фразы GROUP BY, либо выражения, содержащие агрегатный функции, либо константы. SQL применяет агрегатные функции в списке select к каждой группе строк и возвращает единственную результирующую строку в качестве результатадля каждой группы.

Если фраза GROUP BY отсутствует, Oracle применяет агрегатную функция в списке select ко всем строкам таблицы запроса. Если агрегатная функция используется во фразе HAVING, то она используется для определения условия удаления групп строк, задаваемых фразой GROUP BY. Фразы GROUP BY и HAVING будут изучены в этой Лаб. позже.

Многие агрегатные функции используют следующие фразы:

DISTINCT

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

ALL

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

Все агрегатные функции за исключением COUNT(*) игнорируют значения null.

Вы можете использовать функцию NVL в аргументе агрегатной функции для замены значения null.

Если аргумент агрегатной функции не имеет строк или все строки имеют значения null, то агрегатная функция возвращает значение null

Имеются следующие агрегатные функции:

Функция

Синтаксис

Назначение

Пример

COUNT

Возвращает количество строк в запросе. Если указано expr, то возвращается количество строк, в которых expr (в частном случае expr – это столбец) не равно null. Можно подсчитать либо все строки (ALL), либо те, в которых значения expr являются различными (DISTINCT).

Если указана звездочка (*), то функция возвращает количество всех строк, включая и дубликаты и те, которые имеют null.

SELECT COUNT(*) AS Total

FROM TEACHER;

SELECT COUNT(post)

FROM TEACHER;

SELECT COUNT(DISTINCT post)

FROM TEACHER;

AVG

Возвращает среднее значение среди всех значений выражения expr по всем строкам. Значения NULL не учитываются при вычислении функции

SELECT AVG(Salary)

FROM TEACHER

WHERE Post='professor';

MIN

Возвращает минимальное значе­ние expr по всем строкам. Значения NULL не учитываются при вычислении функции

SELECT MIN(Hiredate)

FROM TEACHER;

MAX

Возвращает максимальное значе­ние expr по всем строкам. Значения NULL не учитываются при вычислении функции

SELECT MAX(Hiredate)

FROM TEACHER

WHERE Name LIKE 'А%';

SUM

Возвращает сумму значений expr по всем строкам. Значения NULL не учитываются при вычислении функции

SELECT SUM(Salary)

FROM TEACHER

WHERE Post='assistant';

STDEV

Возвращает стандартное откло­не­ние x,. SQL вычис­ля­ет стандартное отклонение как корень квадратный от значения, вычисленного по функции VARIANCE.

SELECT STDEV(Salary)

FROM TEACHER;

VARIANCE

Возвращает variance x,. SQL вычисляет variance х по формуле:

где:

xi - один из элементов x. n – количество элементов во множестве x. Если n = 1, то variance равен 0.

SELECT VARIANCE(Salary)

FROM TEACHER;

Соседние файлы в папке Russian