Оценить:
 Рейтинг: 0

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

Год написания книги
2020
<< 1 2 3 4 5 6 7 8 9 10 ... 24 >>
На страницу:
6 из 24
Настройки чтения
Размер шрифта
Высота строк
Поля

FROM Employees;

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

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

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

SELECT job_id

FROM Employees;

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

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

SELECT DISTINCT job_id

FROM Employees;

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

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

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

FROM {таблица}

WHERE {условное выражение};

Условное выражение для каждой строки таблицы может принимать значения: ИСТИНА (TRUE), ЛОЖЬ (FALSE), НЕ ОПРЕДЕЛЕНО (UNKNOWN). Результат выполнения запроса будет содержать только те строки, для которых условное выражение будет иметь значение ИСТИНА (TRUE).

Пример 2.6. Вывод данных о сотрудниках, зарплата которых больше 5000

SELECT employee_id, first_name, last_name, salary, department_id

FROM Employees

WHERE salary> 5000;

Пример 2.7. Вывод данных о сотрудниках, принятых на работу 20.08.1997

SELECT employee_id, first_name, last_name, salary, department_id

FROM Employees

WHERE hire_date = ? 20.08.1997 ?;

В процессе выполнения этого оператора осуществляется неявное преобразование строки ? 20.08.1997 ? в формат Date. Для того чтобы это преобразование произошло без ошибок, содержимое строки, содержащую дату, должно быть совместимо с настройками Oracle SQL Developer (рисунок 1.21).

Для указаний условий выбора могут быть использованы операторы сравнения: =,>, <и логические операторы: NOT, AND, OR. Логические операторы используются для формирования сложных условий выбора и имеют разный приоритет. Сначала выполняются все операторы NOT, потом операторы AND; операторы OR выполняются в последнюю очередь. Для исключения возможных ошибок при формировании сложных запросов следует использовать скобки. Выражения внутри скобок выполняются первыми, слева направо.

Рассмотрим примеры запросов, использующих логические операторы при формировании условий выбора.

Пример 2.8. Вывод данных о сотрудниках, которые работают в отделе 50 и занимают должность ST_MAN

SELECT employee_id, first_name, last_name, department_id

FROM Employees

WHERE (department_id = 50) AND (job_id= ? ST_MAN ?);

Пример 2.9. Вывод данных о договорах, заключенных сотрудником 150 с клиентом 49, совершенных в определенную дату (27.09.2017)

SELECT * FROM Orders

WHERE (salesman_id = 150) AND (customer_id=49)

AND (order_date = ? 27.09.2017 ?);

Использование скобок при формировании условий выбора может существенным образом изменять логику выполнения запроса.

Пример 2.10. Вывод данных о договорах сотрудника 155, заключенных 15.03.2018 или 02.11.2019

SELECT * FROM Orders

WHERE (salesman_id = 155) AND (order_date = ? 15.03.2018 ?

OR order_date = ? 02.11.2019 ?);

Если в предложении WHERE скобки поставить так, как это показано в примере 2.11, то запрос будет иметь совсем другой смысл.

Пример 2.11. Вывод данных о договорах сотрудника 155, заключенных 15.03.2018, или обо всех договорах, заключенных 02.11.219

SELECT * FROM Orders

WHERE (salesman_id = 155) AND (order_date = ? 15.03.2018 ?)

OR (order_date = ? 02.11.2019 ?);

Специальные операторы

Для формирования условий выбора можно использовать специальные операторы, представленные в таблице 2.1.

Таблица 2.1. Специальные операторы

Рассмотрим примеры запросов, использующих специальные операторы.

Оператор LIKE
<< 1 2 3 4 5 6 7 8 9 10 ... 24 >>
На страницу:
6 из 24