Ткачев О. А. - Основы программирования в СУБД Oracle. SQL+PL/SQL. стр 8.

Книгу можно купить на ЛитРес.
Всего за 239.9 руб. Купить полную версию
Шрифт
Фон

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 {список столбцов}

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).

Для указаний условий выбора могут быть использованы операторы сравнения: =,>, = V_MIN) AND ({имя столбца} 300000;

Использование псевдостолбца ROWNUM

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

Пример 2.33. Вывести пять строк с данными о продажах товаров, в которых сумма одной покупки превышала 300 000

SELECT product_id, order_id, item_id, quantity, unit_price,

quantity*unit_price

FROM Order_items

WHERE quantity*unit_price> 300000

AND ROWNUM 1, будет пуст. Это происходит потому, что первая строка, возвращаемая запросом, имеет значение ROWNUM = 1, это значение не удовлетворяет условию ROWNUM = N и поэтому не попадает в результат выполнения запроса. После этого каждая следующая строка будет иметь значение ROWNUM = 1 и также не будет удовлетворять условию ROWNUM = N.

Оператор конкатенации

Оператор конкатенации (слияния) записывается двумя вертикальными чертами (||) и используются для того, чтобы объединить при выводе данных два или несколько столбцов или литералов в один столбец.

Синтаксис:

{столбец1/литерал1} || {столбец2/литерал2} As {псевдоним}

Оператор конкатенации можно применять для строк, чисел и дат. Даты и числа при слиянии конвертируются в строковые значения. При слиянии строки значения со значением типа NULL Oracle возвращает строковое значение.

Пример 2.34. Вывести данные о заказах, оформленных сотрудником 165

SELECT Order ||order_id|| from ||order_date

|| is ||status AS Order_Statys

FROM Orders

WHERE salesman_id =165;

Сортировка

выполнения оператора SELECT может быть упорядочен по значению одного или нескольких столбцов. Для этого служит предложение ORDER BY, которое имеет следующий синтаксис:

ORDER BY {имя столбца | номер столбца [ASC|DESC]}

Пример 2.35. Вывести данные о сотрудниках, упорядочив их в порядке убывания зарплаты

SELECT employee_id, first_name, last_name, department_id, salary

FROM Employees

ORDER BY salary DESC;

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

Пример 2.36. Вывести данные о сотрудниках, упорядочив их в порядке возрастания номеров отделов, в которых они работают. Данные о сотрудниках, которые работают в одном отделе, упорядочить в порядке убывания зарплаты

SELECT employee_id, first_name, last_name, department_id, salary

FROM employees

ORDER BY department_id, salary DESC;

В предложении ORDER BY можно использовать псевдонимы столбцов.

Пример 2.37. Вывести данные о сотрудниках, которые получают комиссионные, упорядочив их в порядке убывания суммы комиссионных

SELECT employee_id, first_name, last_name, department_id,

commission_pct*salary as commission

FROM Employees

WHERE commission_pct IS NOT NULL

ORDER BY commission DESC;

Можно сортировать строки по столбцам, не указанным в предложении SELECT.

Пример 2.38. Вывести данные о сотрудниках, которые работают в отделе 80, упорядочив их в порядке убывания рейтинга

SELECT employee_id, first_name, last_name, department_id, salary

FROM Employees

WHERE department_id = 80

ORDER BY rating_e;

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

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3