- •Лабораторная работа 4 Предложение select в sql Oracle. Основные возможности Содержание
- •Описание и примеры
- •Основные фразы запроса: select и from Фраза select
- •Фраза from
- •Фраза where
- •Использование простых условий Использование операторов сравнения
- •Логические операторы
- •Выражение над столбцами во фразе where
- •Специальные операторы Оператор in
- •Оператор between
- •Оператор like
- •Операторы is null и is not null.
- •Варианты заданий
- •1.1.Вариант 1
- •1.2.Вариант 2
- •1.3.Вариант 3
- •1.4.Вариант 4
- •1.5.Вариант 5
- •1.6.Вариант 6
- •1.7.Вариант 7
- •1.8.Вариант 8
- •1.9.Вариант 9
- •1.10.Вариант 10
- •1.11.Вариант 11
- •1.12.Вариант 12
- •1.13.Вариант 13
- •1.14.Вариант 14
- •1.15.Вариант 15
- •1.16.Вариант 16
- •1.17.Вариант 17
- •1.18.Вариант 18
- •Контрольные вопросы
- •Приложения Приложение a. Операторы sql Oracle
- •Унарные и бинарные операторы
- •Старшинство операторов
- •Арифметические операторы
- •Оператор конкатенации
- •Операторы сравнения
- •Логические операторы
- •Теоретико-множественные операторы
- •Приложение b. Выражения
Операторы is null и is not null.
Оператор IS NULL. Оператор IS NULL позволяет проверить значение столбца на null-значение. Он дает TRUE, если значение столбца NULL, и FALSE, если значение столбца не null.
Пример14 – Проверка на значение NULL: Выдать преподавателей, у которых не определены значения столбцов Salary или Commission:
SELECT Name
FROM TEACHER
WHERE Salary IS NULL OR Commission IS NULL;
Оператор IS NOT NULL. Является отрицание к оператору IS NULL.
Функция NVL. Она имеет синтаксис NVL(expr1, expr2). Если expr1 равно null, то возвращает expr2; если же не null, то возвращаетexpr1. Она позволяет вывести специальное значение, если значение столца равно null.
Пример15. Функция NVL: Вывести факультеты и их фондами. Если фонд не определен, то вывести строку “Fund not defined”
SELECT Name, NVL(TO_CHAR(Fund), 'Fund not defined')
FROM FACULTY;
Варианты заданий
Далее приводится 18 вариантов заданий. Каждый вариант состоит из 7 запросов, которые относятся к следующим категориям (в порядке их следования):
Выражения во фразе SELECT
Соединение таблиц
Многократное соединение одной и той же таблицы
Использование предиката BETWEEN
Использование предикатов IN и LIKE
Внешнее соединение, соединение не по предикату равенства
Использование сложных логических условий
ВНИМАНИЕ. В предлагаемых запросах используются константы (имена преподавателей, названия кафедр и факультетов, названия дисциплин), которые могут отсутствовать в вашей базе данных. ЗАМЕНЯЙТЕ ИХ НА ТЕ, КОТОРЫЕ ДЕЙСТВИТЕЛЬНО ИМЕЮТСЯ В ВАШЕЙ БАЗЕ ДАННЫХ!
1.1.Вариант 1
1) Для каждого из преподавателей из таблицы TEACHER выведите его имя, должность, ставку, надбавку, процент надбавки по отношению к ставке (имя этого столбца «Процент1») и процент ставки по отношению к надбавке (имя этого столбца «Процент1»).
2) По каждому факультету вывести его название и название дисциплин, читаемых преподавателями-профессорами этого факультета
3) Вывести подчиненных подчиненных Сидорова
4) Вывести названия кафедр факультета 'компьютерные науки' с фондом финансирования в диапазоне 250000-350000
5) Вывести имена преподавателей-профессоров, которые работают на факультетах, расположенных в корпусах 2,3,6,7,8,10
6) Вывести названия кафедр и имена преподавателей, которые на них работают. Причем, если на какой-то кафедре нет преподавателей, то эта кафедра все равно выводится, а вместо имени преподавателя выводится строка 'NULL'
7) Вывести имена преподавателей факультета 'компьютерные науки' со ставкой больше 1200 ИЛИ преподавателей факультета 'компьютерные системы' со ставкой больше 1500
1.2.Вариант 2
1 Для каждого из преподавателей из таблицы TEACHER выведите его имя, ставку+надбавку, процент ставки по отношению к ставке+надбавке (имя этого столбца «Результат1»), процент надбавки по отношению к ставке+надбавке (имя этого столбца «Результат2»)
2) Вывести названия факультетов и дисциплин, которые читаются на этих факультетах преподавателями-доцентами, являющимися кураторами студентов 1-го курса
3) Вывести руководителя руководителя Иванова
4) Вывести имена преподавателей факультета 'компьютерные науки' с зарплатой (salary+commission) в диапазоне 1000-1500
5) Вывести имена кафедр факультета 'компьютерные науки', на которых имеются группы с рейтингами 12, 17, 25, 29, 33, 43, 50
6) Вывести названия кафедр, номера и курс групп этих кафедр. Если на какой-то кафедре нет групп, то эта кафедра все равно выводится, а вместо номера группы и курса выводятся цифры 0. Причем, столбцы результирующей таблицы имеют следующие имена:
Столбец имени кафедры – Кафедра
Столбец номера группы – Группа
Столбец курса - Курс
7) Вывести имена и должности преподавателей, которые НЕ удовлетворяют следующему условию:
преподаватель работает на факультете, расположенном в корпусе 4, и имеет должность ассистента ИЛИ работает на факультете, расположенном в корпусе 6, и имеет должность доцента
