Основы программирования в СУБД Oracle. SQL+PL/SQL. - страница 16

Шрифт
Интервал


В предложении GROUP BY можно указать столбцы, по которым следует осуществить группировку. Группировка состоит в том, что несколько строк, имеющих совпадающие значение столбцов, по которым осуществляется группировка, объединяются в одну строку. Обычно группировка используется в запросах, использующих агрегатные функции, например: Sum (), Max ().

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

При изучении SQL следует обратить внимание на то, что для формирования запроса необходимо:

– определить структуру запроса, соответствующую заданной задаче обработки данных;

– синтаксически правильно записать запрос.

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

В своей простейшей форме оператор SELECT должен включать в себя следующее:

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

– предложение FROM, в котором указывается имя таблицы, содержащей данные.


SELECT {список столбцов}

FROM {таблица};

Пример 2.1. Вывод содержимого одного столбца


SELECT employee_id

FROM Employees;


Пример 2.2. Вывод содержимого нескольких столбцов


SELECT employee_id, first_name, last_name, department_id

FROM Employees;


Если в качестве результата выполнения запроса нужно вывести значения всех столбцов, то вместо списка столбцов указывается символ *.


Пример 2.3. Вывод значений всех столбцов


SELECT *

FROM Employees;


Исключение дублирования данных


Рассмотрим запрос, который выводит коды должностей сотрудников.


Пример 2.4. Вывод значений столбца job_id


SELECT job_id

FROM Employees;


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


Пример 2.5 Вывод значений столбца job_id без дублирования


SELECT DISTINCT job_id

FROM Employees;

Условия выбора

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