Главная / Базы данных /
Введение в Oracle SQL / Тест 5
Введение в Oracle SQL - тест 5
Упражнение 1:
Номер 1
Дана таблица WORK, в которой содержится информация о сотрудниках компании:
| WORKNO | Номер сотрудника |
| WNAME | Фамилия |
| MGR | Номер начальника |
Выборку сотрудников, не имеющих подчиненных, выполнит запрос:
Ответ:
 (1) SELECT wname FROM work
WHERE workno NOT IN (SELECT mgr FROM work
WHERE mgr IS NOT NULL); 
 (2) SELECT wname FROM work
WHERE mgr IS NOT NULL; 
 (3) SELECT wname FROM work
WHERE workno IN (SELECT mgr FROM work); 
 (4) SELECT wname FROM work
WHERE workno NOT IN (SELECT mgr FROM work); 
Номер 2
Даны таблицы:
EMPLOYEES| FIRST_NAME | LAST_NAME | SALARY |
|---|
| Carl | Spellman | 60000 |
| Ron | Rinkle | 50000 |
| Art | Todd | 40000 |
| Amy | Walters | 45500 |
| Ken | Reyes | 60400 |
| Martin | Johnson | 50600 |
MARKETS| LOCATION | AVG_SALARY |
|---|
| N | 40000 |
| S | 30000 |
| NE | 40000 |
| NW | 30000 |
| SE | 40000 |
Запрос SQL:
SELECT last_name, first_name, salary
FROM employees
WHERE salary = ANY (SELECT avg_salary
FROM markets
WHERE location IN ('N','S'));
Количество строк, возвращенных запросом, = ...
Ответ:
 (1) 0 
 (2) 1 
 (3) 2 
 (4) 3 
 (5) 4 
Номер 3
Запрос SQL: SELECT ename, empno, sal
FROM emp
WHERE deptno = (SELECT deptno
FROM dept
WHERE UPPER(loc) = UPPER(:loc)); Верными высказываниями относительно результата выполнения запроса являются:
Ответ:
 (1) запрос будет выполнен успешно при условии, что в столбце LOC таблицы DEPT содержатся уникальные значения 
 (2) выполнение запроса вызовет ошибку, т.к. использование символа двоеточия (:) в подзапросе команды SELECT недопустимо 
 (3) выполнение запроса вызовет ошибку, если значения, возвращенные многострочным подзапросом, будут сравниваться посредством оператора равенства 
 (4) запрос будет выполнен, но не возвратит ожидаемых результатов по причине использования функции UPPER дважды в подзапросе 
Упражнение 2:
Номер 1
Эквивалент оператора NOT IN:
Ответ:
 (1) <>ALL 
 (2) !=ANY 
 (3) <>IN 
 (4) =ALL 
 (5) =SOME 
Номер 2
Предложение, исключающее строки ДО группировки данных в команде SELECT:
Ответ:
 (1) INTO 
 (2) WHERE 
 (3) HAVING 
 (4) ORDER BY 
Номер 3
Предложения SELECT, которые могут включать в себя вложенный запрос:
Ответ:
 (1) WHERE 
 (2) GROUP BY 
 (3) ORDER BY 
 (4) SELECT 
 (5) FROM 
Упражнение 3:
Номер 1
Запрос SQL: SELECT product_id, name
FROM products
WHERE EXISTS IN (SELECT * FROM types
WHERE types.type = products.type
AND descr <> 'Household')
AND price >= 10.57;Причиной ошибки выполнения запроса является то, что ...
Ответ:
 (1) столбцы в списке SELECT главного запроса не префексируются именем или псевдонимом таблицы 
 (2) последняя строка запроса должна находиться внутри скобок вложенного запроса 
 (3) вложенный запрос не может ссылаться на столбцы таблицы, не указанной в его предложении FROM (например, "products.type") 
 (4) ключевое слово IN не должно использоваться в сочетании с ключевым словом EXISTS 
 (5) в списке SELECT вложенного запроса должны указываться конкретные имена столбца или столбцов 
