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

Тут можно читать онлайн О. Ткачев - Основы программирования в СУБД Oracle. SQL+PL/SQL. - бесплатно ознакомительный отрывок. Жанр: Прочая околокомпьтерная литература. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

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

Основы программирования в СУБД Oracle. SQL+PL/SQL. - описание и краткое содержание, автор О. Ткачев, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
В этой книге рассмотрены Oracle версия SQL и его расширение PL/SQL, содержится описание синтаксиса и правил использования всех основных конструкций этих языков. Излагаемый материал иллюстрируется многочисленными примерами, позволяющими понять, при решении каких задач целесообразно использовать рассматриваемый элемент языка.Книга может быть использована как в учебном процессе, при изучении дисциплины «Базы данных» студентами IT-специальностей, так и для самостоятельного освоения SQL и PL/SQL.

Основы программирования в СУБД Oracle. SQL+PL/SQL. - читать онлайн бесплатно ознакомительный отрывок

Основы программирования в СУБД Oracle. SQL+PL/SQL. - читать книгу онлайн бесплатно (ознакомительный отрывок), автор О. Ткачев
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

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

Выражение CASE с условием имеет следующий синтаксис CASE WHEN условие1 - фото 100 Выражение CASE с условием имеет следующий синтаксис CASE WHEN условие1 - фото 101

Выражение CASE с условием имеет следующий синтаксис:

CASE

WHEN {условие1} THEN {результат1}

[WHEN {условие2} THEN {результат2}

WHEN {условиеN} THEN {результатN}]

[ELSE {результат_ELSE}]

END

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

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

Пример 352 Вывести данные о сотрудниках и размере их премии которая зависит - фото 102 Пример 352 Вывести данные о сотрудниках и размере их премии которая зависит - фото 103

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

Функция DECODE По своему назначению функция DECODE аналогична условному - фото 104 Функция DECODE По своему назначению функция DECODE аналогична условному - фото 105

Функция DECODE

По своему назначению функция DECODE аналогична условному выражению CASE, но не поддерживается стандартом ANSI/ISO SQL. Синтаксис:

DECODE ({столбец} | {выражение}

{, {значение 1}, {результат 1}

[, {значение 2}, {результат2}

[, {значение N}, {результат N}]

[, {результат default}]);

Значение {столбец} | {выражение} сравнивается со значениями {значение i} и возвращается результат первого совпадения.

Если совпадения не будет, то возвращается значение {результат default}. Если {результат default} отсутствует, то функция DECODE вернет результат NULL.

Следует обратить внимание на то, что функция DECODE требует точного совпадения значений и не позволяет использовать операции сравнения>, <���и сложные условия. Поэтому возможности функции DECODE уступают возможностям условного выражения CASE.

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

SELECT department_id, employee_id, first_name, last_name,

job_id, salary,

DECODE (department_id, 10, 1000,30, 1200,60, 1500,500)

AS bonus

FROM Employees

WHERE department_id in (10,30,40,60,100)

ORDER BY department_id;

Результат выполнения этого запроса совпадает с результатом выполнения запроса из примера 3.50.

Рассмотрим еще один пример использования функции DECODE для решения задачи из примера 3.53. Особенностью этой задачи является использование операции сравнения>, которую нельзя использовать в DECODE. Но при решении этой задачи данное ограничение удается обойти. Обратите внимание на то, что число месяцев, которые проработал сотрудник, делится на 60, что соответствует пяти годам работы. Если целая часть результата равна пяти, то это означает что сотрудник проработал не менее 25, но не более 30. Последнее замечание означает, что запросы из примеров 3.53 и 3.55 не эквивалентны и запрос с использованием функции DECODE требует расширения списка значений.

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

SELECT department_id, employee_id, first_name, last_name, job_id,

hire_date, salary,

DECODE (TRUNC (MONTHS_BETWEEN (SYSDATE, hire_date) /60),

6,3*salary,

5,3*salary,

4, 2*salary,

3, salary,

0.5*salary) As bonus

FROM Employees

WHERE department_id IN (10,30,40,60)

ORDER BY department_id;

Задачи для самостоятельного решения 1 Вывести значения столбцов employeeid - фото 106

Задачи для самостоятельного решения

1. Вывести значения столбцов employee_id, first_name, last_name и значение зарплаты, увеличенное на 25%. Увеличенное значение зарплаты округлить до сотен.

2. Вывести значения столбцов employee_id, first_name, last_name, salary и ту часть зарплаты сотрудника, которая меньше 1000.

3. Создать запрос, который вернет столбец name_and_salaries. Столбец должен содержать полное имя сотрудника, зарплату и несколько звездочек (*) – по одной звездочке на каждые $1000 зарплаты.

4. Вывести данные о товарах, название которых содержит слово AMD и не содержит слова RYZEN.

5. Вывести названия товаров, второе слово которых состоит из шести букв.

6. Вывести данные о товарах, второе слово в названии которых – — iPhone.

7. Вывести данные о сотрудниках, которые были приняты на работу в понедельник.

8. Вывести данные о сотрудниках, которые были приняты на работу 21 апреля.

9. Для сотрудников, работающих в отделе 50, вывести разницу между текущей датой и датой приема на работу в формате: УУ лет ММ месяцев ДД дней.

10. Вывести значения столбцов employee_id, first_name, last_name, salary и премию, которую они должны получить. Размер премии у сотрудников, которые получают комиссионные, равен зарплате с учетом комиссионных. Размер премии у сотрудников, которые не получают комиссионные, равен зарплате, увеличенной на 30%.

11. Вывести значения столбцов employee_id, first_name, last_name, salary и bonus – премию, которую они должны получить. Размер премии зависит от рейтинга и вычисляется по следующему правилу:

– если рейтинг сотрудника равен 5, то bonus = salary * 1.5;

– если рейтинг сотрудника равен 4, то bonus = salary * 1.3;

– если рейтинг сотрудника равен 3, то bonus = salary * 1.1;

– сотрудникам, рейтинг которых меньше 3, премия не полагается.

12. Вывести значения столбцов employee_id, first_name, last_name, salary и category. Значение категории (category) определяется по следующему правилу:

– если rating_e ≥ 4 и salary ≥ 10 000, то category = ′High′;

– если rating_e <3 и salary <5000, то category = ′Low′;

– у остальных сотрудников category = ′Middle′.

Глава 4. Агрегатные функции и группировка данных

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

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


О. Ткачев читать все книги автора по порядку

О. Ткачев - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Основы программирования в СУБД Oracle. SQL+PL/SQL., автор: О. Ткачев. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x