- •Laboratory work 4
- •Description and examples
- •The Building Blocks of Data Retrieval: select and from clauses
- •The select clause
- •The froMclause
- •The where clause
- •Use of simple conditions
- •Use of comparison operators
- •Logical operators.
- •Column expressions in where clause
- •Special operators
- •Operator in
- •Operator between
- •Operator like
- •Operators is null and is not null.
- •Oracle Lab tasks
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Вариант 17
- •Вариант 18
- •Control questions
- •Appendices
- •Appendix a. Sql Oracle operators
- •Unary and binary operators
- •Precedence
- •Arithmetic Operators
- •Concatenation Operator
- •Comparison Operators
- •Logical Operators
- •Set Operators
- •Appendix b. Expressions
- •Simple Expressions
- •Cursor Expressions
- •Object Access Expressions
- •Decode Expressions
- •Expression List
- •Appendix c. Commentsin sql
Operators is null and is not null.
IS NULL operator. Operator IS NULL allows to test column value for null. It evaluates to TRUE if column value is NULL and to FALSE if column value is not null.
Example 14 - Test null value: Select teachers with undefined values of salary or Commission:
SELECT Name
FROM TEACHER
WHERE Salary IS NULL OR Commission IS NULL;
IS NOT NULL operator. It is negation of IS NULL operator.
Function NVL. It has the syntax NVL(expr1, expr2). If expr1 is null, returns expr2; if is not null, returns expr1. It allows to output special value if the column in question have null value.
Example15. NVL function: Output faculties with their funds. If fund is not defined output the string “Fund not defined”
SELECT Name, NVL(Fund, 'Fund not defined')
FROM FACULTY;
Oracle Lab tasks
Далее приводится 15 вариантов заданий. Каждый вариант состоит из 7 запросов, которые относятся к следующим категориям (в порядке их следования):
Выражения во фразе SELECT
Соединение таблиц
Многократное соединение одной и той же таблицы
Использование предиката BETWEEN
Использование предикатов IN и LIKE
Внешнее соединение, соединение не по предикату равенства
Использование сложных логических условий
ВНИМАНИЕ. В предлагаемых запросах используются константы (имена преподавателей, названия кафедр и факультетов, названия дисциплин), которые могут отсутствовать в вашей базе данных. ЗАМЕНЯЙТЕ ИХ НА ТЕ, КОТОРЫЕ ДЕЙСТВИТЕЛЬНО ИМЕЮТСЯ В ВАШЕЙ БАЗЕ ДАННЫХ!
Вариант 1
1) Для каждого из преподавателей из таблицы TEACHER выведите его имя, должность, ставку, надбавку, процент надбавки по отношению к ставке (имя этого столбца «Процент1») и процент ставки по отношению к надбавке (имя этого столбца «Процент1»).
2) По каждому факультету вывести его название и название дисциплин, читаемых преподавателями-профессорами этого факультета
3) Вывести подчиненных подчиненных Сидорова
4) Вывести названия кафедр факультета 'компьютерные науки' с фондом финансирования в диапазоне 250000-350000
5) Вывести имена преподавателей-профессоров, которые работают на факультетах, расположенных в корпусах 2,3,6,7,8,10
6) Вывести названия кафедр и имена преподавателей, которые на них работают. Причем, если на какой-то кафедре нет преподавателей, то эта кафедра все равно выводится, а вместо имени преподавателя выводится строка 'NULL'
7) Вывести имена преподавателей факультета 'компьютерные науки' со ставкой больше 1200 ИЛИ преподавателей факультета 'компьютерные системы' со ставкой больше 1500
Вариант 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, и имеет должность доцента