Номер 2
Запрос SQL: 1 SELECT bus_name, profits
2 FROM business
3 WHERE city =
4 (SELECT city FROM locations
5 WHERE city LIKE 'Alban%'
6 AND state = 'NY')
7 ORDER BY profits;Исключить вероятность возникновения ошибки, в случае возвращения подзапросом более одной строки, возможно изменением ...
Ответ:
 (1) строки 1 на: SELECT DISTINCT bus_name, profits 
 (2) строки 3 на: WHERE city = ANY 
 (3) строки 4 на: (SELECT DISTINCT city FROM locations 
 (4) строки 5 на: WHERE MAX(city) LIKE 'Alban%' 
 (5) строки 7 на: ORDER BY city, profits 
Номер 3
Дана таблица:
VTABLE| COLUMN NAME | NULL/NOT NULL | DATATYPE |
|---|
| a | not null | number(18) |
| b | null | char(50) |
| c | null | number(10) |
| d | not null | char(10) |
Запросы к таблице, которые будут выполнены безошибочно:
Ответ:
 (1) SELECT a*c FROM vtable; 
 (2) SELECT * WHERE vtable.b = "bvalue"; 
 (3) SELECT a,b,c FROM vtable WHERE a = 5; 
 (4) SELECT a TO d FROM vtable WHERE c IS NULL; 
 (5) SELECT a*b FROM vtable; 
Упражнение 4:
Номер 1
Запрос SQL: SELECT emp id, name
FROM employees
WHERE emp_num >= 1 AND emp_num <= 100;Определить, какой из перечисленных вариантов соответствует результату выполнения запроса к таблице EMPLOYEES со столбцами EMP, NAME, EMP_NUM.
Ответ:
 (1) Выполнение запроса вызовет ошибку, т.к. использование операторов ">=" и "<=" некорректно 
 (2) Запрос возвратит 2 столбца ("id" и "name") для каждой строки, удовлетворяющей предложению WHERE 
 (3) Запрос возвратит 3 столбца ("emp", "id" и "name") для каждой строки, удовлетворяющей предложению WHERE 
 (4) Выполнение запроса вызовет ошибку, т.к. в списке SELECT указан столбец, в имени которого имеется пробел ("emp id") 
Номер 2
Необходимо получить информацию обо всех служащих с фамилией Randall (столбец LAST_NAME таблицы WORK), при этом неизвестено, в каком регистре хранятся данные. Запрос SQL, позволяющий гарантированно выполнить поставленную задачу:
Ответ:
 (1) SELECT last_name, first_name FROM work
WHERE last_name = 'randall'; 
 (2) SELECT last_name, first_name FROM work
WHERE last_name = UPPER('randall'); 
 (3) SELECT last_name, first_name FROM work
WHERE UPPER(last_name) = 'randall'; 
 (4) SELECT last_name, first_name FROM work
WHERE LOWER(last_name) = 'randall'; 
Номер 3
Дана таблица:
EMPLOYEE| COLUMN NAME | DATATYPE | КОММЕНТАРИЙ |
|---|
| FIRST_NAME | VARCHAR2(25) | Имя сотрудника |
| LAST_NAME | VARCHAR2(25) | Фамилия сотрудника |
| JOB | VARCHAR2(25) | Должность |
| SALARY | NUMBER(7,2) | Зарплата |
| DEPT_ID | NUMBER(3) | Номер отдела |
Требования к запросу: вывод фамилии и имени сотрудника, соответствующего условиям:
Фамилия служащего - "Brown", "Chan" или "Linsey"Должность - "Manager", "Technician" или "Clerk"Зарплата более 30000
Запрос SQL:
SELECT last_name, first_name FROM employee
WHERE UPPER(last_name) IN ('BROWN', 'CHAN', 'LINDSEY')
AND UPPER(job) IN ('MANAGER', 'TECHNICIAN', 'CLERK')
AND salary <=30000;Результат действия запроса - вывод информации о сотрудниках, соответствующей ...
Ответ:
 (1) только одному условию 
 (2) только двум условиям 
 (3) всем трем условиям 
 (4) ни одному условию 
Упражнение 5:
Номер 1
SELECT name FROM employee
WHERE name LIKE '_a%';Результат действия команды - вывод строк, для которых значение в столбце NAME ...
Ответ:
 (1) начинается с буквы "а" 
 (2) начинается с буквы "а" или "А" 
 (3) содержит букву "а" вторым символом 
 (4) содержит букву "а" любым символом, кроме первого 
Номер 2
Дана таблица:
RELATIONSHIP| ID | PREDATOR | PREY |
|---|
| 1 | mouse | cheese |
| 2 | cat | mouse |
| 3 | cat | bird |
| 4 | dog | cat |
| 5 | mouse | elephant |
| 6 | lion | zebra |
Запрос SQL:
SELECT * FROM relationships
WHERE predator >= prey;Количество строк, возвращенных запросом, = ...
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
 (5) 5 
 (6) Выполнение запроса вызовет ошибку вследствие использования оператора ">=" с символьными данными 
Номер 3
Дана таблица:
VTABLE| ID | A | B | C |
|---|
| 1 | cat | dog | mouse |
| 2 | lion | dog | zebra |
| 3 | lamb | bird | ferret |
| 4 | lynx | ant | bat |
| 5 | fly | bee | beetle |
| 6 | fish | shark | cricket |
Запрос SQL:
SELECT a, b FROM vtable
WHERE c LIKE '%e%';Количество строк, возвращенных запросом, = ...
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
 (5) 5 
 (6) 6 
Упражнение 6:
Номер 1
Назначение оператора BETWEEN:
Ответ:
 (1) проверка значения на пустоту 
 (2) задание диапазона значений 
 (3) задание символьного шаблона 
 (4) задание значений в определенном списке 
Номер 2
Запросы SQL, возвращающие список фамилий студентов (столбец FIO), чей возраст (столбец AGE) находится вне диапазона от 20 до 25 лет:
Ответ:
 (1) Select FIO from STUDENT where AGE not in (20,25); 
 (2) Select FIO from STUDENT where AGE not between (20,25); 
 (3) Select FIO from STUDENT where AGE not between 20 and 25; 
 (4) Select FIO from STUDENT where (AGE >= 20) and (AGE <= 25); 
 (5) Select FIO from STUDENT where (AGE < 20) or (AGE > 25) 
Номер 3
Запрос SQL:SELECT month, monthname FROM vtable
WHERE month > 6 OR month < 12;Таблица "vtable" состоит из столбцов "month", в котором содержатся цифры от 1 до 12, и "monthname", в котором содержатся наименования месяцев от января до декабря. Количество строк, возвращенных запросом = ...
Ответ:
 (1) 5 
 (2) 6 
 (3) 7 
 (4) 11 
 (5) 12 
Упражнение 7:
Номер 1
Верные описания предложений SQL:
Ответ:
 (1) SELECT - описание атрибутов в результирующей таблице 
 (2) FROM - описание условий отбора записей 
 (3) WHERE - описание таблиц - источников данных 
 (4) ORDER BY- определяет сортировку данных в результирующей таблице 
 (5) GROUP BY- оператор отбора в результирующую таблицу групп 
Номер 2
Для ограничения количества строк, возвращаемых командой SELECT, могут использоваться предложения:
Ответ:
 (1) WHERE 
 (2) HAVING 
 (3) ORDER BY 
 (4) UNION 
 (5) CONNECT BY 
Номер 3
Обязательные предложения команды SELECT:
Ответ:
 (1) WHERE 
 (2) HAVING 
 (3) FROM 
 (4) GROUP BY 
 (5) ORDER BY 
Упражнение 8:
Номер 1
Дано выражение: P_BONUS OR P_RAISE. Результат выражения, при условии, что P_BONUS возвращает FALSE и P_RAISE возвращает NULL, = ...
Ответ:
 (1) TRUE 
 (2) FALSE 
 (3) NULL 
 (4) ошибка 
Номер 2
Дано выражение: P_BONUS AND P_RAISE. Результат выражения, при условии, что P_BONUS возвращает FALSE и P_RAISE возвращает NULL, = ...
Ответ:
 (1) TRUE 
 (2) FALSE 
 (3) NULL 
 (4) ошибка 
Номер 3
Дано выражение: NOT (P_BONUS AND P_RAISE). Результат выражения, при условии, что P_BONUS возвращает FALSE и P_RAISE возвращает TRUE, = ...
Ответ:
 (1) TRUE 
 (2) FALSE 
 (3) NULL 
 (4) ошибка 
Упражнение 9:
Номер 1
Ключевое слово SAMPLE в команде SELECT используется для указания ...
Ответ:
 (1) пробной выборки строк таблицы  
 (2) физического адреса строки таблицы 
 (3) символьного шаблона оператора LIKE 
 (4) отмены значения метасимволов оператора LIKE 
Номер 2
Ключевое слово ROWID в команде SELECT используется для указания ...
Ответ:
 (1) пробной выборки строк табцицы  
 (2) физического адреса строки таблицы 
 (3) символьного шаблона оператора LIKE 
 (4) отмены значения метасимволов оператора LIKE 
Номер 3
Ключевое слово ESCAPE в команде SELECT используется для указания ...
Ответ:
 (1) пробной выборки строк таблицы 
 (2) физического адреса строки таблицы 
 (3) символьного шаблона оператора LIKE 
 (4) отмены значения метасимволов оператора LIKE 
Упражнение 10:
Номер 1
Запрос SQL:SELECT name FROM emp
WHERE REGEXP_LIKE (name,'^A|B'); Результат действия запроса - выборка фамилий сотрудников, которые ...
Ответ:
 (1) начинаются с символа "А" или "В" 
 (2) начинаются с символа "А" или "В" независимо от регистра 
 (3) заканчиваются символом "А" или "В" 
 (4) содержат символы "А" или "В" где угодно 
Номер 2
Запрос SQL:SELECT name FROM emp
WHERE REGEXP_LIKE (name,'^A|B','i'); Результат действия запроса - выборка фамилий сотрудников, которые ...
Ответ:
 (1) начинаются с символа "А" или "В" 
 (2) начинаются с символа "А" или "В" независимо от регистра 
 (3) заканчиваются символом "А" или "В" 
 (4) содержат символы "А" или "В" где угодно 
Номер 3
Символьный шаблон, определенный регулярным выражением, в Oracle 11g позволяет задать оператор ...
Ответ:
 (1) REGEXP_SUBSTR 
 (2) REGEXP_INSTR 
 (3) REGEXP_REPLACE 
 (4) REGEXP_LIKE 
Упражнение 11:
Номер 1
Псевдоним таблицы - это ...
Ответ:
 (1) альтернативное имя таблицы в рамках запроса SQL 
 (2) альтернативное имя таблицы в базе данных 
 (3) пробная выборка строк таблицы 
 (4) альтернативное имя выборки, возвращенной запросом 
Номер 2
Указание псевдонима таблицы в запросе SQL обязательно в случае использования ...
Ответ:
 (1) символов кириллицы в имени таблицы 
 (2) символов кириллицы в имени столбца 
 (3) нескольких таблиц в предложении FROM 
 (4) дважды одной и той же таблицы в предложении FROM 
Номер 3
Предложение FROM запроса SQL: FROM emp e, dept d Верные варианты обращения к столбцам таблиц в предложении WHERE:
Ответ:
 (1) emp.dept_id = dept.id 
 (2) e.dept_id = d.id 
 (3) dept_id = d.id 
 (4) dept_id = id 
Упражнение 12:
Номер 1
Даны ключевые слова: SELECT, FROM, ORDER BY, WHERE, HAVING, GROUP BY. Правильный порядок ключевых слов в запросе SQL иллюстрирует последовательность:
Ответ:
 (1) SELECT -> FROM -> GROUP BY -> WHERE -> HAVING -> ORDER BY 
 (2) SELECT -> FROM -> WHERE -> GROUP BY -> ORDER BY -> HAVING 
 (3) SELECT -> FROM -> WHERE -> HAVING -> ORDER BY -> GROUP BY 
 (4) SELECT -> FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY 
 (5) SELECT -> FROM -> WHERE -> ORDER BY -> GROUP BY -> HAVING 
Номер 2
Даны ключевые слова: SELECT, FROM, ORDER BY, WHERE, CONNECT BY. Логический порядок вычисления результата запроса иллюстрирует последовательность:
Ответ:
 (1) FROM -> CONNECT BY -> WHERE -> ORDER BY -> SELECT 
 (2) SELECT -> FROM -> WHERE -> CONNECT BY -> ORDER BY 
 (3) SELECT -> CONNECT BY -> FROM -> WHERE -> ORDER BY 
 (4) FROM -> WHERE -> CONNECT BY -> ORDER BY -> SELECT 
 (5) CONNECT BY -> SELECT -> FROM -> WHERE -> ORDER BY 
Номер 3
Верными высказываниями относительно сравнений в SQL являются:
Ответ:
 (1) условные выражения с участием объектных данных составляются с использованием арифметических операторов сравнения 
 (2) условные выражения с участием объектных данных составляются с использованием оператора IS 
 (3) проверка значения на пустоту выполняется оператором IS NULL 
 (4) проверка значения на непустоту выполняется оператором !=NULL