игра брюс 2048
Главная / Базы данных / SQL: основы / Тест 1

SQL: основы - тест 1

Упражнение 1:
Номер 1

Сортировка строк полученного в результате выборки отчета:


Ответ:

 (1) по умолчанию осуществляется в порядке убывания значений заданного столбца или выражения 

 (2) определяется во фразе ORDER ON 

 (3) по умолчанию осуществляется в порядке возрастания значений заданного столбца или выражения 

 (4) может осуществляться только по единственному столбцу или выражению 

 (5) осуществляется по первичному ключу, если не задан конкретный столбец (выражение) 


Номер 2
Значение NULL: 
				

Ответ:

 (1) в выражениях неявно заменяется на значение "ноль" или пробел 

 (2) означает, что значение недоступно, не присвоено или неизвестно 

 (3) при использовании в арифметическом выражении приводит к тому, что выражение принимает неопределенное значение 

 (4) при использовании в арифметическом выражении приводит к тому, что выражение принимает значение "ноль" 


Номер 3
Отношение Students состоит из следующих кортежей:files
				 				
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Tom15NULL4.310
12Alex284.25.0NULL

Запрос имеет следующий вид:

SELECT Lang_scope + Math_scope AS sum FROM Students

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
sum
4.3
9.2
 

 (2)
sum
0
9.2
 

 (3)
(No column name)
NULL
9.2
 

 (4)
sum
NULL
9.2
 


Номер 4
 

Оператор SELECT -


Ответ:

 (1) основной оператор языка SQL, предназначенный для организации запросов на выборку данных 

 (2) может содержать операторы DML (язык манипулирования данными) в качестве подзапросов 

 (3) может применяться в операторах DML (язык манипулирования данными) при организации подзапросов 

 (4) является оператором DDL (язык определения данных) 


Номер 5
 

Ключевое слово DISTINCT, следующее за ключевым словом SELECT:


Ответ:

 (1) указывает компилятору SQL на необходимость обязательного применения индексов участвующих в запросе столбцов 

 (2) вообще не может следовать за оператором SELECT 

 (3) используется для исключения из выборки строк-дубликатов 

 (4) предшествует названиям столбцов, по которым следует осуществить группировку 


Номер 6

Оператор SELECT -


Ответ:

 (1) основной оператор языка SQL, предназначенный для изменения данных, хранящихся в базе данных  

 (2) может встречаться в запросе только один раз  

 (3) может применяться в операторах DML (язык манипулирования данными) при организации подзапросов  

 (4) является оператором DСL (язык управления данными)  


Упражнение 2:
Номер 1
Отношение Students имеет схему:
				files
				Students: Student_id (int, PK), Student_name, Head_stud_id, Math_scope (float, NOT NULL), Lang_scope (float, NOT NULL), Group_id (int)

Запрос предназначен для отображения имен и средних баллов по Математике всех студентов. Столбец, указывающий на средний балл по заданной дисциплине (в схеме он называется Math_scope), должен называться в итоговом отчете "Math_average_scope". Итоговый отчет должен быть отсортирован в возрастающем порядке по номерам групп, а внутри групп – по средним баллам по Математике (тоже в порядке возрастания):

SELECT Student_name, Math_scope __________ FROM Students ORDER BY ___________

Среди приведенных ниже кодов укажите варианты, которыми можно заменить знаки подчеркивания для получения корректного запроса, решающего поставленную задачу при условии, что столбец Math_scope не может принимать значение NULL:


Ответ:

 (1) первый фрагмент: Math_average_scope, второй фрагмент: Group_id, Math_average_scope 

 (2) первый фрагмент: AS “Math_average_scope”, второй фрагмент: Group_id DESC, Math_ scope DESC  

 (3) первый фрагмент: Math_average_scope, второй фрагмент: Group_id , Math_ scope 

 (4) первый фрагмент: AS Math_average_scope, второй фрагмент: Group_id ASC, Math_scope ASC 

 (5) первый фрагмент: AS ‘Math_average_scope’, второй фрагмент: Math_ scope, Group_id 


Номер 2
Отношение Students имеет схему:
				files
				Students: Student_id (int, PK), Student_name, Head_stud_id, Math_scope (float), Group_id (int, FK)

Запрос SQL предназначен для выборки всех столбцов из таблицы Students:

SELECT ________________ FROM Students

Из приведенных ниже вариантов кода укажите те варианты, которыми можно заменить знаки подчеркивания для получения корректного запроса, решающего поставленную задачу.


Ответ:

 (1) ALL 

 (2) Student_name, Student_id, Group_id, Head_stud_id AS head, Math_scope 

 (3) ALL ROWS 

 (4) * 


Номер 3
Отношение Groups имеет схему:files
				Groups: Group_id (int PK), Grade_level (int NOT NULL), Specialty_id (int FK), Head_stud_id

Запрос SQL предназначен для выборки всех номеров специальностей из таблицы Groups, в итоговом отчете указанный столбец должен иметь название Specialty number:

SELECT ________________ FROM Groups

Из приведенных ниже вариантов кода укажите те варианты, которыми можно заменить знак подчеркивания для получения корректного запроса, решающего поставленную задачу.


Ответ:

 (1) ALL EXCEPT FOR Group_id, Grade_level, Head_stud_id 

 (2) Specialty_id AS Specialty number 

 (3) Specialty_id AS “Specialty number” 

 (4) Specialty_id AS ‘Specialty number’ 

 (5) Specialty_id “Specialty number” 


Номер 4
Отношение Worker состоит из следующих кортежей:
				files
 	
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom151100NULL1020.05.98
12Alex179000.52021.06.98

Запрос предназначен для отображения имен и суммарного дохода (оклад + премия) всех сотрудников:

SELECT Worker_name, Salary + Salary*Commission_pct AS total income FROM Worker ORDER BY Salary + Salary*Commission_pct

В результате выполнения запроса сервер БД генерирует ошибку

Выберите из предложенных вариантов тот, который правильно объясняет возникновение ошибки:


Ответ:

 (1) в арифметических выражениях не допускается использование неопределенных значений, в данном же примере значение поля Commission_pct принимает для одной из записей значение NULL 

 (2) псевдоним, следующий за предлогом AS, может применяться только к столбцам, но не к арифметическим выражениям, как в данном примере 

 (3) псевдоним, следующий за предлогом AS, должен быть заключен в двойные кавычки или в апострофы 

 (4) во фразе ORDER BY не допускается использование арифметических выражений 


Номер 5
Отношение Worker состоит из следующих кортежей:
				files
								 	
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1511000.51020.05.98
12Alex17900NULL2021.06.98

Запрос имеет следующий вид:

SELECT Salary*Commission_pct AS commission FROM Worker

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
commission
550
NULL
 

 (2)
(No column name)
550
NULL
 

 (3)
commission
550
0
 

 (4)
commission
550
900
 

 (5) сервер БД сгенерирует ошибку 


Номер 6
Отношение Branch состоит из следующих кортежей:
				files
				 	
Branch_idBranch_titleLocation_id
10Accounting11
20NULL12

Запрос SQL имеет вид:

SELECT Branch_id, Branch_title, Location_id FROM Branch ORDER BY Branch_id AND Branch_title DESC

Выберите корректный вариант отчета, получающегося в результате выполнения приведенного выше запроса, при условии, что столбцы Branch_id и Branch_title обладают одинаковым типом данных – VARCHAR.


Ответ:

 (1)
Branch_idBranch_titleLocation_id
10Accounting11
20NULL12
 

 (2)
Branch_idBranch_titleLocation_id
20NULL12
10Accounting11
 

 (3)
Branch_idBranch_titleLocation_id
10Accounting11
 

 (4) сервер БД сгенерирует ошибку 


Упражнение 3:
Номер 1
Отношение Groups состоит из следующих кортежей:files
				 						
Group_idGrade_levelSpecialty_idHead_stud_id
ДИ11120.01010
ДИ22120.01017
ВИ11131.015123
ВИ22131.01515

Запрос имеет следующий вид:

SELECT Head_stud_id, Grade_level FROM Groups Order BY Grade_level DESC, Head_stud_id

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
Head_stud_idGrade_level
101
1231
152
172
 

 (2)
Head_stud_idGrade_level
172
152
1231
101
 

 (3)
Head_stud_idGrade_level
152
172
101
1231
 

 (4) сервер БД сгенерирует ошибку 

 (5)
Grade_levelHead_stud_id
217
215
1123
110
 


Номер 2
Отношение Students состоит из следующих кортежей:files
 				
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Tom155.04.310
12Alex284.25.010

Запрос SQL предназначен для выборки всех имен студентов и их успеваемости по двум дисциплинам из таблицы Students и сортировки итогового отчета в порядке возрастания номеров групп, а внутри групп – в порядке возрастания суммарных баллов по двум дисциплинам:

SELECT Student_name, Math_scope, Lang_scope, Math_scope + Lang_scope AS “summ scope” FROM Students ORDER BY Group_id, summ scope

При выполнении запроса сервер БД генерирует ошибку. Среди предложенных вариантов укажите правильную причину ошибки:


Ответ:

 (1) псевдоним, который используется во фразе ORDER BY, не заключен в двойные кавычки 

 (2) в предложении ORDER BY может присутствовать название только одного столбца или выражения 

 (3) выражение Math_scope + Lang_scope не заключено в скобки 

 (4) псевдоним "summ scope" должен отделяться от выражения пробелом, а не предлогом AS 

 (5) в предложении ORDER BY не допускается использование псевдонимов столбцов 


Номер 3
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name (char), Head_stud_id, Math_scope (float, NOT NULL), Lang_scope (float, NOT NULL), Group_id (int)

Запрос SQL предназначен для подсчета общего среднего балла (по обеим дисциплинам) для каждого студента, результат должен быть отсортирован в порядке убывания общих средних баллов:

SELECT Student_name, ________________ FROM Groups ORDER BY _____________________

Из приведенных ниже вариантов кода укажите те варианты, которыми можно заменить знаки подчеркивания для получения корректного запроса, решающего поставленную задачу, при условии, что столбцы Math_scope и Lang_scope не могут принимать значение NULL.


Ответ:

 (1) первый фрагмент: (Math_scope+ Lang_scope)/2 AS “общий средний балл” второй фрагмент: “общий средний балл” DESC  

 (2) первый фрагмент: Math_scope+ Lang_scope/2 второй фрагмент: Math_scope + Lang_scope/2 DESC  

 (3) первый фрагмент: Math_scope/2+ Lang_scope/2 второй фрагмент: Math_scope/2 + Lang_scope/2 DESC  

 (4) первый фрагмент: Math_scope/2+ Lang_scope/2 второй фрагмент: (Math_scope/2 + Lang_scope/2)  


Номер 4
Отношение Worker имеет схему:
files

Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp)

Запрос предназначен для отображения имен и суммарного дохода (оклад + премия) всех сотрудников, результат должен быть отсортирован в порядке возрастания общих доходов:

SELECT Worker_name, ________________ FROM Worker ORDER BY _____________________

Из приведенных ниже вариантов кода укажите те варианты, которыми можно заменить знаки подчеркивания для получения корректного запроса, решающего поставленную задачу.


Ответ:

 (1) первый фрагмент: (Salary+Salary*Commission_pct) AS total_income второй фрагмент: total_income ASK  

 (2) первый фрагмент: (Salary+Salary)*Commission_pct AS total_income второй фрагмент: (Salary+Salary)*Commission_pct  

 (3) первый фрагмент: Salary+Salary*Commission_pct AS “total_income” второй фрагмент: Salary+Salary*Commission_pct  

 (4) первый фрагмент: Salary+Salary*Commission_pct AS total_income второй фрагмент: Salary+Salary*Commission_pct DECS 


Номер 5
Отношение Branch состоит из следующих кортежей:
files
Branch_idBranch_titleLocation_id
10Accounting11
20Research12
30Accounting12
40Research11

Запрос имеет следующий вид:

SELECT Branch_title, Location_id FROM Branch ORDER BY Branch_title DESC, Location_id DESC

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
Branch_titleLocation_id
Research11
Research12
Accounting11
Accounting12
 

 (2)
Branch_titleLocation_id
Research12
Research11
Accounting12
Accounting11
 

 (3)
Branch_titleLocation_id
Accounting11
Accounting12
Research11
Research12
 

 (4) сервер БД сгенерирует ошибку 

 (5)
Branch_titleLocation_id
Accounting12
Accounting11
Research12
Research11
 


Номер 6
Отношение Worker имеет схему:
				files
					
Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp)

Запрос предназначен для получения отчета, который содержит информацию об имени каждого сотрудника, его премиальных (Salary*Commission_pct) и доле премиальных в его общем доходе (оклад + премия) в процентах

SELECT Worker_name, Salary*Commission_pct bonus, __________ FROM Worker

Выберите из предложенных вариантов тот, который при подстановке вместо знака подчеркивания обеспечивает корректное выполнение запроса и получение требуемого результата при условии, что столбцы Salary и Commission_pct не могут принимать значение NULL:


Ответ:

 (1) Salary*Commission_pct*100/Salary+Salary*Commission_pct 

 (2) Salary*Commission_pct*100/(Salary+Salary*Commission_pct) AS commission part  

 (3) bonus*100/(Salary+Salary*Commission_pct) 

 (4) bonus*100/Salary+Salary*Commission_pct 

 (5) Salary*Commission_pct*100/(Salary+Salary*Commission_pct) 


Упражнение 4:
Номер 1

Назначение транзакции -


Ответ:

 (1) нормализация отношений БД 

 (2) сохранение целостности данных в БД 

 (3) создание резервной копии БД 

 (4) предотвращение несанкционированного доступа к данным 

 (5) оптимизация выполнения ресурсоемких операторов SQL 


Номер 2

Транзакция завершается оператором


Ответ:

 (1) CANCEL 

 (2) COMMIT 

 (3) END 

 (4) ROLLBACK 

 (5) SUBMIT 


Номер 3

Оператор ROLLBACK


Ответ:

 (1) начинает транзакцию 

 (2) завершает транзакцию 

 (3) отменяет изменения, внесенные транзакцией в БД 

 (4) отменяет последнюю выполненную над БД команду 

 (5) удаляет указанную таблицу из БД 


Номер 4

Транзакция - это


Ответ:

 (1) синоним любого SQL-оператора 

 (2) несколько SQL-операторов, выделенных в единый блок 

 (3) оператор языка DML (язык манипулирования данными) 

 (4) два оператора SQL, причем второй оператор использует результаты выполнения первого оператора 

 (5) некоторые действия, производимые с данными, представляющими денежные суммы 


Номер 5

Если какой-то оператор транзакции не выполнился, то


Ответ:

 (1) оставшиеся операторы пропускаются (не выполняются), генерируется ошибка 

 (2) оставшиеся операторы пропускаются (не выполняются); БД возвращается в состояние, предшествующее первому невыполненному оператору 

 (3) оставшиеся операторы пропускаются (не выполняются); БД возвращается в состояние, предшествующее первому оператору транзакции 

 (4) выполняются оставшиеся операторы 

 (5) выполняются оставшиеся операторы, после чего повторяется попытка запуска невыполненного оператора 


Номер 6

Оператор COMMIT


Ответ:

 (1) является оператором DML (язык манипулирования данными), предназначен для изменения значений столбов таблицы 

 (2) начинает транзакцию 

 (3) завершает транзакцию 

 (4) создает копию БД в указанном каталоге 

 (5) подтверждает изменения, внесенные транзакцией в БД 


Упражнение 5:
Номер 1
Укажите, какие из перечисленных утверждений являются истинными:

Оператор IN:


Ответ:

 (1) используется только для сравнения числовых значений  

 (2) используется для проверки попадания значения в заданный диапазон  

 (3) используется для проверки вхождения значения в заданный список 

 (4) может быть заменен комплексным условием с использованием операторов AND 


Номер 2
Выберите из предложенного списка вариант с правильной расстановкой приоритетов (очередности выполнения) различных групп операторов:

Ответ:

 (1) Арифметические операторы Логические операторы (AND, OR) Операторы сравнения (<, >, = …)  

 (2) Логические операторы (AND, OR) Операторы сравнения (<, >, = …) Арифметические операторы  

 (3) Логические операторы (AND, OR) Арифметические операторы Операторы сравнения (<, >, = …)  

 (4) Арифметические операторы Операторы сравнения (<, >, = …) Логические операторы (AND, OR)  

 (5) все перечисленные утверждения неверны 


Номер 3
Укажите, какие из перечисленных операторов являются корректными операторами сравнения:

Ответ:

 (1) = NULL  

 (2) IS NULL (проверка неопределенных значений) 

 (3) BETWEEN VALUES (в интервале)  

 (4) INSIDE (в списке) 

 (5) LIKE 


Номер 4
Укажите, какие из перечисленных утверждений являются истинными:

Оператор LIKE:


Ответ:

 (1) может использоваться для сравнения строк в условии WHERE  

 (2) имеет смысл "неточного совпадения", то есть возвращает значение "ИСТИНА" если сравниваемые строки различаются не более, чем в одном символе  

 (3) используется для поиска строковых значений по шаблону с метасимволами "%" и "_"  

 (4) может применяться для поиска цифр в текстовых строках 


Номер 5
Укажите, какие из перечисленных операторов не являются допустимыми операторами сравнения:

				

Ответ:

 (1) >, < (больше, меньше)  

 (2) IN (в списке)  

 (3) BETWEEN AND (в интервале)  

 (4) NOT EQUALS (не равно) 

 (5) LIKE AS (поиск по шаблонам) 


Номер 6
Выберите из представленного списка все операторы, которые не могут применяться для сравнения строковых значений:

Ответ:

 (1) >, < (больше, меньше)  

 (2) <>(не равно)  

 (3) BETWEEN AND (в интервале)  

 (4) LIKE 

 (5) Все перечисленные операторы МОГУТ использоваться для сравнения строк 


Упражнение 6:
Номер 1
Отношение Students состоит из следующих кортежей:files
							
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Lincoln15NULL4.310
12Li284.25.010
13Lik284.54.320

Запрос имеет следующий вид:

SELECT Student_name FROM Students WHERE Student_name LIKE ‘Li_’

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
Student_name
Lincoln
Lik
 

 (2)
Student_name
Li
Lik
 

 (3)
Student_name
Lincoln
Lik
Li
 

 (4)
Student_name
Lik
 

 (5) ни одна строка не будет отобрана 


Номер 2
Отношение Students имеет схему:files
				Students: Student_id (int, PK), Student_name (char), Head_stud_id, Math_scope (float, NOT NULL), Lang_scope (float, NOT NULL), Group_id (int)

Запрос предназначен для отображения имен ВСЕХ студентов, суммарный средний балл которых (Math_scope + Lang_scope) от 8.2 и выше (максимальный средний балл по каждой из дисциплин – 5).

SELECT Student_name FROM Students WHERE ___________

Среди приведенных ниже кодов укажите варианты, которыми можно заменить знаки подчеркивания для получения корректного запроса, решающего поставленную задачу


Ответ:

 (1) Math_scope + Lang_scope IN (8.2, 10) 

 (2) Math_scope + Lang_scope BETWEEN 8.2 AND 10 

 (3) (Math_scope >= 4.1 AND Lang_scope >= 4.1) OR (Math_scope >= 4.0 AND Lang_scope >= 4.2) 

 (4) Math_scope + Lang_scope > 8.1 

 (5) Math_scope + Lang_scope >= 8.2 


Номер 3
Отношение Students состоит из следующих кортежей:files
											
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Tom154.24.310
12Alex28NULL5.010

Запрос SQL предназначен для выборки всех имен студентов, у которых средний балл по Математике (Math_scope) больше 4.5 или не определен:

SELECT Student_name FROM Students WHERE (Math_scope>4.5 OR Math_scope IS NULL) OR Student_name IS NOT NULL

В результате запроса отбираются обе строки, хотя согласно условию должна быть отобрана лишь вторая строка (Student_id=12). Объясните причины получения некорректного результата:


Ответ:

 (1) вместо оператора IS (NOT) NULL следовало использовать оператор NOT EQUALS (EQUALS) 

 (2) вместо оператора IS (NOT) NULL следовало использовать оператор (!=) или (=) 

 (3) вместо оператора IS (NOT) NULL следовало использовать оператор (<>) или (=) 

 (4) некорректное использование логических операторов (OR, AND) 


Номер 4
Отношение Worker состоит из следующих кортежей:
				files
				  
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom151100NULL1020.05.98
12Sam158000.2
13Alex179000.52021.06.98
14Jack1715000.5

Запрос имеет следующий вид:

SELECT Worker_name FROM Worker WHERE (Salary+Salary*Commission_pct)>1350 AND Manager_id=17 OR Salary BETWEEN 900 AND 1500 AND Manager_id IN (15, 17)

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
Worker_name
Tоm
Alex
Jack
 

 (2)
Worker_name
Alex
Tоm
 

 (3)
Worker_name
Alex
Jack
 

 (4) ни одна из строк не будет отобрана 


Номер 5
Отношение Branch состоит из следующих кортежей:
				files
				
Branch_idBranch_titleLocation_id
10Accounting11
20Research12
30Accounting12
40Banking11

Запрос предназначен для отображения всех номеров отделов, названия которых начинаются с символа "А"

SELECT Branch_id FROM Branch WHERE _____________________

Из приведенных ниже вариантов кода укажите те варианты, которыми можно заменить знак подчеркивания для получения корректного запроса, решающего поставленную задачу.


Ответ:

 (1) Branch_title = ‘A%’ 

 (2) Branch_title BETWEEN ‘A’ AND ‘B’ AND Branch_title <’B’ 

 (3) Branch_title LIKE ‘A%’ 

 (4) Branch_title LIKE ‘A?%’ 

 (5) Branch_title >= ‘A%’ AND < ‘B’ 


Номер 6
Отношение Worker имеет схему:
				files
				
				Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp)
				

Запрос, предназначенный для генерации отчета, содержащего информацию о сотрудниках, которые были приняты на работу в 1998 и 1997 гг. и имеющих общий доход (оклад + премия), не превышающий 1500, имеет вид:

SELECT Worker_name FROM Worker WHERE Salary+Salary*Commission_pct<=1500 AND Hire_date <’01.01.99’ AND>=’01.01.97’

При выполнении запроса сервер БД генерирует ошибку. Среди предложенных вариантов укажите правильную причину ошибки при условии, что форматом даты по умолчанию для заданных региональных настроек БД является формат: "dd.mm.yy", а столбец Hire_date обладает типом данных timestamp:


Ответ:

 (1) в первой операции сравнения вместо оператора <= следовало использовать оператор <  

 (2) для сравнения значений типа timestamp не могут применяться операции сравнения: <, >= 

 (3) в условии WHERE происходит сравнение данных типа timestamp (Hire_date) со строковыми константами, и при этом не выполняется явного преобразования типов данных, что недопустимо 

 (4) в последнем условии фразы WHERE пропущен левый операнд 


Упражнение 7:
Номер 1
Отношение Students имеет схему:files
				Students: Student_id (int, PK), Student_name, Head_stud_id, Math_scope (float, NOT NULL), Lang_scope (float, NOT NULL), Group_id (int)

Запрос предназначен для получения отчета, содержащего информацию о студентах, для которых помимо имени известна и фамилия (фамилия отделяется от имени символом "_" в столбце Student_name, например Poll_Zillah).

SELECT Student_name, Math_scope, Lang_scope FROM Students WHERE __________________

Выберите из предложенных вариантов те, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата:


Ответ:

 (1) Student_name LIKE “%!_%” ESCAPE ‘!’ 

 (2) Student_name LIKE “%[_]%”  

 (3) Student_name LIKE ‘%[_]’ 

 (4) Student_name LIKE ‘%?_%’ ESCAPE ‘?’ 

 (5) Student_name LIKE ‘%!_%’ ESCAPE ‘!’ 


Номер 2
Отношение Students имеет схему:files
				Students: Student_id (int, PK), Student_name (char), Head_stud_id, Math_scope (float), Lang_scope (float), Group_id (int)

Запрос предназначен для получения отчета, содержащего информацию о всех студентах, имена которых начинаются с символов "А", "В" и "С".

SELECT Student_name FROM Students Where __________________

Выберите из предложенных вариантов те, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата:


Ответ:

 (1) Student_name LIKE ‘A%’ AND Student_name LIKE ‘B%’ AND Student_name LIKE ‘C%’ 

 (2) Student_name >= 'A' AND Student_name <= 'C'  

 (3) Student_name < 'D' AND Student_name >= 'A' 

 (4) Student_name LIKE "A%" OR Student_name LIKE "B%" OR Student_name LIKE "C%" 

 (5) Student_name LIKE 'C%' OR Student_name LIKE 'A%' OR Student_name LIKE 'B%' 


Номер 3
Отношение Students состоит из следующих кортежей:files
															
Student_idStudent_nameHead_stud_idMath_scopeMis_daysGroup_id
11Tom154.58%10
12Alex284.21310

Запрос предназначен для получения отчета, содержащего информацию о студентах, количество пропусков занятий которых указано в процентах от общего числа занятий (значение в столбце Mis_days заканчивается знаком %). Столбец Mis_days имеет тип VARCHAR.

SELECT Student_name, Mis_days FROM Students WHERE __________________

Выберите из предложенных вариантов те, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата:


Ответ:

 (1) Mis_days LIKE ‘%ESCAPE%’ 

 (2) Mis_days LIKE ‘ %”%” ’ 

 (3) Mis_days LIKE ‘%!%’ ESCAPE ‘!’ 

 (4) Mis_days LIKE “%?%” ESCAPE "?" 

 (5) Mis_days LIKE ‘%?%’ ESCAPE '?' 


Номер 4
 Отношение Worker состоит из следующих кортежей:
				files
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom15110034%1020.05.98
12Alex179000.22021.06.98

Запрос предназначен для получения отчета, содержащего информацию о сотрудниках, размер премии которых указан в процентах от оклада (значение в столбце Commission_pct заканчивается знаком %). Столбец Commission_pct имеет тип VARCHAR.

SELECT Worker_name, Salary, Commission_pct FROM Worker WHERE__________________

Выберите из предложенных вариантов те, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата:


Ответ:

 (1) Commission_pct LIKE AS ‘%!%’ ESCAPE ‘!’ 

 (2) Commission_pct LIKE ‘%!%’ ESCAPE ‘!’ 

 (3) Commission_pct LIKE ‘%?%’ ESCAPE ‘?’ 

 (4) Commission_pct LIKE ‘ %”%” ’  

 (5) Commission_pct LIKE ‘%ESCAPE%’ 


Номер 5
Отношение Worker имеет схему:
				files
				
				Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp)
				

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

SELECT Worker_name FROM Worker WHERE __________________

Выберите из предложенных вариантов те, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата:


Ответ:

 (1) Worker_name LIKE AS ‘[A-C] %’ 

 (2) Worker_name LIKE ‘[ABC]’ 

 (3) Worker_name < 'C' OR Worker_name LIKE 'C%' 

 (4) Worker_name LIKE 'C%' OR Worker_name LIKE 'A%' OR Worker_name LIKE 'B%' 

 (5) Worker_name LIKE ‘[ABC] %’ 


Номер 6
Отношение Worker состоит из следующих кортежей:
				files
				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom_Jayson1511000.41020.05.98
12Alex_Tayler179000.22021.06.98

Запрос предназначен для получения отчета, содержащего информацию о сотрудниках, для которых помимо имени известна и фамилия (фамилия отделяется от имени символом "_" в столбце Worker_name).

SELECT Worker_name, Salary, Commission_pct FROM Worker WHERE __________________

Выберите из предложенных вариантов те, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата:


Ответ:

 (1) Worker_name LIKE ‘%!_%’ ESCAPE ‘!’ 

 (2) Worker_name LIKE “%!_%” ESCAPE ‘!’ 

 (3) Worker_name LIKE ‘%?_’ ESCAPE ‘?’ 

 (4) Worker_name LIKE ‘%?_%’ ESCAPE '?' 

 (5) Worker_name LIKE ‘%[_]’ 


Упражнение 8:
Номер 1
Выберите из предложенного списка варианты с правильной расстановкой приоритетов (очередности выполнения) различных групп операторов:

Ответ:

 (1) Арифметические операторы Операторы сравнения (<, >, = …) Оператор конкатенации  

 (2) Логические операторы (AND, OR) Оператор конкатенации Арифметические операторы  

 (3) Логические операторы (AND, OR) Арифметические операторы Операторы сравнения (<, >, = …)  

 (4) Арифметические операторы Оператор конкатенации Логические операторы (AND, OR)  

 (5) ничего из перечисленного 


Номер 2

Оператор ESCAPE:


Ответ:

 (1) может использоваться в сочетании с оператором LIKE  

 (2) применяется для исключения из диапазона, задаваемого оператором BETWEENAND, конкретных значений  

 (3) применяется для исключения из списка, задаваемого оператором IN, конкретных значений  

 (4) не существует  

 (5) может применяться для поиска метасимволов: "_" и "%".  


Номер 3
Положим условия: у1, у2, у3 являются истинными, а условия x1, x2, x3 – ложными.

Какие из перечисленных комплексных условий во фразе WHERE будут истинными:


Ответ:

 (1) y1 and (x1 or y2)  

 (2) y2 and x2 or x1 or x3  

 (3) у1 and x1 or у2 and x2 or у3 and x3  

 (4) у1 and (x1 or у2) and (x2 or у3) or x3  


Номер 4
Выберите из представленного списка все операторы, которые не могут применяться для сравнения числовых значений:

				

Ответ:

 (1) IN  

 (2) <>  

 (3) BETWEEN AND  

 (4) =< 


Номер 5
Положим условия: у1, у2, у3 являются истинными, а условия x1, x2, x3 – ложными.

Какие из перечисленных комплексных условий во фразе WHERE будут истинными:


Ответ:

 (1) x1 or x2 and y2 or y1  

 (2) (y3 and (y1 and(x3 or not y2))) or (x3 and (y1 or y3))  

 (3) у1 and not x1 or у2 and x2 or not у3 and x3  

 (4) (x1 and y1 or y2) or (x2 and (y1 or y3))  


Номер 6
Выберите из предложенного списка варианты с правильной расстановкой приоритетов (очередности выполнения) различных групп операторов:

				

Ответ:

 (1) Логические операторы (AND, OR) Операторы сравнения (<, >, = …) Оператор конкатенации  

 (2) Оператор конкатенации Операторы сравнения (<, >, = …) Логические операторы (AND, OR)  

 (3) Арифметические операторы Операторы сравнения (<, >, = …) Оператор конкатенации  

 (4) Оператор конкатенации Логические операторы (AND, OR) Операторы сравнения (<, >, = …)  

 (5) ничего из перечисленного  


Упражнение 9:
Номер 1
Отношение Students имеет схему:
files
Students: Student_id (int, PK), Student_name, Head_stud_id, Math_scope (float, NOT NULL), Lang_scope (float, NOT NULL), Group_id (int)

Запрос предназначен для получения отчета, содержащего имена студентов группы №10, обладающих общим средним баллом по обеим дисциплинам, превышающим 9.0, и имена студентов группы № 20, обладающих средним баллом по дисциплине Математика (Math_scope), превышающим 4.3.

SELECT Student_name, Math_scope, Lang_scope FROM Students WHERE __________________

Выберите из предложенных вариантов те, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата:


Ответ:

 (1) Math_scope + Lang_scope > 9.0 AND Group_id=10 OR Math_scope> 4.3 AND Group_id=20  

 (2) Math_scope + Lang_scope > 9.0 AND Group_id=10 AND Math_scope > 4.3 AND Group_id=20  

 (3) (Math_scope + Lang_scope > 9.0 AND Group_id=10) AND (Math_scope > 4.3 AND Group_id=20)  

 (4) (Math_scope + Lang_scope > 9.0 AND Group_id=10) OR (Math_scope > 4.3 AND Group_id=20)  


Номер 2
Отношение Groups имеет схему:files
				Groups: Group_id (int PK), Grade_level (int NOT NULL), Specialty_id (int FK), Head_stud_id

Запрос предназначен для нахождения всех учебных групп (Group_id) студентов 4 и 5 курсов (Grade_level), обучающихся по специальности 123, а также учебных групп студентов 1 и 2 курсов, обучающихся по специальности 11.

SELECT Group_id FROM Students WHERE __________________

Выберите из предложенных вариантов те, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата:


Ответ:

 (1) (Grade_level IN (4, 5) AND Specialty_id=123) AND (Grade_level IN (1, 2) AND Specialty_id=11)  

 (2) Grade_level IN (4, 5) AND Specialty_id=123 AND Grade_level IN (1, 2) AND Specialty_id=11  

 (3) (Grade_level IN (4, 5) AND Specialty_id=123) OR (Grade_level IN (1, 2) AND Specialty_id=11)  

 (4) Grade_level IN (4, 5) AND Specialty_id=123 OR Grade_level IN (1, 2) AND Specialty_id=11  


Номер 3
Отношение Specialties состоит из следующих кортежей:files
				 						
Specialty_idSpecialty_titleSpecialty_rating
11.01.15Accounting9.8
12.03.14Engineering 6.2

Запрос предназначен для получения наименований техничеких специальностей (т.е специальностей, значения в столбце Specialty_id которых начинаются с цифр 11), рейтинг которых превышает 8 и экономических специальностей (первые цифры в столбце Specialty_id - 12) с рейтингом менее 7.

SELECT Specialty_name FROM Specialties WHERE___________________

Выберите из предложенных вариантов те, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата при условии, что столбцы Specialty_id и Specialty_rating не могут принимать значение NULL и значения в столбце Specialty_id имеют фиксированную ширину – 8 символов:


Ответ:

 (1) Specialty_id LIKE ‘11%’ AND Specialty_rating > 8 OR Specialty_id LIKE ‘12%’ AND Specialty_rating < 7  

 (2) (Specialty_id LIKE ‘11%’ AND Specialty_rating > 8) AND (Specialty_id LIKE ‘12%’ AND Specialty_rating) < 7  

 (3) Specialty_id LIKE ‘11%’ OR Specialty_rating > 8 AND Specialty_id LIKE ‘12%’ OR Specialty_rating < 7  

 (4) (Specialty_id LIKE ‘11_ _ _ _ _ _’ AND Specialty_rating > 8) OR (Specialty_id LIKE ‘12_ _ _ _ _ _’ AND Specialty_rating < 7)  


Номер 4
Отношение Branch имеет схему:
files
Branch: Branch_id (int PK), Branch_title (varchar (30)), Location_id (int)

Запрос предназначен для нахождения всех отделов компании (Branch_title) которые в своем названии содержат слово "Account" или "Sales", и значение в столбце Location_id которых равно 11, а также отделов, в названии которых содержится слово "Research".

SELECT Branch_title FROM Branch WHERE __________________

Выберите из предложенных вариантов те, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата при условии, что столбцы Branch_title и Location_id не могут принимать значение NULL:


Ответ:

 (1) (Branch_title IN (‘%Account%’, ‘%Sales%’) AND Location_id=11) OR (Branch_title LIKE ‘%Research%’)  

 (2) (Branch_title LIKE ‘%Account%’ OR Branch_title LIKE ‘%Sales%’ AND Location_id=11) OR (Branch_title LIKE ‘%Research%’)  

 (3) ((Branch_title LIKE ‘%Account%’ OR Branch_title LIKE ‘%Sales%’) AND Location_id=11) OR (Branch_title LIKE ‘%Research%)’  

 (4) (Branch_title LIKE ‘%Account%’ OR Branch_title LIKE ‘%Sales%’) AND Location_id=11 OR Branch_title LIKE ‘%Research%’  


Номер 5
Отношение Worker имеет схему:
	files
Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp)

Запрос предназначен для поиска сотрудников 10 отдела, общий доход которых (Salary + Salary*Commission_pct) превышает 1500, и сотрудников 20 отдела с общим доходом, меньшим 1000

SELECT Worker_name FROM Worker WHERE___________________

Выберите из предложенных вариантов те, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата:


Ответ:

 (1) Branch_id = 10 AND Commission_pct*Salary + Salary > 1500 OR Branch_id = 20 AND Commission_pct*Salary+ Salary < 1000  

 (2) Branch_id = 10 AND Commission_pct*Salary + Salary > 1500 AND Branch_id = 20 AND Commission_pct*Salary + Salary < 1000  

 (3) (Branch_id = 10 AND Commission_pct*Salary + Salary > 1500) OR (Branch_id = 20 AND Commission_pct*Salary + Salary < 1000)  

 (4) (Branch_id = 10 AND Commission_pct*Salary + Salary > 1500) AND (Branch_id = 20 AND Commission_pct*Salary + Salary < 1000)  


Номер 6
Отношение Worker имеет схему:
				files
				
				Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp)
				
				

Запрос предназначен для нахождения всех сотрудников 10 и 20 отделов с зарплатой, превышающей 1000, и сотрудников 30 отдела с зарплатой, превышающей 800.

SELECT Worker_name FROM Worker WHERE __________________

Выберите из предложенных вариантов те, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата при условии, что столбцы Branch_id и Salary не могут принимать значение NULL:


Ответ:

 (1) (Branch_id IN (10, 20) AND Salary >1000) AND (Branch_id = 30 AND Salary >800)  

 (2) (Branch_id =10 OR Branch_id=20 AND Salary >1000) OR (Branch_id = 30 AND Salary >800)  

 (3) (Branch_id IN (10, 20) AND Salary >1000) OR (Branch_id = 30 AND Salary >800)  

 (4) (Branch_id =10 OR Branch_id=20) AND Salary >1000 OR Branch_id = 30 AND Salary >800  


Упражнение 10:
Номер 1
Какие из перечисленных функций не являются функциями работы со строками:
				

Ответ:

 (1) LOWER  

 (2) AVG  

 (3) LEFT  

 (4) LTRIM  

 (5) CAST  


Номер 2
Какие из перечисленных функций могут использоваться для явного преобразования типов данных:

				

Ответ:

 (1) NVL  

 (2) ISNULL  

 (3) CAST  

 (4) AVG  

 (5) RTRIM  


Номер 3
Отношение Students состоит из следующих кортежей:files
				 						
Student_idStudent_nameHead_stud_idMath_scopeSalaryGroup_id
11Lincoln154.7100010
12Li284.2100020

Запрос имеет следующий вид:

SELECT Student_name, CASE WHEN Math_scope > 4.5 Salary*1.2 WHEN Math_scope BETWEEN 4 AND 4.5 Salary*1.1 END AS new sal FROM Students

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
Student_nameNew sal
Lincoln1100
Li1200
 

 (2) сервер БД сгенерирует ошибку 

 (3)
Student_nameNew sal
Lincoln1000
Li1000
 

 (4)
Student_nameNew sal
LincolnNULL
LiNULL
 


Номер 4
Функция POSITION
				

Ответ:

 (1) делает текущей заданную строку в заданной таблице 

 (2) возвращает номер позиции первого символа заданной подстроки в заданной строке 

 (3) заполняет указанным символом заданную позицию в строке 

 (4) возвращает номер текущей строки в заданной таблице 

 (5) возвращает разность между местным и всемирным временем (часовой пояс) 


Номер 5
Отношение Worker состоит из следующих кортежей:
				files
				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1510000.81020.05.98
12Alex17900NULL2021.06.98

Запрос имеет следующий вид:

SELECT Worker_name, CASE WHEN Salary < 1000 THEN Salary*1.2 WHEN Salary >=1000 THEN Salary*1.1 AS new_sale FROM Worker

При попытке выполнения запроса сервер БД генерирует ошибку, среди предложенных вариантов выберите действие, выполнение которого позволит устранить ошибку:


Ответ:

 (1) вместо ключевого слова WHEN использовать ключевое слово IF  

 (2) удалить слово THEN во фразах WHEN  

 (3) добавить ключевое слово END после псевдонима new_sale  

 (4) добавить ключевое слово END перед предлогом AS 

 (5) удалить из запроса псевдоним, то есть фразу AS new_sale 


Номер 6
Отношение Worker имеет схему:
				files
				Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp)

Запрос предназначен для отображения имен сотрудников и их окладов (Salary), увеличенных на 10%, если сотрудник работает в 10 отделе и на 20% во всех остальных случаях. (Изменение окладов должно быть отражено только в отчете, но не в самой БД)

SELECT Worker_name, _____________________ FROM Worker

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


Ответ:

 (1) IF (Branch_id=10) THEN Salary*1.1 ELSE Salary*1.2 AS new Salary 

 (2) IF (Branch_id=10) THEN Salary*1.1 ELSE Salary*1.2 END AS new Salary 

 (3) CASE Branch_id WHEN 10 Salary*1.1 ELSE Salary*1.2 END AS new_sal 

 (4) CASE Branch_id WHEN 10 THEN Salary*1.1 ELSE Salary*1.2 END AS new_sal 

 (5) CASE Branch_id WHEN 10 THEN Salary*1.1 ELSE Salary*1.2 AS new_sal END 


Упражнение 11:
Номер 1
Запрос имеет следующий вид:
SELECT substring (‘TEST’, 2, 3)

Среди представленных вариантов выберите корректный вариант итогового отчета:


Ответ:

 (1)
(No column name)
TES
 

 (2)
(No column name)
 

 (3)
(No column name)
T
 

 (4)
(No column name)
EST
 

 (5) сервер сгенерирует ошибку  


Номер 2
Функция CURRENT_TIMESTAMP

Ответ:

 (1) позволяет установить заданное время в качестве системного 

 (2) возвращает текущее время 

 (3) возвращает время начала работы текущего пользователя с текущей базой данных  

 (4) позволяет установить заданную дату в качестве системной  

 (5) возвращает текущую дату  


Номер 3
Запрос SQL имеет вид:
SELECT REPLACE (LOWER (‘Alex’), ‘a’, ‘B’)

Среди представленных вариантов выберите корректный вариант итогового отчета:


Ответ:

 (1)
(No column name)
BLEX
 

 (2)
(No column name)
blex
 

 (3)
(No column name)
alex
 

 (4) сервер сгенерирует ошибку  

 (5)
(No column name)
Blex
 


Номер 4
Функция UPPER
				

Ответ:

 (1) переводит заданную строку в верхний регистр 

 (2) возвращает заданное число, округленное вверх до ближайшего целого 

 (3) возвращает год, следующий за текущей датой 

 (4) генерирует следующее натуральное число заданной последовательности 

 (5) задает верхнюю границу цикла 


Номер 5
Получить подстроку, начинающуюся с заданной позиции в заданной строке, можно с помощью функции

Ответ:

 (1) IN 

 (2) POSITION 

 (3) SUBSTRING 

 (4) EXTRACT 

 (5) CONCAT 


Номер 6
Для удаления пробелов из строки используется функция

Ответ:

 (1) SUBSTRING 

 (2) EXTRACT 

 (3) NULLIF 

 (4) TRIM 

 (5) DELBL 


Упражнение 12:
Номер 1
Для удаления записей из таблицы базы данных предназначен оператор

Ответ:

 (1) ALTER TABLE 

 (2) DEALLOCATE 

 (3) DELETE 

 (4) DROP 

 (5) ROLLBACK 


Номер 2
Оператор UPDATE

Ответ:

 (1) завершает транзакцию записью всех произведенных ею изменений 

 (2) изменяет структуру таблицы 

 (3) изменяет значение столбцов таблицы  

 (4) может содержать вложенный подзапрос на выборку данных 

 (5) может быть вложен в качестве подзапроса в другой запрос 


Номер 3
Оператор INSERT

Ответ:

 (1) добавляет новую таблицу в БД 

 (2) добавляет новую запись в таблицу БД 

 (3) вставляет новое значение в существующую ячейку таблицы  

 (4) может содержать вложенный подзапрос на выборку данных 

 (5) может быть вложен в качестве подзапроса в другой запрос 


Номер 4
Для добавления новых записей в таблицу базы данных предназначен оператор

Ответ:

 (1) ADD 

 (2) ALTER TABLE 

 (3) COMMIT 

 (4) INSERT 

 (5) SET 


Номер 5
Оператор DELETE

Ответ:

 (1) удаляет запись из таблицы БД 

 (2) удаляет таблицу из БД 

 (3) удаляет значение из некоторого столбца таблицы  

 (4) может содержать вложенный подзапрос на выборку данных 

 (5) может быть вложен в качестве подзапроса в другой запрос 


Номер 6
Для изменения значений столбцов таблицы служит оператор

Ответ:

 (1) ALTER TABLE 

 (2) COMMIT 

 (3) SET 

 (4) UPDATE 

 (5) UPGRADE 


Упражнение 13:
Номер 1
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name(varchar), Head_stud_id, Math_scope (float, NOT NULL), Lang_scope (float, NOT NULL), Group_id (int)

При выполнении следующего запроса сервер БД генерирует ошибку.

INSERT TO Students (Student_name, Student_id, Group_id) VALUES ('Alex', 19, NULL)

Укажите причину ошибки.


Ответ:

 (1) вместо слова TO следует использовать слово INTO 

 (2) значения вставляются не во все столбцы таблицы Students 

 (3) порядок перечисления столбцов не соответствует порядку столбцов в таблице Students 

 (4) в списке значений нельзя использовать значение NULL 

 (5) список значений не соответствует по типам данных списку столбцов 


Номер 2
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name(varchar), Head_stud_id, Math_scope (float, NOT NULL), Lang_scope (float, NOT NULL), Group_id (int)

При выполнении следующего запроса сервер БД генерирует ошибку.

DELETE Student_name, Student_id FROM Students WHERE Math_scope IS NULL

Укажите причину ошибки.


Ответ:

 (1) в операторе DELETE не могут указываться отдельные столбцы, удаляется всегда строка целиком 

 (2) порядок перечисления столбцов после слова DELETE не соответствует порядку столбцов таблицы Students 

 (3) следует добавить Math_scope в список столбцов после слова DELETE 

 (4) слово IS следует заменить на знак "=" 

 (5) столбец Math_scope не может принимать значение NULL 


Номер 3
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name(varchar), Head_stud_id, Math_scope (float, NOT NULL), Lang_scope (float, NOT NULL), Group_id (int)

При выполнении следующего запроса сервер БД генерирует ошибку.

UPDATE Students SET Math_scope TO NULL WHERE Math_scope < 3.2 AND Math_scope > 2.1

Укажите причину ошибки.


Ответ:

 (1) после слова UPDATE должен следовать перечень изменяемых столбцов 

 (2) отсутствует фраза FROM 

 (3) вместо TO следует использовать знак "=" 

 (4) вместо TO следует использовать IS 

 (5) AND следует заменить на OR 


Номер 4
Отношение Worker имеет схему:
				files
Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp) 

При выполнении следующего запроса сервер БД генерирует ошибку.

INSERT INTO Worker (Manager_id, Worker_name, Hire_date) VALUES ('Tom', 17, NULL)

Укажите причину ошибки.


Ответ:

 (1) вместо слова INTO следует использовать слово IN 

 (2) значения вставляются не во все столбцы таблицы Worker 

 (3) порядок перечисления столбцов не соответствует порядку столбцов в таблице Worker 

 (4) в списке значений нельзя использовать значение NULL 

 (5) список значений не соответствует по типам данных списку столбцов 


Номер 5
Отношение Worker имеет схему:
				files
Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp)

При выполнении следующего запроса сервер БД генерирует ошибку.

DELETE Worker_name, Worker_id FROM Worker WHERE Salary IS NULL

Укажите причину ошибки.


Ответ:

 (1) в операторе DELETE не могут указываться отдельные столбцы, удаляется всегда строка целиком 

 (2) порядок перечисления столбцов после слова DELETE не соответствует порядку столбцов таблицы Worker 

 (3) следует добавить Salary в список столбцов после слова DELETE 

 (4) слово IS следует заменить на знак "=" 

 (5) столбец Salary не может принимать значение NULL 


Номер 6
Отношение Worker имеет схему:
				files
Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (int NOT NULL), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp)

При выполнении следующего запроса сервер БД генерирует ошибку.

UPDATE Worker SET Branch_id = 11 WHERE Branch_id = 10, SET Manager_id = 17 WHERE Manager_id IS NULL

Укажите причину ошибки.


Ответ:

 (1) отсутствует фраза FROM 

 (2) невозможно присутствие двух секций SET 

 (3) невозможно обновить более одного столбца 

 (4) Manager_id не может принимать значение NULL 

 (5) вместо слова IS следует использовать знак "="  


Упражнение 14:
Номер 1
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name(varchar), Head_stud_id, Math_scope (float), Lang_scope (float), Group_id (int)

Отношение Head имеет аналогичную структуру. Требуется добавить в таблицу Head номер, имя и группу студентов с оценкой по математике более 4.4 Выберите варианты запроса, решающего данную задачу.


Ответ:

 (1) INSERT INTO Head SELECT Student_id, Student_name, Group_id FROM Students WHERE Math_scope > 4.4  

 (2) INSERT INTO Head VALUES (SELECT Student_id, Student_name, Group_id FROM Students WHERE Math_scope > 4.4)  

 (3) INSERT INTO Head VALUES (SELECT Student_id, Student_name, NULL, NULL, NULL, Group_id FROM Students WHERE Math_scope > 4.4)  

 (4) INSERT INTO Head(Student_id, Student_name, Head_stud_id, Math_scope, Lang_scope, Group_id) SELECT Student_id, Student_name, NULL, NULL, NULL, Branch_id FROM Students WHERE Math_scope > 4.4  

 (5) INSERT INTO Head(Group_id, Student_name, Student_id) SELECT Group_id, Student_name, Student_id FROM Students WHERE Math_scope > 4.4  


Номер 2
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name(varchar), Head_stud_id, Math_scope (float, NOT NULL), Lang_scope (float, NOT NULL), Group_id (int)

Требуется удалить записи о студентах, являющимися старостами (Head_stud_id - номер студента-старосты). Выберите варианты запроса, решающего данную задачу.


Ответ:

 (1) DELETE FROM Students WHERE Head_stud_id IS NOT NULL  

 (2) DELETE FROM Students WHERE Head_stud_id <> NULL  

 (3) DELETE FROM Students WHERE Head_stud_id NOT IS NULL  

 (4) DELETE FROM Students WHERE Head_stud_id IN (SELECT Head_stud_id FROM Students)  

 (5) DELETE FROM Students WHERE EXISTS (SELECT s.Head_stud_id FROM Students s WHERE Students.Student_id = s.Head_stud_id)  


Номер 3
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name(varchar), Head_stud_id, Math_scope (float, NOT NULL), Lang_scope (float, NOT NULL), Group_id (int)

Требуется увеличить на 1.0 балл по иностранному языку и перевести в группу 13 студентов из группы 5. Выберите варианты запроса, решающего поставленную задачу.


Ответ:

 (1) UPDATE Students SET Lang_scope = Lang_scope + 1.0, Group_id = 13 WHERE Group_id = 5  

 (2) UPDATE Students SET Lang_scope = CASE WHEN Branch_id=5 THEN Lang_scope=Lang_scope+1.0 ELSE Lang_scope END, SET Group_id = CASE WHEN Branch_id=5 THEN Branch_id=13 ELSE Group_id END  

 (3) UPDATE Students SET Lang_scope = CASE WHEN Branch_id=5 THEN Lang_scope+1.0 ELSE Lang_scope, Group_id = CASE WHEN Branch_id=5 THEN 13 ELSE Group_id  

 (4) UPDATE Students SET Lang_scope = CASE WHEN Branch_id=5 THEN Lang_scope+1.0 ELSE Lang_scope END, Group_id = CASE WHEN Branch_id=5 THEN 13 ELSE Group_id END  

 (5) UPDATE Students SET Lang_scope = CASE WHEN Branch_id=5 THEN Lang_scope+1.0 ELSE Lang_scope END, Group_id = CASE 5 THEN 13 ELSE Group_id END  


Номер 4
Отношение Worker имеет схему:
				files
Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)

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


Ответ:

 (1) INSERT INTO Manager SELECT Worker_id, Worker_name, Salary, Branch_id FROM Worker WHERE Salary > 1000  

 (2) INSERT INTO Manager SELECT Worker_id, Worker_name, NULL, NULL, Salary, NULL, Branch_id, NULL FROM Worker WHERE Salary > 1000  

 (3) INSERT INTO Manager VALUES (SELECT Worker_id, Worker_name, NULL, NULL, Salary, NULL, Branch_id, NULL FROM Worker WHERE Salary > 1000)  

 (4) INSERT INTO Manager(Worker_id, Worker_name, Salary, Branch_id) SELECT Worker_id, Worker_name, Salary, Branch_id FROM Worker WHERE Salary > 1000  

 (5) INSERT INTO Manager(Worker_id, Worker_name, Position, Manager_id, Salary, Commission_pct, Branch_id, Hire_date) SELECT Worker_id, Worker_name, NULL, NULL, Salary, NULL, Branch_id, NULL FROM Worker WHERE Salary > 1000  


Номер 5
Отношение Worker имеет схему:
				files
Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (id), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp)

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


Ответ:

 (1) DELETE * FROM worker WHERE id = (SELECT Manager_id FROM Worher)  

 (2) DELETE FROM worker WHERE id = (SELECT Manager_id FROM Worher)  

 (3) DELETE FROM worker WHERE id IN (SELECT Manager_id FROM Worher)  

 (4) DELETE FROM Worker WHERE EXISTS (SELECT w.Manager_id FROM Worker w WHERE Worker.Worker_id = w.Manager_id)  

 (5) DELETE FROM Worker WHERE EXISTS (SELECT w.Worker_id FROM Worker w WHERE w.Worker_id = Worker.Manager_id)  


Номер 6
Отношение Worker имеет схему:
				files
Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (int), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp)

Требуется увеличить на 500 зарплату и назначить менеджером сотрудника с номером 13 для работающих в отделе 10. Выберите варианты запроса, решающего данную задачу.


Ответ:

 (1) UPDATE Worker SET Salary = 500 SET Manager_id = 13 Where Branch_id = 10  

 (2) UPDATE Worker SET Salary = 500, Manager_id = 13 Where Branch_id = 10  

 (3) UPDATE Worker SET Salary = Salary + 500, Manager_id = 13 Where Branch_id = 10  

 (4) UPDATE Worker SET Salary = 500 + Salary AND Manager_id = 13 Where Branch_id = 10  

 (5) Update Worker SET Salary = CASE WHEN Branch_id=10 THEN Salary+500 ELSE Salary END, Manager_id = CASE WHEN Branch_id=10 THEN 13 ELSE Manager_id END  


Упражнение 15:
Номер 1

При выполнении следующего запроса сервер БД генерирует ошибку.

CREATE TABLE t (INTEGER f1, CHARACTER(15) f2, CONSTRAINT c1 PRIMARY KEY(f1, f2))

Укажите причину ошибки.


Ответ:

 (1) ограничение первичного ключа не может содержать более одного столбца 

 (2) вместо фразы CONSTRAINT следует в определении каждого из столбцов f1 и f2 написать PRIMARY KEY 

 (3) столбец с типом данных CHARACTER не может быть первичным ключом 

 (4) сначала должно указываться имя столбца и лишь затем - его тип данных 

 (5) слово CONSTRAINT написано с ошибкой 


Номер 2

При выполнении следующего запроса сервер БД генерирует ошибку.

CREATE TABLE t (f1 INTEGER, f2 CHARACTER(15) NOT NULL, UNIQUE, CONSTRAINT c1 PRIMARY KEY(f1))

Укажите причину ошибки.


Ответ:

 (1) любые ограничения должны записываться в отдельной строке CONSTRAINT 

 (2) столбец не может иметь более одного ограничения 

 (3) вместо двух ограничений NOT NULL и UNIQUE для столбца f2 следует записать одно - PRIMARY KEY 

 (4) в таблице не может быть более одного столбца, обладающего свойствами первичного ключа - NOT NULL и UNIQUE 

 (5) не нужна запятая при перечислении ограничений одного столбца 


Номер 3

При выполнении следующего запроса сервер БД генерирует ошибку.

CREATE VIEW AS v SELECT t1.f1, t2.f2 FROM t1, t2

Укажите причину ошибки.


Ответ:

 (1) имя представления v и слово AS следует поменять местами 

 (2) подзапрос SELECT следует заключить в круглые скобки 

 (3) во фразе SELECT перед точкой должно указываться имя столбца, а после точки - имя таблицы 

 (4) представление не может содержать данные из нескольких таблиц 

 (5) таблицы t1 и t2 в подзапросе на связаны между собой с помощью JOIN или WHERE 


Номер 4
Оператор CREATE TABLE 

Ответ:

 (1) создает новую таблицу 

 (2) создает новую таблицу на основе некоторой другой существующей таблицы с ее последующим удалением 

 (3) создает представление - виртуальную таблицу 

 (4) определяет имя и столбцы новой таблицы 

 (5) позволяет изменить имя и столбцы существующей таблицы 


Номер 5
Определение столбца в операторе CREATE TABLE

Ответ:

 (1) содержит только имя столбца 

 (2) содержит только имя и ограничение столбца 

 (3) содержит тип данных и имя столбца в таком же порядке 

 (4) содержит имя и тип столбца в таком же порядке 

 (5) обязательно содержит тип, имя и ограничение столбца 


Номер 6
В операторе CREATE TABLE

Ответ:

 (1) определения столбцов пишутся каждое на отдельной строке, никакими другими символами-разделителями не отделяются 

 (2) определения столбцов разделяются запятыми 

 (3) элементы определения одного столбца пишутся каждое на отдельной строке, никакими другими символами-разделителями не отделяются 

 (4) элементы определения одного столбца разделяются пробелом 

 (5) элементы определения одного столбца разделяются запятыми 


Упражнение 16:
Номер 1
Что может выступать в качестве ограничения столбца при создании таблицы?

Ответ:

 (1) IN 

 (2) UNIQUE 

 (3) SECONDARY KEY 

 (4) NOT EMPTY 

 (5) REFERENCES 


Номер 2
Ограничение PRIMARY KEY

Ответ:

 (1) делает указанный столбец первичным ключом отношения 

 (2) задает столбец, в котором будет храниться порядковый номер строки таблицы 

 (3) может использоваться в определении таблицы более одного раза 

 (4) может использоваться только для столбцов с названием, содержащим подстроку "id" 

 (5) автоматически содержит в себе ограничение NOT NULL 


Номер 3
Ограничение DEFAULT

Ответ:

 (1) устанавливает для столбца значение по умолчанию 

 (2) автоматически содержит в себе ограничение NOT NULL 

 (3) не может затрагивать комбинацию из нескольких столбцов 

 (4) не может использоваться в паре ни с каким другим ограничением 

 (5) в списке ограничений столбца должно быть последним 


Номер 4
DDL (язык определения данных) содержит операторы:

Ответ:

 (1) CREATE VIEW 

 (2) DELETE TABLE 

 (3) UPDATE TABLE 

 (4) CREATE TABLE 

 (5) ALTER VIEW 


Номер 5
Ограничение FOREIGN KEY

Ответ:

 (1) автоматически содержит в себе ограничение NOT NULL 

 (2) может ссылаться на любой столбец другой таблицы 

 (3) может ссылаться на столбец этой же таблицы 

 (4) может ссылаться более чем на один столбец 

 (5) обязательно содержит слово REFERENCES 


Номер 6
Фраза ON DELETE CASCADE

Ответ:

 (1) может использоваться в определении первичного ключа 

 (2) означает, что при удалении значения первичного ключа будут удалены строки, содержащие данное значение во внешнем ключе 

 (3) означает, что при удалении значения внешнего ключа будут удалены строки, содержащие данное значение в первичном ключе 

 (4) может дополняться фразой ON INSERT CASCADE 

 (5) альтернативна фразе ON DELETE SET NULL 


Упражнение 17:
Номер 1
Удалить таблицу из базы данных можно

Ответ:

 (1) оператором DELETE TABLE 

 (2) оператором DROP TABLE 

 (3) только если она пуста 

 (4) только если она не имеет внешних ключей, ссылающихся на другие существующие таблицы 

 (5) только если она была создана как временная, то есть с опцией TEMPORARY 


Номер 2
Оператор изменения структуры таблицы

Ответ:

 (1) -это оператор UPDATE 

 (2) позволяет добавить новый столбец в таблицу 

 (3) позволяет добавить новую строку в таблицу 

 (4) может содержать фразу DROP COLUMN 

 (5) может привести к потере данных 


Номер 3
Представление (VIEW)

Ответ:

 (1) хранит данные, отобранные соответствующим подзапросом SELECT 

 (2) создается оператором CREATE TEMPORARY TABLE 

 (3) предназначено для хранения текста запроса на выборку данных 

 (4) может быть использовано в секции FROM запроса на выборку данных 

 (5) может представлять данные из нескольких таблиц 


Номер 4
Для значения "221b" подойдет тип данных

Ответ:

 (1) CHAR 

 (2) FLOAT 

 (3) INTEGER  

 (4) TIMESTAMP 

 (5) VARCHAR 


Номер 5
Для значения "0,01" подойдет тип данных

Ответ:

 (1) BOOLEAN 

 (2) FLOAT 

 (3) INTEGER 

 (4) NUMERIC 

 (5) SMALLINT 


Номер 6
Для значения "1 сентября 2000г 8:00" подойдет тип данных

Ответ:

 (1) DATE 

 (2) FLOAT 

 (3) INTEGER 

 (4) TIME 

 (5) TIMESTAMP 


Упражнение 18:
Номер 1

Функция AVG:


Ответ:

 (1) используется для подсчета в итоговом отношении (каждой группе строк итогового отношения) числа значений выбранного столбца, отличных от NULL  

 (2) используется для вычисления дисперсии значений выбранного столбца во всей выборке или в каждой группе строк итогового отношения  

 (3) используется для вычисления математического ожидания значений выбранного столбца во всей выборке или в каждой группе строк итогового отношения  

 (4) используется для вычисления среднего арифметического значений выбранного столбца во всей выборке или в каждой группе строк итогового отношения  

 (5) возвращает значение NULL, если переданное в качестве аргумента выражение или столбец, принимает для одной из строк, обрабатываемых этой функцией, неопределенное значение 


Номер 2

Функция COUNT:


Ответ:

 (1) используется для подсчета в итоговом отношении (или каждой группе строк итогового отчета) числа значений выбранного столбца, отличных от NULL  

 (2) используется для вычисления среднеквадратического отклонения значений выбранного столбца во всей выборке или в каждой группе строк итогового отношения  

 (3) используется для вычисления среднего арифметического значений выбранного столбца во всей выборке или в каждой группе строк итогового отношения  

 (4) используется для вычисления математического ожидания значений выбранного столбца во всей выборке или в каждой группе строк итогового отношения  

 (5) не обрабатывает строки, для которых выражение или столбец, переданные в функцию в качестве аргумента, принимают неопределенные значения 


Номер 3

Групповые функции:


Ответ:

 (1) возвращают отдельные значения для каждой обрабатываемой строки  

 (2) возвращают одно значение для каждой группы строк или всех строк, обрабатываемых по запросу  

 (3) не обрабатывают строки, для которых выражение или столбец, переданные в функцию в качестве аргумента, принимают неопределенные значения  

 (4) возвращают значение NULL, если переданное в качестве аргумента выражение или столбец, принимает для одной из строк, обрабатываемых функцией, неопределенное значение  


Номер 4
Какие из перечисленных функций не являются групповыми:
				

Ответ:

 (1) SQRT  

 (2) AVG  

 (3) COUNT  

 (4) MIN  

 (5) SIN  


Номер 5
Какие из перечисленных функций являются групповыми:
				

Ответ:

 (1) SQRT  

 (2) SUM  

 (3) COUNT  

 (4) MAX  

 (5) COS  


Номер 6

Групповые функции:


Ответ:

 (1) могут использоваться только во фразе SELECT  

 (2) не могут использоваться в условии WHERE (если не идет речь о подзапросе)  

 (3) при вычислении не учитывают неопределенные значения  

 (4) возвращают значение NULL, если в качестве аргумента встречается неопределенное значение  

 (5) могут использоваться во фразе ORDER BY  


Упражнение 19:
Номер 1
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name (char), Head_stud_id, Math_scope (float), Lang_scope (float), Group_id (int).

Запрос предназначен для подсчета числа студентов в 10 группе, не имеющих оценки (среднего балла) по Математике (столбец Math_scope равен NULL)

SELECT _______________ FROM Students _____________________

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


Ответ:

 (1) первый фрагмент: AVG (Student_name) – AVG (Math_scope) второй фрагмент: WHERE Group_id=10 

 (2) первый фрагмент: COUNT (Student_id) – COUNT (Math_scope) второй фрагмент: GROUP Group_id=10 

 (3) первый фрагмент: COUNT (Student_id) – COUNT (Math_scope) второй фрагмент: WHERE Group_id=10 

 (4) первый фрагмент: COUNT (Student_id) второй фрагмент: WHERE Group_id=10 AND Math_scope IS NULL 


Номер 2
Отношение Students состоит из следующих кортежей:files
								 						
Student_idStudent_nameHead_stud_idMath_scopeExam_dateGroup_id
11Lincoln15NULLNULL10
12Li284.212.09.200310

Запрос имеет следующий вид:

SELECT AVG (MAX (Math_scope*1, 1)) AS result FROM Students ORDER BY result

При попытке выполнить запрос сервер генерирует ошибку. Укажите правильную причину ошибки:


Ответ:

 (1) групповая функция MAX не может принимать выражение в качестве аргумента  

 (2) во фразе ORDER BY не допускается использование псевдонимов  

 (3) при использовании вложенных групповых функций запрос всегда должен включать фразу GROUP BY  

 (4) групповая функция MAX не может быть вложенной в групповую функцию AVG  


Номер 3
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name (char), Head_stud_id, Math_scope (float NOT NULL), Lang_scope (float), Group_id (int)

Запрос предназначен для получения среднего балла по Математике (Math_scope) среди всех учащихся

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


Ответ:

 (1) SELECT AVG(Math_scope) FROM Students  

 (2) SELECT (MAX(Math_scope) - MIN(Math_scope)) / 2 FROM Students  

 (3) SELECT SUM(Math_scope)/COUNT FROM Students  

 (4) SELECT AVG(Math_scope) FROM Students GROUP BY Student_id  


Номер 4
Отношение Worker имеет схему:
				files
				Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)

Запрос предназначен для определения разницы максимального и минимального окладов среди сотрудников 10-го отдела

SELECT _______________ FROM Worker _____________________

Выберите из предложенных вариантов те, которые при подстановке вместо знаков подчеркивания обеспечивают корректное выполнение поставленной задачи


Ответ:

 (1) первый фрагмент: LAST (Salary) – FIRST (Salary) второй фрагмент: WHERE Branch_id=10 ORDER BY Salary 

 (2) первый фрагмент: DEV (Salary) второй фрагмент: WHERE Branch_id=10 

 (3) первый фрагмент: MAX (Salary) – MIN (Salary) второй фрагмент: WHERE Branch_id=10 

 (4) первый фрагмент: DIFF (Maximum(Salary), Minimum (Salary)) второй фрагмент: WHERE Branch_id=10 


Номер 5
Отношение Worker имеет схему:
				files
				Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp)

Запрос имеет следующий вид:

SELECT MAX (AVG (Salary*Commission_pct)) AS+ result FROM Worker ORDER BY result

При попытке выполнить запрос сервер генерирует ошибку. Укажите правильную причину ошибки:


Ответ:

 (1) групповая функция AVG не может принимать выражение в качестве параметра 

 (2) во фразе ORDER BY не допускается использование псевдонимов 

 (3) групповая функция AVG не может быть вложенной в групповую функцию MAX 

 (4) при использовании вложенных групповых функций запрос всегда должен включать фразу GROUP BY 


Номер 6
Отношение Worker имеет схему:
				files
				Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp)

Запрос предназначен для получения максимального дохода (оклад + премия) среди всех сотрудников. Премия рассчитывается как произведение значений в столбцах Salary и Commission_pct.

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


Ответ:

 (1) SELECT MAX(Salary + Salary*Commission_pct) FROM Worker GROUP BY Worker_id 

 (2) SELECT MAX(Salary + Salary*Commission_pct) FROM Worker 

 (3) SELECT MAX(Salary) + MAX(Salary*Commission_pct) FROM Worker 

 (4) SELECT MAX(Salary + Salary*Commission_pct) FROM Worker GROUP BY Worker_id = Worker_id 


Упражнение 20:
Номер 1
Отношение Students состоит из следующих кортежей:files
				 						
Student_idStudent_nameHead_stud_idMath_scopeSalaryGroup_id
11Lincoln152.3110010
12Li284.2NULL20
13Alan244.7130020

Запрос имеет следующий вид:

SELECT AVG (Salary) AS report FROM Students

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
report
NULL
 

 (2) сервер БД сгенерирует ошибку  

 (3)
report
800
 

 (4)
report
1200
 

 (5)
report
0
 


Номер 2
Отношение Students состоит из следующих кортежей:files
								 						
Student_idStudent_nameHead_stud_idMath_scopeSalaryGroup_id
11Lincoln152.3110010
12Li28NULLNULL20
13Alan244.7130020

Запрос имеет следующий вид:

SELECT MIN (Math_scope) AS report FROM Students

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
report
2.3
 

 (2) сервер БД сгенерирует ошибку  

 (3)
report
0
 

 (4)
report
NULL
 

 (5)
report
no rows selected
 


Номер 3
Отношение Students состоит из следующих кортежей:files
												 						
Student_idStudent_nameHead_stud_idMath_scopeSalaryGroup_id
11Lincoln152.3110010
12NULL28NULLNULL20
13Alberta244.7110020

Запрос имеет следующий вид:

SELECT COUNT(DISTINCT Salary) AS report FROM Students

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
report
2
 

 (2) сервер БД сгенерирует ошибку  

 (3)
report
0
 

 (4)
report
NULL
 

 (5)
report
1
 


Номер 4
Отношение Worker состоит из следующих кортежей:
				files
				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1710000.51020.05.98
12Alex17900NULL2021.06.98
13James19900NULL10NULL

Запрос имеет следующий вид:

SELECT COUNT (DISTINCT (Manager_id)) report FROM Worker

Выберите среди предложенных вариантов верный вариант итогового отчета, при условии, что столбец Manager_id имеет тип данных int:


Ответ:

 (1)
report
NULL
 

 (2) сервер БД сгенерирует ошибку  

 (3)
report
2
 

 (4)
report
3
 

 (5)
report
1
 


Номер 5
Отношение Worker состоит из следующих кортежей:
				files
								
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom151000$0.81020.05.98
12Alex17900$NULL2021.06.98
13Jack151500$0.220NULL

Запрос имеет следующий вид:

SELECT COUNT (Branch_id) AS report FROM Worker

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
report
NULL
 

 (2) сервер БД сгенерирует ошибку  

 (3)
report
0
 

 (4)
report
2
 

 (5)
report
3
 


Номер 6
Отношение Worker состоит из следующих кортежей:
				files
								
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom151000$0.81020.05.98
12Alex17900$NULL2021.06.98
13Jack151500$0.420NULL

Запрос имеет следующий вид:

SELECT AVG(Commission_pct) AS report FROM Worker

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
report
0.6
 

 (2) сервер БД сгенерирует ошибку  

 (3)
report
0.4
 

 (4)
report
NULL
 

 (5)
report
0
 


Упражнение 21:
Номер 1

Фраза HAVING:


Ответ:

 (1) не может включать такие операторы сравнения, как: BETWEEN ... AND, LIKE, IN  

 (2) может включать только столбцы и выражения, которые присутствуют во фразе GROUP BY или передаются в качестве аргументов в групповые функции этой же фразы (не принимая во внимания подзапросы)  

 (3) не допускает использования подзапросов  

 (4) используется для исключения групп из итоговой выборки  


Номер 2

Фраза GROUP BY:


Ответ:

 (1) предшествует фразе WHERE  

 (2) используется для разбиения исходного отношения на группы  

 (3) является обязательной, если в запросе используются групповые функции  

 (4) является обязательной, если во фразе SELECT помимо групповой функции присутствует название какого-либо столбца или выражение  


Номер 3
Выберите среди предложенных ниже вариантов те, которые отражают корректный порядок следования различных фраз в запросе на выборку данных
				

Ответ:

 (1) WHERE HAVING GROUP BY  

 (2) WHERE GROUP BY HAVING  

 (3) WHERE GROUP BY ORDER BY  

 (4) GROUP BY WHERE ORDER BY  


Номер 4
Выберите среди предложенных ниже вариантов те, которые отражают корректный порядок следования различных фраз в запросе на выборку данных

				

Ответ:

 (1) WHERE GROUP BY ORDER BY  

 (2) HAVING GROUP BY  

 (3) ORDER BY GROUP BY HAVING  

 (4) GROUP BY HAVING ORDER BY  


Номер 5

Фраза GROUP BY:


Ответ:

 (1) не может включать групповые функции  

 (2) содержит синтаксическую ошибку  

 (3) не допускает использования псевдонимов столбцов  

 (4) предшествует фразе ORDER BY  

 (5) может предшествовать фразе WHERE  


Номер 6
Какие из перечисленных вариантов кода являются допустимыми
				

Ответ:

 (1) WHERE AVG (column_name) > 10  

 (2) SELECT column1, column2, MIN (column3) FROM table1 GROUP BY column2  

 (3) SELECT expr1, MIN (column1) FROM table1 GROUP BY expr1 HAVING expr1 < 15  

 (4) SELECT column1, MIN (column2) FROM table1 WHERE column2 LIKE ‘Smith’ GROUP BY column1  


Упражнение 22:
Номер 1
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name (char), Head_stud_id, Math_scope (float, NOT NULL), Lang_scope (float), Salary (float, NOT NULL) Group_id (int).

Запрос предназначен для отображения информации о средней стипендии (Salary) в учебной группе №10 среди студентов, средний балл по Математике (Math_scope) которых превышает 4.5:

SELECT Group_id, AVG (Salary) FROM Students GROUP BY Group_id HAVING Group_id=10 AND Math_scope >4.5

При попытке выполнить запрос сервер БД генерирует сообщение об ошибке.

Укажите правильную причину возникновения ошибки.


Ответ:

 (1) неправильная позиция фразы HAVING в предложении SELECT 

 (2) условие Group_id=10 следует записать во фразе WHERE 

 (3) во фразе HAVING не может быть составных условий 

 (4) неверный синтаксис групповой функции вычисления среднеарифметического 

 (5) во фразе HAVING не может присутствовать столбец (выражение), которого нет во фразе GROUP BY, или который не передан в качестве аргумента в групповую функцию 


Номер 2
Отношение Students состоит из следующих кортежей:files
												 						
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Lincoln153.45.010
12NULL284.24.310

Запрос SQL имеет вид:

SELECT Student_name, Group_id, AVG(Math_scope) FROM Students WHERE Group_id in (10, 20) GROUP BY Group_id

При попытке выполнить запрос, сервер БД генерирует ошибку. Укажите правильную причину ошибки:


Ответ:

 (1) если в запросе используются групповые функции, то фраза WHERE является недопустимой, вместо нее следует использовать фразу HAVING 

 (2) фраза WHERE должна следовать после фразы GROUP_BY 

 (3) функции AVG не существует 

 (4) во фразе SELECT не может быть столбцов, которых нет во фразе GROUP BY (не принимая во внимания те столбцы, которые передаются в качестве аргументов в групповые функции) 


Номер 3
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name (char), Head_stud_id, Math_scope (float, NOT NULL), Lang_scope (float), Group_id (int)
Запрос предназначен для получения среднего балла по Математике у студентов 10 группы. Расчет должен учитывать всех студентов заданной учебной группы.
SELECT _______________
FROM Students
_______________________

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


Ответ:

 (1) первый фрагмент: AVG (Math_scope) второй фрагмент: HAVING Group_id = 10 GROUP BY Group_id 

 (2) первый фрагмент: SUM (Math_scope) второй фрагмент: WHERE Group_id = 10 GROUP BY Group_id 

 (3) первый фрагмент: AVG (Math_scope) второй фрагмент: WHERE Group_id = 10 

 (4) первый фрагмент: SUM (Math_scope) второй фрагмент: GROUP BY Group_id HAVING Group_id = 10 

 (5) первый фрагмент: AVG (Math_scope) второй фрагмент: GROUP BY Group_id HAVING Group_id = 10 


Номер 4
Отношение Worker имеет схему:
				files
				Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)
				

Запрос предназначен для отображения информации о среднем окладе (Salary) в отделе №10 среди сотрудников, которые подчиняются менеджеру с номером 17:

SELECT Branch_id, AVG (ALL Salary) FROM Worker GROUP BY Branch_id HAVING Branch_id =10 AND Manager_id = 17

При попытке выполнить запрос сервер БД генерирует сообщение об ошибке. Укажите правильную причину возникновения ошибки при условии, что столбец Salary имеет тип данных float.


Ответ:

 (1) в групповой функции AVG используется недопустимый модификатор ALL 

 (2) во фразе HAVING не может быть составных условий  

 (3) во фразе HAVING присутствует столбец, по которому не осуществляется группировка и который не передается в качестве аргумента в групповую функцию  

 (4) неправильное размещение фразы HAVING  


Номер 5
Отношение Worker имеет следующую схему:
				Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)
				

Запрос SQL имеет вид:

SELECT Branch_id, AVG (ALL Commission_pct*Salary + Salary) FROM Worker WHERE AVG (ALL Commission_pct*Salary + Salary) < 500 GROUP BY Branch_id

При попытке выполнить запрос, сервер БД генерирует ошибку. Укажите правильную причину ошибки:


Ответ:

 (1) в функции AVG используется недопустимый модификатор ALL  

 (2) функции AVG не существует  

 (3) запрос, включающий групповые функции, не может включать фразу WHERE  

 (4) во фразе WHERE не могут использоваться групповые функции (если не принимать во внимание подзапросы)  

 (5) фраза WHERE должна следовать после фразы GROUP_BY 


Номер 6
Отношение Worker имеет схему:
				files
				Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)
				

Запрос предназначен для получения общего дохода (Salary + Salary*Commission_pct) сотрудников по отделам 10 и 20 (Branch_id). Расчет должен учитывать всех сотрудников указанных отделов.:

SELECT _______________ FROM Worker _______________________

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


Ответ:

 (1) первый фрагмент: COUNT (Salary*Commission_pct+Salary) второй фрагмент: WHERE Branch_id IN (10,20) GROUP BY Branch_id 

 (2) первый фрагмент: SUM (Salary*Commission_pct+Salary) второй фрагмент: WHERE Branch_id = 10 OR Branch_id=20 GROUP BY Branch_id  

 (3) первый фрагмент: SUM (Salary*Commission_pct+Salary) второй фрагмент: HAVING Branch_id IN (10,20) GROUP BY Branch_id  

 (4) первый фрагмент: SUM (Salary*Commission_pct+Salary) второй фрагмент: GROUP BY Branch_id HAVING Branch_id IN (10,20)  


Упражнение 23:
Номер 1
Отношение Students состоит из следующих кортежей:files
				 								 						
Student_idStudent_nameHead_stud_idMath_scopeSalaryGroup_id
11Lincoln154.9110010
12Li284.2NULL20
13Alan244.7130020

Запрос имеет следующий вид:

SELECT MAX(Math_scope) report FROM Students WHERE Math_scope > 4.5 GROUP BY Group_id HAVING Group_id=20 Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
report
4.7
 

 (2)
report
4.9
 

 (3) сервер БД сгенерирует ошибку 

 (4)
report
4.7
4.9
 


Номер 2
Отношение Students состоит из следующих кортежей:files
				 								 						
Student_idStudent_nameHead_stud_idMath_scopeSalaryGroup_id
11Lincoln154.9110010
12Li284.2120020
13Alan244.7130020
14Tom244.6160020

Запрос имеет следующий вид

SELECT MAX(Salary) report FROM Students GROUP BY Group_id, Head_stud_id

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
report
1100
1200
1600
 

 (2) сервер БД сгенерирует ошибку  

 (3)
report
1100
1600
 

 (4)
report
NULL
 

 (5)
report
1100
1200
1300
1600
 


Номер 3
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name (char), Head_stud_id, Math_scope (float), Lang_scope (float), Group_id (int)

Запрос имеет следующий вид:

SELECT Group_id, AVG (Math_scope) FROM Students WHERE AVG(Math_scope) > 14.5 GROUP BY Group_id

При попытке выполнить запрос сервер БД генерирует ошибку. Укажите правильную причину возникновения ошибки:


Ответ:

 (1) в качестве аргумента групповой функции не может передаваться выражение (столбец), принимающее для некоторых строк исходного отношения значение NULL 

 (2) во фразе WHERE не могут использоваться групповые функции (если не принимать во внимание подзапросы) 

 (3) Во фразе SELECT не допускается использование столбцов и выражений, если там присутствуют групповые функции 

 (4) вместо GROUP BY следовало использовать ключевое слово GROUP 


Номер 4
Отношение Worker состоит из следующих кортежей:
				files
								
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1710000.52020.05.98
12Alex17900NULL2021.06.98
13JamesNULL900NULL10NULL

Запрос имеет следующий вид:

SELECT MIN(Salary) report FROM Worker WHERE Commission_pct >= 1 GROUP BY Branch_id

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1) строки не выбраны 

 (2)
report
1000
 

 (3) сервер БД сгенерирует ошибку  

 (4)
report
1000
9000
 


Номер 5
Отношение Worker состоит из следующих кортежей:
				files
				 				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1516000.81020.05.98
12Alex17900NULL1021.06.98
13Peter1718000.620NULL
14Abel1718000.920NULL

Запрос имеет следующий вид

SELECT COUNT (Commission_pct) report FROM Worker GROUP BY Branch_id, Salary

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
report
1
1
2
 

 (2)
report
1
0
2
 

 (3) сервер БД сгенерирует ошибку 

 (4)
report
NULL
 

 (5)
report
1
1
1
1
 


Номер 6
Отношение Worker имеет схему:
				files
				Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp)
				

Запрос имеет следующий вид:

SELECT Branch_id, Manager_id, AVG(Salary + Salary*Commission_pct) FROM Worker GROUP BY Branch_id, Position

При попытке выполнить запрос сервер БД генерирует ошибку. Укажите правильную причину возникновения ошибки.


Ответ:

 (1) во фразе SELECT присутствует выражение, которого нет во фразе GROUP BY 

 (2) во фразу SELECT следует добавить столбец Position 

 (3) аргументом групповой функции не может быть арифметическое выражение 

 (4) группировка не может производиться сразу по двум столбцам 

 (5) вместо словосочетания GROUP BY следует использовать ключевое слово GROUP 


Упражнение 24:
Номер 1
Отношение Students имеет схему: files
Students: Student_id (int, PK), Student_name (char), Head_stud_id, Math_scope (float), Lang_scope (float), Group_id (int)

Запрос предназначен для подсчета числа студентов в каждой учебной группе, которые оценены по всем дисциплинам (В столбцах Math_scope и Lang_scope присутствуют некоторые значения).

SELECT Group_id, COUNT(Student_id) FROM Students ___________ ___________

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


Ответ:

 (1) первый фрагмент: HAVING Lang_scope IS NOT NULL AND Math_scope второй фрагмент: GROUP BY Group_id 

 (2) первый фрагмент: WHERE Lang_scope IS NOT NULL AND Math_scope IS NOT NULL второй фрагмент: GROUP BY Group_id  

 (3) первый фрагмент: GROUP BY Group_id второй фрагмент: HAVING Lang_scope IS NOT NULL AND Math_scope IS NOT NULL  

 (4) первый фрагмент: WHERE Lang_scope IS NOT NULL AND Math_scope IS NOT NULL второй фрагмент: GROUP Group_id  


Номер 2
Отношение Specialties состоит из следующих кортежей:files
				 						
Specialty_idSpecialty_titleSpecialty_rating
11.01.15Accounting9.8
12.03.14Engineering6.2

Запрос предназначен для определения среднего рейтинга в каждой группе специальностей (математической, экономической, юридической и т.д.). Каждая группа специальностей характеризуется двумя первыми цифрами в столбце Specialty_id.

SELECT ___________ FROM Specialties GROUP BY ____________

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


Ответ:

 (1) первый фрагмент: AVERAGE(Specialty_rating) второй фрагмент: substring(Specialty_id,1,2)  

 (2) первый фрагмент: LEFT (Specialty_id, 2), AVG (Specialty_rating) второй фрагмент: LEFT (Specialty_id, 2)  

 (3) первый фрагмент: Specialty_id, AVG(Specialty_rating) второй фрагмент: Specialty_id  

 (4) первый фрагмент: Specialty_id, AVT(Specialty_rating) второй фрагмент: LEFT (Specialty_id, 2)  


Номер 3
Отношение Students состоит из следующих кортежей:files
			 								 						
Student_idStudent_nameHead_stud_idMath_scopeSalaryGroup_id
11Lincoln15315.010
12Glint284.5NULL10
13Foltrig284.5NULL10

Запрос имеет следующий вид:

SELECT AVG(DISTINCT Math_scope) AS report FROM Students GROUP BY Group_id

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
report
4
 

 (2) сервер БД сгенерирует ошибку 

 (3)
report
3.75
 

 (4)
report
4.5
 

 (5)
report
3
 


Номер 4
Отношение Worker имеет схему:
				files
				Worker: Worker_id (int, PK), Worker_name (varchar), Position (varchar), Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)
				

Запрос предназначен для получения распределения по должностям в отделах 10 и 30 (сколько сотрудников занимает каждую должность). Упорядочивание строк и столбцов значения не имеет.

SELECT Branch_id, Position, COUNT(Worker_id) FROM Worker ___________ ___________

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


Ответ:

 (1) первый фрагмент: WHERE Branch_id=10 OR Branch_id=30 второй фрагмент: GROUP BY Branch_id, Position 

 (2) первый фрагмент: GROUP BY Branch_id, Position второй фрагмент: HAVING Branch_id IN (10,30) 

 (3) первый фрагмент: WHERE Branch_id=10 OR Branch_id=30 второй фрагмент: GROUP BY Branch_id 

 (4) первый фрагмент: WHERE Branch_id=10 OR Branch_id=30 второй фрагмент: GROUP BY Position, Branch_id 


Номер 5
Отношение Worker имеет схему
				files
				Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)
				

Запрос предназначен для определения суммы премий (Salary*Commission_pct)по отделам. Итоговый отчет должен быть отсортирован в порядке убывания премий.

SELECT ___________ FROM Worker ___________________

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


Ответ:

 (1) первый фрагмент: COUNT(Salary*Commission_pct) второй фрагмент: GROUP Branch_id ORDER BY COUNT(Salary*Commission_pct) DESC 

 (2) первый фрагмент: SUM(Salary*Commission_pct) второй фрагмент: GROUP BY Branch_id ORDER BY SUM(Salary*Commission_pct)  

 (3) первый фрагмент: SUM (Salary*Commission_pct) variance второй фрагмент: GROUP BY Branch_id ORDER BY variance DESC 

 (4) первый фрагмент: SUM (Salary*Commission_pct) variance второй фрагмент: GROUP BY Branch_id ORDER BY SUM(Salary*Commission_pct) DESC 


Номер 6
Отношение Worker состоит из следующих кортежей: 
				files
				 				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom_Jayson155000.41020.05.98
12Alex_Tayler171100NULL2021.06.98
13Alex_Garnet171100NULL1021.06.98

Запрос имеет следующий вид:

SELECT AVG (ALL Salary) AS report FROM Worker GROUP BY Branch_id HAVING COUNT(Worker_id) = 2

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
report
800
 

 (2) сервер БД сгенерирует ошибку  

 (3)
report
900
 

 (4)
report
1100
 


Упражнение 25:
Номер 1
Какие из перечисленных операций реляционной алгебры могут лежать в основе соединения строк из нескольких таблиц
				

Ответ:

 (1) эквисоединение  

 (2) проекция  

 (3) декартово произведение  

 (4) внешнее соединение  


Номер 2

Внешнее соединение:


Ответ:

 (1) это соединение строк из нескольких отношений, при котором используется отличная от равенства операция сравнения  

 (2) возвращает все строки хотя бы одной таблицы, участвующей в соединении  

 (3) может быть только левым или правым  

 (4) обеспечивается применением операторов: LEFT (RIGHT, FULL) OUTER JOIN  


Номер 3

Эквисоединение:


Ответ:

 (1) это соединение строк из нескольких отношений, обладающих одинаковой структурой (схемой)  

 (2) соединение строк из нескольких таблиц, основанное на совпадении всех пар значений в одноименных столбцах исходных отношений  

 (3) соединение строк из нескольких таблиц, основанное на совпадении значений в заданных столбцах исходных отношений  

 (4) может выполняться только на основе ключевых полей исходных отношений  

 (5) соединяет и добавляет в выборку строки, которые в соответствующих полях (по которым ведется соединение) исходных таблиц содержат значение NULL  


Номер 4

Не-эквисоединение:


Ответ:

 (1) может применяться ТОЛЬКО в том случае, если в связываемых отношениях отсутствуют пары одинаковых по наименованиям и типам столбцов  

 (2) есть выборка строк (на основе заданных условий) из декартового произведения исходных отношений  

 (3) это объединение нескольких отношений, обладающих разной структурой (схемой)  

 (4) может выполняться только на основе ключевых полей исходных отношений  

 (5) соединение строк из нескольких таблиц, основанное на сравнении значений в заданных столбцах исходных отношений, где в качестве операции сравнения не используется "="  


Номер 5

Декартово произведение:


Ответ:

 (1) это операция реляционной алгебры, которая лежит в основе любого соединения  

 (2) это операция, обеспечивающая соединение строк из исходных отношений на основе совпадения значений в одноименных столбцах  

 (3) получается, если в запросе на выборку данных в секции FROM перечисляется несколько таблиц и при этом отсутствует условие WHERE  

 (4) обеспечивается применением оператора CROSS JOIN  


Номер 6
Какие из перечисленных операций реляционной алгебры могут лежать в основе соединения строк из нескольких таблиц
				

Ответ:

 (1) не-эквисоединение  

 (2) декартово произведение  

 (3) внешнее соединение  

 (4) проекция  

 (5) объединение  


Упражнение 26:
Номер 1
Отношение Students имеет схему: files
Students: Student_id (int, PK), Student_name, Head_stud_id, Math_scope, Group_id (int, FK)

Отношение Groups имеет схему:

Groups: Group_id (int PK), Grade_level (int), Specialty_id, Head_stud_id

Запрос, предназначенный для отображения всех студентов второго курса (Groups.Grade_level), имеет вид:

SELECT Students.Student_name FROM Students s, Groups g WHERE s.Group_id = g.Group_id AND g.Grade_level =2

При попытке выполнить запрос сервер БД генерирует сообщение об ошибке. Укажите правильную причину возникновения ошибки:


Ответ:

 (1) таблицы не могут обладать псевдонимами  

 (2) некорректное условие соединения строк из таблиц Students и Groups  

 (3) во фразе SELECT некорректный префикс в названии столбца Student_name, вместо полного названия таблицы следовало использовать псевдоним  

 (4) во фразе WHERE некорректный синтаксис в префиксах названий столбцов, вместо псевдонимов таблиц следовало использовать полные названия таблиц 


Номер 2
Отношение Students имеет схему: files
Students: Student_id (int, PK), Student_name, Head_stud_id, Math_scope, Group_id (int, FK)

Отношение Groups имеет схему:

Groups: Group_id (int PK), Grade_level (int), Specialty_id, Head_stud_id

Запрос, предназначенный для отображения всех студентов с указанием их года обучения, имеет вид:

SELECT Students.Student_name, Grade_level FROM Students JOIN Groups USING Students.Group_id = Groups.Group_id

При попытке выполнить запрос сервер БД генерирует сообщение об ошибке. Укажите правильную причину возникновения ошибки:


Ответ:

 (1) во фразе SELECT пропущен префикс в названии столбца Grade_level  

 (2) оператор JOIN не может использоваться для организации эквисоединений  

 (3) при организации эквисоединений оператор JOIN должен использоваться вместо оператора FROM  

 (4) вместо ключевого слова USING следует использовать ключевое слово ON  


Номер 3
Отношение Students имеет схему: files
Students: Student_id (int, PK), Student_name, Tel_nom (bigint), Math_scope, Group_id (int, FK)

Отношение Groups имеет схему:

Groups: Group_id (int PK), Grade_level (int), Specialty_id, Head_stud_id, Tel_nom (varchar)

Запрос SQL имеет вид:

SELECT Student_name, Students.Tel_nom FROM Students JOIN Groups ON Students.Tel_nom = Groups.Tel_nom

При попытке выполнить запрос сервер БД генерирует сообщение об ошибке. Укажите правильную причину возникновения ошибки:


Ответ:

 (1) оператор JOIN не может использоваться для организации эквисоединений  

 (2) неверный синтаксис оператора JOIN (ключевого слова ON не существует)  

 (3) во фразе SELECT пропущен префикс в названии столбца Student_name  

 (4) столбцы Tel_nom в отношениях Students и Groups обладают разными типами, неявное преобразование которых оказалось невозможным  


Номер 4
Отношение Worker имеет схему:
				files
				Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)

Отношение Branch имеет схему:

Branch: Branch_id (int PK), Branch_title, Location_id Запрос SQL имеет вид: SELECT Worker.Worker_name, Branch_title FROM Worker w JOIN Branch b ON Worker.Branch_id = Branch.Branch_id

При попытке выполнить запрос сервер БД генерирует сообщение об ошибке. Укажите правильную причину возникновения ошибки:


Ответ:

 (1) во фразе SELECT пропущен префикс в названии столбца Branch_title  

 (2) во фразе SELECT и во фразе ON вместо полных названий таблиц в префиксах названий столбцов следовало использовать псевдонимы таблиц, заданные во фразах FROM и JOIN  

 (3) вместо ключевого слова ON следовало использовать ключевое слово USING  

 (4) во фразе JOIN не допускается использование псевдонимов  


Номер 5
Отношение Worker имеет схему:
				files
		Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)

Отношение Branch имеет схему:

Branch: Branch_id (int PK), Branch_title (varchar), Location_id (int)

Отношение Location имеет схему:

Location: Location_id (int, PK), Country_name (varchar), City_name (varchar), Street (varchar), Building (int)

Запрос SQL имеет вид:

SELECT w.Worker_name, Branch_title, City_name FROM Worker w JOIN Branch b USING w.Branch_id = b.Branch_id JOIN Location l USING b.Location_id = l.Location_id

При попытке выполнить запрос сервер БД генерирует сообщение об ошибке.

Укажите правильную причину возникновения ошибки:


Ответ:

 (1) вместо ключевого слова USING следует использовать ключевое слово ON  

 (2) некорректное использование псевдонимов столбцов  

 (3) в запросе SQL не допускается присутствие нескольких фраз JOIN  

 (4) названия некоторых столбцов во фразе SELECT указаны без префиксов  

 (5) атрибут Location_id в отношении Branch не является внешним ключом, ссылающимся на одноименный атрибут в отношении Location, поэтому не может использоваться для соединения строк из указанных таблиц  


Номер 6
Отношение Worker имеет схему: 
				files
				Worker: Worker_id (int, PK), Worker_name, Position, Salary, Commission_pct, Branch_id (int, FK)

Отношение Branch имеет схему:

Branch: Branch_id (int PK), Branch_title, Location_id

Запрос SQL имеет вид:

SELECT Worker_name, Branch_title, Branch_id FROM Worker, Branch WHERE Worker.Branch_id = Branch.Branch_id

При попытке выполнить запрос сервер БД генерирует сообщение об ошибке.

Укажите правильную причину возникновения ошибки:


Ответ:

 (1) при выборке данных из нескольких таблиц, названию любого столбца во фразе SELECT должен предшествовать префикс, включающий название таблицы 

 (2) некорректный синтаксис условия соединения, для соединения строк из нескольких таблиц может применяться только оператор JOIN в сочетании с оператором ON  

 (3) некорректный синтаксис условия соединения, для соединения строк из нескольких таблиц может применяться только оператор JOIN в сочетании с оператором USING  

 (4) во фразе SELECT названию столбца Branch_id должен предшествовать префикс, указывающий на конкретное отношение, поскольку столбец с названием Branch_id присутствует в обеих таблицах, по которым образуется соединение  


Упражнение 27:
Номер 1
Отношение Students имеет схему: files
Students: Student_id (int, PK), Student_name, Head_stud_id, Math_scope, Group_id (int)

Отношение Groups имеет схему:

Groups: Group_id (int PK), Grade_level (int), Specialty_id, Head_stud_id

Запрос SQL предназначен для отображения информации об учебных группах. Отчет должен включать номера учебных групп и имена студентов, обучающихся в этих группах, в отчете также должны быть представлены учебные группы, к которым еще не приписаны никакие студенты (новые учебные группы).

SELECT g.Group_id, s.Student_name FROM _________________________ ORDER BY g. Group_id

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


Ответ:

 (1) Groups, Students WHERE Students.Group_id = Groups.Group_id  

 (2) Groups g, Students s WHERE Students.Group_id = Groups.Group_id  

 (3) Groups g LEFT OUTER JOIN Students s WHERE Students.Group_id = Groups.Group_id  

 (4) Groups g LEFT OUTER JOIN Students s ON s.Group_id = g.Group_id  

 (5) Groups g JOIN Students s USING Students.Group_id = Groups.Group_id  


Номер 2
Отношение Specialties имеет схему: files
Specialties: Specialty_id (int, PK), Specialty_title, Specialty_rating

Отношение Groups имеет схему:

Groups: Group_id (int PK), Grade_level (int), Specialty_id (int FK), Head_stud_id

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

SELECT g.Group_id, Specialties.Specialty_id FROM _________________________

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


Ответ:

 (1) Groups g, Specialties WHERE Groups.Group_id = Specialties.Group_id  

 (2) Groups g LEFT OUTER JOIN Specialties s ON g.Group_id = s.Group_id  

 (3) Groups g FULL OUTER JOIN Specialties ON g.Group_id = Specialties.Group_id  

 (4) Groups g JOIN Specialties USING Specialties.Group_id = Groups.Group_id  

 (5) Groups g FULL OUTER JOIN Specialties s ON Groups.Group_id = Specialties.Group_id  


Номер 3
Отношение Specialties имеет схему: 
Specialties: Specialty_id (int, PK), Specialty_name(UNIQUE), Specialty_rating

Отношение Skills имеет схему:

Skills: Skill_id (int PK), Skill_title

Отношение Specialty_skill имеет схему:

Specialty_skill: Specialty_id (int PK FK), Skill_id (int PK FK)

Запрос SQL предназначен для отображения наименований специальностей с общим числом соответствующих им навыков (Skill_id) не менее 5.

SELECT Specialty_name, COUNT(Skills.Skill_id) FROM Specialties JOIN Specialty_skill __ Specialties.Specialty_id = Specialty_skill.Specialty_id JOIN Skills __ Skills.Skill_id = Specialty_skill.Skill_id ___________________________________

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


Ответ:

 (1) первый и второй фрагмент: ON третий фрагмент: GROUP BY Specialty_name HAVING COUNT(Skills.Skill_id) >= 5  

 (2) первый и второй фрагмент: ON третий фрагмент: GROUP BY Specialty_id HAVING COUNT (Skills.Skill_id) >= 5  

 (3) первый и второй фрагмент: USING третий фрагмент: GROUP BY Specialty_name WHERE COUNT(Skills.Skill_id) >= 5  

 (4) первый и второй фрагмент: USING третий фрагмент: GROUP BY Specialty_name HAVING COUNT(Skills.Skill_id) >= 5  


Номер 4
Отношение Worker имеет схему:
				files
				Worker: Worker_id (int, PK), Worker_name (varchar NOT NULL UNIQUE), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)

Отношение Skills имеет схему:

Skills: Skill_id (int PK), Skill_title

Отношение Worker_skill имеет схему:

Worker_skill: Worker_id (int PK FK), Skill_id (int PK FK)

Запрос SQL предназначен для отображения имен сотрудников с общим числом соответствующих им навыков (Skill_id ). В отчет должны попасть сотрудники, обладающие не менее 3 навыками.

SELECT Worker_name FROM Worker JOIN Worker_skill __ Worker.Worker_id = Worker_skill.Worker_id JOIN Skills __ Skills.Skill_id = Worker_skill.Skill_id ___________________________________

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


Ответ:

 (1) первый и второй фрагмент: USING третий фрагмент: AND COUNT(Skills.Skill_id) >= 3  

 (2) первый и второй фрагмент: ON третий фрагмент: GROUP BY Worker_name HAVING COUNT(Skills.Skill_id) >= 3  

 (3) первый и второй фрагмент: USING третий фрагмент: GROUP BY Worker_name WHERE COUNT(Skills.Skill_id) >= 3  

 (4) первый и второй фрагмент: ON третий фрагмент: GROUP BY Worker_id HAVING COUNT(Skills.Skill_id) >= 3  


Номер 5
Отношение Worker имеет схему:
				files
				Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)

Отношение Branch имеет схему:

Branch: Branch_id (int PK), Branch_title (varchar), Location_id (int)

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

SELECT w.Worker_name, Branch.Branch_id FROM _________________________

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


Ответ:

 (1) Worker w LEFT OUTER JOIN Branch b ON w.Branch_id = Branch.Branch_id  

 (2) Worker w, Branch WHERE w.Branch_id = Branch.Branch_id  

 (3) Worker w JOIN Branch USING w.Branch_id = Branch.Branch_id  

 (4) Worker w RIGHT OUTER JOIN Branch b ON w.Branch_id = Branch.Branch_id  

 (5) Worker w FULL OUTER JOIN Branch ON w.Branch_id = Branch.Branch_id  


Номер 6
Отношение Worker имеет схему:
files
Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)

Отношение Branch имеет схему:

Branch: Branch_id (int PK), Branch_title, Location_id

Запрос SQL предназначен для отображения информации об отделах компании. Отчет должен включать номера отделов и имена сотрудников, работающих в этих отделах, в отчете также должны быть представлены отделы, к которым еще не приписаны никакие сотрудники (новые отделы).

SELECT b.Branch_id, w.Worker_name FROM _________________________ ORDER BY b.Branch_id

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


Ответ:

 (1) Branch, Worker WHERE Worker.Branch_id = Branch.Branch_id  

 (2) Branch b LEFT OUTER JOIN Worker w ON w.Branch_id = b.Branch_id  

 (3) Branch b, Worker w WHERE Worker.Branch_id = Branch.Branch_id  

 (4) Branch b LEFT OUTER JOIN Worker w WHERE Worker.Branch_id = b.Branch_id  

 (5) Branch b JOIN Worker w USING w.Branch_id = b.Branch_id  


Упражнение 28:
Номер 1
Отношение Specialties имеет схему: files
Specialties: Specialty_id (int, PK), Specialty_title, Specialty_rating

Отношение Skills имеет схему:

Skills: Skill_id (int PK), Skill_title

Отношение Specialty_skill имеет схему:

Specialty_skill: Specialty_id (int PK FK), Skill_id (int PK FK)

Запрос SQL предназначен для отображения номеров специальностей, одним из навыков которых является "programming".

SELECT sp.Specialty_id, sk.Skill_title FROM Specialties sp JOIN Specilaty_skill ____sp.Spesialty_id = Specialty_skill.Specialty_id JOIN Skills sk ____ sk.Skill_id = Specialty_skill.Skill_id ____ sk.Skill_title = ‘programming’

Какие ключевые слова следует вставить вместо знаков подчеркивания, чтобы обеспечить корректное выполнение запроса и получение требуемого результата?


Ответ:

 (1) первый фрагмент: USING; второй фрагмент: USING; третий фрагмент: WHERE  

 (2) первый фрагмент: ON; второй фрагмент: ON; третий фрагмент: WHERE  

 (3) первый фрагмент: ON; второй фрагмент: ON; третий фрагмент: AND  

 (4) первый фрагмент: ON; второй фрагмент: ON; третий фрагмент: ON  


Номер 2
Отношение Groups имеет схему:files
Groups: Group_id (int PK), Grade_level (int), Specialty_id (int FK), Head_stud_id

Отношение Students имеет схему:

Students: Student_id (int, PK), Student_name (NOT NULL), Head_stud_id, Math_scope, Group_id (int, FK)

Запрос SQL предназначен для отображения номеров учебных групп и числа студентов, обучающихся в каждой группе. Если в группе нет ни одного студента, в отчете напротив названия этой группы, должно находиться значение 0.

SELECT g.Group_id, COUNT(_________) FROM Students s _________ s.Group_id = g.Group_id GROUP BY ______________

Какие фрагменты кода следует вставить вместо знаков подчеркивания, чтобы обеспечить корректное выполнение запроса и получение требуемого результата.


Ответ:

 (1) первый фрагмент: Student_name второй фрагмент: RIGHT OUTER JOIN Groups g ON третий фрагмент: g.Group_id  

 (2) первый фрагмент: Student_id второй фрагмент: RIGHT OUTER JOIN Groups g ON третий фрагмент: s.Group_id  

 (3) первый фрагмент: Student_id второй фрагмент: RIGHT OUTER JOIN Groups USING третий фрагмент: g.Group_id  

 (4) первый фрагмент: Student_id второй фрагмент: RIGHT OUTER JOIN Groups g ON третий фрагмент: g.Group_id  


Номер 3
Отношение Student_grade имеет схему:files
Student_grade: Grade_id (int PK), Lowest_avg_scope (float), Highest_avg_scope (float)

Отношение Students имеет схему:

Students: Student_id (int, PK), Student_name, Head_stud_id, Math_scope (float NOT NULL), Lang_scope (float NOT NULL), Group_id (int, FK)

Запрос SQL предназначен для отображения имен студентов, учебный рейтинг которых (Grade_id) более 3.

SELECT Student_name FROM Students s ____________________________________________

Какие фрагменты кода можно вставить вместо знаков подчеркивания, чтобы обеспечить корректное выполнение запроса и получение требуемого результата.


Ответ:

 (1) ,Student_grade g WHERE s.Math_scope + s.Lang_scope BETWEEN g.Lowest_avg_scope AND g.Highest_avg_scope AND g.Grade_id > 3  

 (2) JOIN Student_grade g ON s.Math_scope + s.Lang_scope BETWEEN g.Lowest_avg_scope AND g.Highest_avg_scope WHERE g.Grade_id > 3  

 (3) JOIN Student_grade g ON s.Math_scope + s.Lang_scope BETWEEN g.Lowest_avg_scope AND g.Highest_avg_scope AND g.Grade_id > 3  

 (4) JOIN Student_grade g USING s.Math_scope + s.Lang_scope BETWEEN g.Lowest_avg_scope AND g.Highest_avg_scope AND g.Grade_id > 3  


Номер 4
Отношение Worker_grade имеет схему:
				files
				Worker_grade: Grade_id (int PK), Lowest_sal (float), Highest_sal (float)
				

Отношение Worker имеет схему:

Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)

Запрос SQL предназначен для отображения имен сотрудников, оклад которых относится к категории 4 и выше.

SELECT Worker_name FROM Worker w ____________________________________________

Какие фрагменты кода следует вставить вместо знаков подчеркивания, чтобы обеспечить корректное выполнение запроса и получение требуемого результата.


Ответ:

 (1) JOIN Worker_grade g ON w.Salary BETWEEN g.Lowest_sal AND g.Highest_sal AND g.Grade_id > =4 

 (2) JOIN Worker_grade g USING w.Salary BETWEEN g.Lowest_sal AND g.Highest_sal AND g.Grade_id > =4  

 (3) JOIN Worker_grade g ON Worker.Salary <=g.Highest_sal AND w.Salary>=g.Highest_sal WHERE g.Grade_id >=4 

 (4) , Worker_grade g WHERE Salary BETWEEN Lowest_sal AND Highest_sal AND g.Grade_id >=4  


Номер 5
Отношение Worker имеет схему:
	files
				
Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)
				
				

Отношение Branch имеет схему:

Branch: Branch_id (int PK), Branch_title (varchar), Location_id (int)

Запрос SQL предназначен для отображения номеров отделов компании и числа сотрудников, работающих в каждом отделе. Если в отделе нет ни одного сотрудника, в отчете напротив номера этого отдела должно находиться значение 0.

SELECT b.Branch_id, COUNT(_________) FROM Worker w _________ w.Branch_id = b.Branch_id GROUP BY ______________

Какие фрагменты кода следует вставить вместо знаков подчеркивания, чтобы обеспечить корректное выполнение запроса и получение требуемого результата.


Ответ:

 (1) первый фрагмент: Worker_id; второй фрагмент: LEFT OUTER JOIN Branch b ON третий фрагмент: b.Branch_id 

 (2) первый фрагмент: Worker_id; второй фрагмент: RIGHT OUTER JOIN Branch ON третий фрагмент: w.Branch_id 

 (3) первый фрагмент: Worker_id; второй фрагмент: RIGHT OUTER JOIN Branch b USING третий фрагмент: b.Branch_id 

 (4) первый фрагмент: Worker_id; второй фрагмент: RIGHT OUTER JOIN Branch b ON третий фрагмент: b.Branch_id 


Номер 6
Отношение Worker имеет схему: 
	files
				
Worker: Worker_id (int, PK), Worker_name, Position, Salary, Commission_pct, Branch_id (int, FK)
				
				

Отношение Skills имеет схему:

Skills: Skill_id (int PK), Skill_title

Отношение Worker_skill имеет схему:

Worker_skill: Worker_id (int PK FK), Skill_id (int PK FK)

Запрос SQL предназначен для отображения имен сотрудников и наименований соответствующих им навыков, в итоговый отчет должны попасть только те сотрудники, одним из навыков которых является "management".

SELECT w.Worker_name, sk.Skill_title FROM Worker w JOIN Worker_skill ____w.Worker_id = Worker_skill.Worker_id JOIN Skills sk ____ sk.Skill_id = Worker_skill.Skill_id ____ sk.Skill_title = ‘management’

Какие ключевые слова следует вставить вместо знаков подчеркивания, чтобы обеспечить корректное выполнение запроса и получение требуемого результата.


Ответ:

 (1) первый фрагмент: ON; второй фрагмент: ON; третий фрагмент: WHERE 

 (2) первый фрагмент: USING; второй фрагмент: USING; третий фрагмент: WHERE 

 (3) первый фрагмент: ON; второй фрагмент: ON; третий фрагмент: ON 

 (4) первый фрагмент: ON; второй фрагмент: ON; третий фрагмент: AND 


Упражнение 29:
Номер 1
Отношение Students состоит из следующих кортежей:files
 						
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Tom153.94.310
12Alex284.25.010

Отношение Student_grade состоит из следующих кортежей:

Grade_idLowest_avg_scopeHighest_avg_scope
18.19
29.110

Запрос SQL имеет вид:

SELECT Student_name, Grade_id FROM Students JOIN Student_grade ON Math_scope + Lang_scope BETWEEN Lowest_avg_scope AND Highest_avg_scope AND Grade_id <> 1

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
Student_nameGrade_id
Tom1
Alex2
 

 (2)
Student_nameGrade_id
Tom1
Tom2
Alex1
Alex2
 

 (3)
Student_nameGrade_id
 

 (4)
Student_nameGrade_id
Alex2
 

 (5) сервер сгенерирует ошибку  


Номер 2
Отношение Students состоит из следующих кортежей:files
					
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Tom153.94.310
12Alex284.25.010

Отношение Student_grade состоит из следующих кортежей:

Grade_idLowest_avg_scopeHighest_avg_scope
18.19
29.110

Запрос SQL имеет вид:

SELECT Student_name, Grade_id FROM Students JOIN Student_grade WHERE Math_scope + Lang_scope BETWEEN Lowest_avg_scope AND Highest_avg_scope AND Grade_id <> 1

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
Student_nameGrade_id
Tom1
Alex2
 

 (2)
Student_nameGrade_id
Alex2
 

 (3)
Student_nameGrade_id
Tom1
Tom2
Alex1
Alex2
 

 (4)
Student_nameGrade_id
 

 (5) сервер сгенерирует ошибку 


Номер 3
Отношение Students состоит из следующих кортежей:files
									
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Tom153.94.3NULL
12Alex284.25.010

Отношение Groups состоит из следующих кортежей:

Group_idGrade_levelSpecialty_idHead_stud_id
101120.01010
202120.01017

Запрос SQL имеет вид:

SELECT Student_name, Group_id FROM Students FULL OUTER JOIN Groups ON Students.Group_id = Groups.Group_id

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
Student_nameGrade_id
Alex10
NULL20
 

 (2)
Student_nameGrade_id
Alex10
 

 (3)
Student_nameGrade_id
TomNULL
Alex10
NULL20
 

 (4) сервер сгенерирует ошибку 


Номер 4
Отношение Worker состоит из следующих кортежей: 
				files
				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1710000.5NULL20.05.98
12Alex17900NULL2021.06.98

Отношение Branch состоит из следующих кортежей:

Branch_idBranch_titleLocation_id
10Accounting11
20Research12

Запрос SQL имеет вид:

SELECT Worker_name, Branch.Branch_id FROM Worker FULL OUTER JOIN Branch ON Worker.Branch_id = Branch.Branch_id AND Branch.Branch_id IN (10, 20)

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
Worker_nameBranch_id
Alex20
NULL10
 

 (2)
Worker_nameBranch_id
NULL10
 

 (3)
Worker_nameBranch_id
TomNULL
Alex20
NULL10
 

 (4) сервер сгенерирует ошибку  


Номер 5
Отношение Worker состоит из следующих кортежей: 
				files
				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1510000.81020.05.98
12Alex17900NULL2021.06.98

Отношение Worker_grade состоит из следующих кортежей:

Grade_idLowest_salHighest_sal
1500900
29011500

Запрос SQL имеет вид:

SELECT Worker_name, Grade_id FROM Worker, Worker_grade WHERE Salary BETWEEN Lowest_sal AND Highest_sal AND Grade_id <> 2

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
Worker_nameGrade_id
Tom1
Tom2
Alex1
Alex2
 

 (2)
Worker_nameGrade_id
Tom2
Alex1
 

 (3)
Worker_nameGrade_id
Alex1
 

 (4)
Worker_nameGrade_id
 

 (5) запрос не будет выполнен, т.к. содержит ошибки  


Номер 6
Отношение Worker состоит из следующих кортежей: 
files
				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1710000.5NULL20.05.98
12Alex17900NULL2021.06.98

Отношение Branch состоит из следующих кортежей:

Branch_idBranch_titleLocation_id
10Accounting11
20Research12

Запрос SQL имеет вид:

SELECT Worker_name, Branch_id FROM Worker FULL OUTER JOIN Branch ON Worker.Branch_id = Branch.Branch_id

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
Worker_nameBranch_id
TomNULL
Alex20
NULL10
 

 (2)
Worker_nameBranch_id
Alex20
NULL10
 

 (3) сервер БД сгенерирует ошибку  

 (4)
Worker_nameBranch_id
Alex20
 


Упражнение 30:
Номер 1
Отношение Students состоит из следующих кортежей: files
										 						
Student_idStudent_nameHead_stud_idMath_scopeSalaryGroup_id
11Lincoln152.3110010
12LiNULL4.2NULL20
13Alan154.7130020

Запрос SQL имеет следующий вид:

SELECT s.Student_name AS name FROM Student s, Student hs WHERE s.Head_stud_id = hs.Student_id AND s.Math_scope > hs.Math_scope

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
name
Alan
 

 (2) сервер БД сгенерирует ошибку 

 (3)
name
Li
Alan
 

 (4)
name
Lincoln
Alan
 

 (5) запрос не вернет ни одной строки данных 


Номер 2
Отношение Students состоит из следующих кортежей: files
														 						
Student_idStudent_nameHead_stud_idMath_scopeSalaryGroup_id
11Lincoln122.3110010
12LiNULL4.2NULL20
13Alan154.7130020

Запрос SQL имеет следующий вид:

SELECT hs.Student_name name, COUNT(s.Student_name) report FROM Students s, Students hs WHERE s.Head_stud_id = hs.Student_id GROUP BY hs.Student_name

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
namereport
Li2
 

 (2)
namereport
Li1
 

 (3) сервер БД сгенерирует ошибку 

 (4)
namereport
Li0
 


Номер 3
Отношение Students состоит из следующих кортежей: files
					
Student_idStudent_nameHead_stud_idMath_scopeSalaryGroup_id
11Lincoln164.1110010
15LiNULL4.2NULL20
13NULL154.7130020
16TomNULL4.0

Запрос SQL имеет следующий вид:

SELECT hs.Student_name name, hs.Math_scope scope FROM Students s, Students hs WHERE s.Head_stud_id = hs.Student_id GROUP BY hs.Student_name HAVING AVG (s.Math_scope) > hs.Math_scope

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
namescope
Li4.2
 

 (2)
namescope
No rows selected
 

 (3) сервер БД сгенерирует ошибку 

 (4)
namereport
Li4.2
Li4.0
 


Номер 4
Отношение Worker состоит из следующих кортежей:
				files
 				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom151100NULL1020.05.98
15SamNULL8000.221.06.98
13Alex179000.52023.06.98
17JackNULL15000.523.01.98

Запрос SQL имеет следующий вид:

SELECT w.Worker_name worker, m.Worker_name manager FROM Worker w, Worker m WHERE w.Manager_id = m.Worker_id

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
namescope
No rows selected
 

 (2)
workermanager
TomSam
AlexJack
 

 (3) сервер БД сгенерирует ошибку 

 (4)
workermanager
TomSam
 

 (5)
workermanager
AlexJack
 


Номер 5
Отношение Worker состоит из следующих кортежей:
				files
 						
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
12Tom171000$0.81020.05.98
17AlexNULL900$NULL2021.06.98
16Sam171500$0.220NULL

Запрос SQL имеет следующий вид:

SELECT m.Worker_name name, COUNT(w.Worker_name) report FROM Worker m, Worker w WHERE m.Worker_id = w.Manager_id GROUP BY m.Worker_name

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
namereport
Alex2
 

 (2)
namereport
Alex0
 

 (3)
namereport
Alex1
 

 (4) сервер БД сгенерирует ошибку 


Номер 6
Отношение Worker состоит из следующих кортежей: 
			files
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom155000.41020.05.98
12Alex151200NULL2021.06.98
15James171100NULL2021.06.98

Запрос SQL имеет следующий вид:

SELECT w.Worker_name AS name FROM Worker w, Worker m WHERE w.Manager_id = m.Worker_id AND w.Salary >= m.Salary

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1) сервер БД сгенерирует ошибку 

 (2)
name
Alex
 

 (3)
name
Tom
Alex
 

 (4)
name
Alex
James
 


Упражнение 31:
Номер 1
Подзапрос
				

Ответ:

 (1) содержится во внешнем запросе, всегда начинающемся со слова SELECT 

 (2) всегда начинается со слова SELECT 

 (3) может содержать в себе другой подзапрос 

 (4) представляет собой любое выражение языка SQL, заключенное в круглые скобки 

 (5) может содержаться в операторах DML (язык манипулирования данными) 


Номер 2
Подзапрос

Ответ:

 (1) должен быть заключен в круглые скобки при использовании во внешнем запросе типа SELECT 

 (2) возвращает таблицу, которой всегда должен быть присвоен псевдоним 

 (3) может возвращать единственное значение 

 (4) не может возвращать несколько строк данных 

 (5) всегда выполняется прежде, чем внешний запрос 


Номер 3
Подзапрос

Ответ:

 (1) может использовать только те таблицы, которые упомянуты в предложении FROM данного подзапроса 

 (2) всегда обращается к тем же таблицам, что и внешний запрос 

 (3) никогда не обращается к тем же таблицам, что и внешний запрос 

 (4) может содержать в предложении FROM таблицы, уже использующиеся во внешнем запросе 

 (5) может не содержать предложения FROM 


Номер 4
Какие операторы сравнения могут применяться в условии HAVING, если в качестве правого операнда используется многострочный подзапрос:
				

Ответ:

 (1) <>  

 (2) IN  

 (3) <  

 (4) >=ANY  

 (5) = ANY  


Номер 5
Какие операторы сравнения могут применяться в условии WHERE, если в качестве правого операнда используется подзапрос (однострочный или многострочный):
				

Ответ:

 (1) >  

 (2) =<  

 (3) >=  

 (4) IN LIST  

 (5) = NOT ALL  


Номер 6
В каких фразах предложения SELECT не могут присутствовать подзапросы
				

Ответ:

 (1) ORDER BY  

 (2) HAVING  

 (3) GROUP BY  

 (4) FROM  


Упражнение 32:
Номер 1
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name, Head_stud_id, Math_scope (float NOT NULL), Group_id (int, FK)

Запрос предназначен для отображения имен студентов, которые имеют оценку по Математике (Math_scope) не меньше, чем средний балл по этой дисциплине среди всех студентов:

SELECT Student_name FROM Students WHERE Math_scope________________

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


Ответ:

 (1) >= AVG(Math_scope)  

 (2) >= SELECT AVG(Math_scope) FROM Students  

 (3) >= (SELECT AVG(Math_scope) FROM Students)  

 (4) BETWEEN (SELECT AVG(Math_scope) FROM Students) AND 5.0  


Номер 2
Отношение Specialties имеет схему:files
Specialties: Specialty_id (int, PK), Specialty_title, Specialty_rating 

Запрос предназначен для отображения названий всех специальностей с рейтингом, превышающим рейтинг специальности 201123:

SELECT Specialty_title FROM Specialties WHERE Specialty_rating________________

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


Ответ:

 (1) => ANY(SELECT Specialty_rating FROM Specialties WHERE Specialty_id=201123)  

 (2) > (SELECT Specialty_rating FROM Specialties WHERE Specialty_id=201123)  

 (3) > SELECT Specialty_rating FROM Specialties WHERE Specialty_id=201123  

 (4) IN (SELECT Specialty_rating FROM Specialties WHERE Specialty_id=201123)  


Номер 3
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name, Head_stud_id, Salary (float), Group_id (int, FK) 

Запрос предназначен для отображения имен студентов, имеющих стипендию ниже среднего значения стипендии по всем студентам

SELECT Student_name FROM Students WHERE Salary________________

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


Ответ:

 (1) < ANY(SELECT AVG(Salary) FROM Students)  

 (2) < (SELECT AVG(Salary) FROM Students)  

 (3) < SELECT AVG(Salary) FROM Students  

 (4) < “SELECT AVG(Salary) FROM Students”  


Номер 4
Отношение Worker имеет схему
				files
					
Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)

Запрос предназначен для отображения имен сотрудников, имеющих оклад ниже среднего значения оклада по всем сотрудникам компании

SELECT Worker_name FROM Worker WHERE Salary________________

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


Ответ:

 (1) < (SELECT AVG(Salary) FROM Worker)  

 (2) < SELECT AVG(Salary) FROM Worker  

 (3) < ANY (SELECT AVG(Salary) FROM Worker)  

 (4) < “SELECT AVG(Salary) FROM Worker”  


Номер 5
Отношение Worker имеет схему:
				files
					
Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)

Отношение Worker_grade имеет схему:

Worker_grade: Grade_id (int, PK), Lowest_sal (float), Highest_sal (float)

Запрос предназначен для отображения всех сотрудников, оклад которых попадает в более низкую категорию (Grade_id), чем категория оклада сотрудника John:

SELECT Worker_name FROM Worker, Worker_grade WHERE Worker.Salary BETWEEN Worker_grade.Lowest_sal AND Worker_grade.Highest_sal AND Grade_id ________________

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


Ответ:

 (1) < ANY(SELECT Grade_id FROM Worker, Worker_grade) WHERE Salary BETWEEN Lowest_sal AND Highest_sal AND Worker_name = ‘John’  

 (2) < (SELECT Grade_id FROM Worker, Worker_grade) WHERE Salary BETWEEN Lowest_sal AND Highest_sal AND Worker_name = ‘John’  

 (3) < ALL(SELECT * FROM Worker, Worker_grade) WHERE Salary BETWEEN Lowest_sal AND Highest_sal AND Worker_name = ‘John’  

 (4) < SELECT Grade_id FROM Worker, Worker_grade WHERE Salary BETWEEN Lowest_sal AND Highest_sal AND Worker_name = ‘John’  

 (5) < “SELECT Grade_id FROM Worker, Worker_grade WHERE Salary BETWEEN Lowest_sal AND Highest_sal AND Worker_name = ‘John’ ”  


Номер 6
Отношение Worker имеет схему:
				files
					
Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)

Запрос предназначен для отображения имен сотрудников, которые имеют оклад (Salary), равный минимальному окладу среди всех сотрудников компании:

SELECT Worker_name FROM Worker WHERE Salary ________________

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


Ответ:

 (1) <= ALL(SELECT Salary FROM Worker)  

 (2) = MIN (Salary)  

 (3) = SELECT MIN(Salary) FROM Worker  

 (4) = (SELECT MIN(Salary) FROM Worker)  


Упражнение 33:
Номер 1
Отношение Students состоит из следующих кортежей:files
				 								 						
Student_idStudent_nameHead_stud_idMath_scopeSalaryGroup_id
11Lincoln152.3010
15LiNULL4.2110020
13Alan154.7130020
Запрос SQL имеет следующий вид: SELECT Student_name FROM Students WHERE Salary <= (SELECT MIN(Salary) FROM Students GROUP BY Group_id HAVING Group_id = 20)

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
name
Lincoln
 

 (2) сервер БД сгенерирует ошибку  

 (3)
name
Lincoln
Li
 

 (4)
name
Lincoln
Li
Alan
 


Номер 2
Отношение Students состоит из следующих кортежей:files
								 				
Student_idStudent_nameHead_stud_idMath_scopeSalaryGroup_id
11Lincoln152.3NULL10
15LiNULL4.2110020
13Alan154.7130020

Запрос SQL имеет следующий вид:

SELECT r.n1 name1, r.n2 name2 FROM (SELECT hs.Student_name n1, s.Student_name n2 FROM Students s, Students hs WHERE s.Head_stud_id = hs.Student_id) r WHERE LEFT(r.n1, 1) = LEFT(r.n2, 1)

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
name1name2
LincolnLi
 

 (2)
name1name2
LiLincoln
LiAlan
 

 (3) сервер БД сгенерирует ошибку  

 (4)
name1name2
LincolnLi
AlanLi
 

 (5)
name1name2
LiLincoln
 


Номер 3
Отношение Students состоит из следующих кортежей:files
									 				
Student_idStudent_nameHead_stud_idMath_scopeSalaryGroup_id
11Lincoln152.3NULL10
15LiNULL4.2110020
13Alan154.7130020

Отношение Groups состоит из следующих кортежей:

Location_idCountry_nameCity_nameStreet
101120.01010
202120.01017

Запрос SQL имеет следующий вид:

SELECT r.n1 name1 FROM (SELECT Student_name n1, Grade_level n2 FROM Students, Groups WHERE Students.Group_id = Groups.Group_id) r WHERE r.n2 >=2

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
name1
Lincoln
Li
Alan
 

 (2)
name1
Lincoln
 

 (3)
name1
Li
Alan
 

 (4) сервер БД сгенерирует ошибку  

 (5) ни одна строка не будет отобрана  


Номер 4
Отношение Worker состоит из следующих кортежей: 
				files
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1710000.51020.05.98
12Alexander17900NULL2021.06.98

Отношение Branch состоит из следующих кортежей:

Branch_idBranch_titleLocation_id
10Accounting11
20Research12

Запрос SQL имеет следующий вид:

SELECT r.n1 name1 FROM (SELECT Worker_name n1, Branch_title n2 FROM Worker, Branch WHERE Worker.Branch_id = Branch.Branch_id) r WHERE len(r.n2) +1 = len(r.n1)

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
name1
Tom
Alexander
 

 (2) сервер БД сгенерирует ошибку 

 (3)
name1
Tom
 

 (4)
name1
Alexander
 

 (5) ни одна строка не будет отобрана 


Номер 5
Отношение Worker состоит из следующих кортежей:
				files
				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1516000.81020.05.98
15AlexNULL900NULL1021.06.98
13Peter1718000.620NULL
17AbelNULL19000.920NULL

Запрос SQL имеет следующий вид:

SELECT r.n1 name1, r.n2 name2 FROM (SELECT m.Worker_name n1, w.Worker_name n2 FROM Worker w, Worker m WHERE w.Manager_id = m.Worker_id) r WHERE RIGHT(r.n1, 1) = RIGHT(r.n2, 1)

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
name1name2
TomAlex
 

 (2)
name1name2
TomAlex
PeterAbel
 

 (3) нет отобранных строк 

 (4)
name1name2
AlexTom
AbelPeter
 

 (5)
name1name2
AlexTom
 


Номер 6
Отношение Worker состоит из следующих кортежей:
				files
				 				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom155000.41020.05.98
12Alex15120002021.06.98
15James17110002021.06.98

Запрос SQL имеет следующий вид:

SELECT Worker_name FROM Worker WHERE Salary*Commission_pct + Salary <= (SELECT MIN(Salary) FROM Worker GROUP BY Branch_id HAVING Branch_id = 20)

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
Worker_name
Tom
 

 (2)
Worker_name
Tom
James
 

 (3)
Worker_name
Tom
Alex
James
 

 (4) сервер БД сгенерирует ошибку 


Упражнение 34:
Номер 1
Отношение Students состоит из следующих кортежей:files
				 								 						
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Tom153.94.310
12Alex284.25.010

Запрос SQL имеет вид:

SELECT Student_name AS “name” FROM Students s WHERE Math_scope > (SELECT Math_scope FROM Students WHERE Student_id IN (11, 12))

При попытке выполнения запроса сервер БД генерирует ошибку. Укажите правильную причину возникновения ошибки:


Ответ:

 (1) псевдоним name должен быть записан без кавычек  

 (2) названиям столбцов во фразе SELECT и WHERE должен предшествовать префикс "s"  

 (3) подзапрос должен записываться без скобок  

 (4) подзапрос возвращает несколько строк, тогда как оператор сравнения > может применяться только для однострочных подзапросов  

 (5) синтаксис SQL не допускает использования многострочных подзапросов  


Номер 2
Отношение Students состоит из следующих кортежей:files
				 								 						
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Tom153.94.310
12Alex284.25.010

Запрос SQL имеет вид:

SELECT Student_name AS “name” FROM Students s WHERE Math_scope > ANY SELECT Math_scope FROM Students WHERE Student_id = 11

При попытке выполнения запроса сервер БД генерирует ошибку. Укажите правильную причину возникновения ошибки:


Ответ:

 (1) для всех названий столбцов в запросе должен использоваться префикс s  

 (2) подзапрос не заключен в кавычки  

 (3) подзапрос не заключен в скобки  

 (4) подзапрос возвращает одну строку, тогда как оператор сравнения > ANY может применяться только для многострочных подзапросов  

 (5) псевдоним name должен быть записан без кавычек  


Номер 3
Отношение Students состоит из следующих кортежей:files
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Tom153.94.310
12Alex284.25.010

Запрос SQL имеет вид:

SELECT Student_name AS “name” FROM Students s WHERE Math_scope > ANY(SELECT * FROM Students WHERE Student_id = 11)

При попытке выполнения запроса сервер БД генерирует ошибку. Укажите правильную причину возникновения ошибки:


Ответ:

 (1) подзапрос должен быть заключен в кавычки  

 (2) подзапрос возвращает одну строку, тогда как оператор сравнения > ANY может применяться только для многострочных подзапросов  

 (3) таблица Students в главном запросе не может иметь псевдоним  

 (4) подзапрос является многостолбцовым, хотя в данном случае он должен возвращать значение только одного столбца  


Номер 4
Отношение Worker состоит из следующих кортежей:
				files
				 				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1710000.51020.05.98
12Alexander17900NULL2021.06.98

Запрос SQL имеет вид

SELECT w.Worker_name AS name FROM Worker w WHERE Salary > ANY(SELECT * FROM Worker WHERE Worker_id =12)

При попытке выполнения запроса сервер БД генерирует ошибку. Укажите правильную причину возникновения ошибки:


Ответ:

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

 (2) подзапрос должен быть заключен в кавычки  

 (3) подзапрос возвращает одну строку, тогда как оператор сравнения > ANY может применяться только для многострочных подзапросов  

 (4) префиксом столбца Worker_name во фразе SELECT главного запроса может быть только полное имя таблицы.  


Номер 5
Отношение Worker состоит из следующих кортежей:
				files
				 				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1510000.81020.05.98
12Alex17900NULL2021.06.98

Запрос SQL имеет вид:

SELECT Worker_name AS “name” FROM Worker w WHERE w.Salary > ALL SELECT Salary FROM Worker WHERE Worker_id = 11

При попытке выполнения запроса сервер БД генерирует ошибку. Укажите правильную причину возникновения ошибки:


Ответ:

 (1) псевдоним name должен быть записан без кавычек.  

 (2) для всех названий столбцов в запросе должен использоваться префикс w  

 (3) подзапрос должен быть заключен в кавычки  

 (4) подзапрос возвращает одну строку, тогда как оператор сравнения > ALL может применяться только для многострочных подзапросов  

 (5) подзапрос должен быть заключен в скобки 


Номер 6
Отношение Worker состоит из следующих кортежей:
				files
				 				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom155000.41020.05.98
12Alex151200NULL2021.06.98
15James171100NULL2021.06.98

Запрос SQL имеет вид:

SELECT Worker_name AS “name” FROM Worker w WHERE Salary > (SELECT Salary FROM Worker WHERE Worker_id NOT IN (14, 15))

При попытке выполнения запроса сервер БД генерирует ошибку. Укажите правильную причину возникновения ошибки:


Ответ:

 (1) названиям столбцов во фразе SELECT и WHERE должен предшествовать префикс "w"  

 (2) псевдоним name должен быть записан без кавычек.  

 (3) подзапрос должен заключаться в двойные кавычки, а не в скобки  

 (4) синтаксис SQL не допускает использования многострочных подзапросов 

 (5) подзапрос возвращает несколько строк, тогда как оператор сравнения > может применяться только для однострочных подзапросов 


Упражнение 35:
Номер 1
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name, Head_stud_id, Salary (float NOT NULL), Group_id (int, FK)

Запрос предназначен для отображения имен студентов, стипендия которых (Salary) превышает стипендию каждого студента, обучающегося в группе 20.

SELECT Student_name FROM Students WHERE Salary __________ (SELECT Salary FROM Students WHERE Group_id = 20)

Укажите оператор сравнения, который при подстановке вместо знака подчеркивания обеспечивает корректное выполнение запроса и получение требуемого результата:


Ответ:

 (1) > 

 (2) > ANY 

 (3) > ALL 

 (4) > IN 


Номер 2
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name, Head_stud_id, Math_scope (float), Group_id (int, FK)

Запрос предназначен для отображения имен студентов, оценка по Математике (Math_scope) которых равна средней оценке по этой дисциплине в одной из учебных групп 10 или 20.

SELECT Student_name FROM Students WHERE Math_scope __________ (SELECT AVG(Math_scope) FROM Students GROUP BY Group_id HAVING Group_id IN (10, 20))

Укажите операторы сравнения, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата:


Ответ:

 (1) = ANY 

 (2) IN LIST 

 (3) = LIST 

 (4) IN 


Номер 3
Отношение Students имеет схему:files
Students: Student_id (int, PK), Student_name, Head_stud_id, Math_scope (float), Group_id (int, FK)

Запрос предназначен для отображения номеров учебных групп численностью более чем группы 15 и 20.

SELECT Group_id FROM Students GROUP BY Group_id HAVING COUNT(Student_id) __________ (SELECT COUNT(Student_id) FROM Students GROUP BY Group_id HAVING Group_id IN (15, 20))

Укажите операторы сравнения, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата:


Ответ:

 (1) > ALL 

 (2) > ANY 

 (3) > LIST 

 (4) > IN 


Номер 4
Отношение Worker имеет схему:
				files
				
Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)
				

Запрос предназначен для отображения номеров отделов компании численностью более численности отделов 10 и 20, и со средним окладом более, чем средний оклад в отделе 30.

SELECT Branch_id FROM Worker GROUP BY Branch_id HAVING COUNT(Worker_id) __________ (SELECT COUNT(Worker_id) FROM Worker GROUP BY Branch_id HAVING Branch_id IN (10, 20)) AND AVG(Salary) __________ (SELECT AVG(Salary) FROM Worker WHERE Branch_id =30)

Укажите операторы сравнения, которые при подстановке вместо знаков подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата:


Ответ:

 (1) первый фрагмент: > ALL, второй фрагмент: > 

 (2) первый фрагмент: >, второй фрагмент: > 

 (3) первый фрагмент: > ANY, второй фрагмент: > 

 (4) первый фрагмент: > ALL, второй фрагмент: > ALL 


Номер 5
Отношение Worker имеет схему:
				files
				Worker: Worker_id (int, PK), Worker_name, Position, Salary, Commission_pct, Branch_id (int, FK)
				

Запрос предназначен для отображения имен сотрудников, оклад которых равен среднему окладу в одном из отделов 10 или 20.

SELECT Worker_name FROM Worker WHERE Salary ____ (SELECT AVG(Salary) FROM Worker GROUP BY Branch_id HAVING Branch_id IN (10, 20))

Выберите варианты кода, которые при подстановке вместо знаков подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата:


Ответ:

 (1) = 

 (2) = IN LIST 

 (3) IN 

 (4) = ANY 

 (5) = ALL 


Номер 6
Отношение Worker имеет схему:
				files
				Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float NOT NULL), Branch_id (int, FK), Hire_date (timestamp)
				

Запрос предназначен для отображения имен сотрудников, премия которых (Salary*Commission_pct) превышает премию хотя бы одного сотрудника, работающего в отделе 10.

SELECT Worker_name FROM Worker WHERE Salary*Commission_pct ______ (SELECT Salary*Commission_pct FROM Worker WHERE Branch_id = 10)

Укажите операторы сравнения, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата:


Ответ:

 (1) > ANY 

 (2) > 

 (3) > IN 

 (4) > IN LIST 


Упражнение 36:
Номер 1
Отношение Student_grade имеет схему:files
Student_grade: Grade_id (int PK), Lowest_avg_scope (float), Highest_avg_scope (float)

Отношение Students имеет схему:

Students: Student_id (int, PK), Student_name, Head_stud_id, Math_scope (float, NOT NULL), Lang_scope (float, NOT NULL), Group_id (int, FK)

Запрос предназначен для отображения имен студентов, рейтинг которых (Grade_id) попадает в первую категорию. Категория рейтинга определяется на основе выражения (Math_scope + Lang_scope)/2

SELECT Student_name FROM Students WHERE ____(SELECT Lowest_avg_scope, Highest_avg_scope FROM Student_grade WHERE_____)

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


Ответ:

 (1) первый фрагмент: (Math_scope + Lang_scope)/2 BETWEEN второй фрагмент: Grade_id = 1 

 (2) первый фрагмент: (Math_scope + Lang_scope)/2 IN второй фрагмент: Grade_id = 1 

 (3) первый фрагмент: EXISTS второй фрагмент: (Math_scope + Lang_scope)/2 BETWEEN Lowest_avg_scope AND Highest_avg_scope AND Grade_id = 1 

 (4) первый фрагмент: PRESENTS второй фрагмент: (Math_scope + Lang_scope)/2 BETWEEN Lowest_avg_scope AND Highest_avg_scope AND Grade_id = 1 


Номер 2
Отношение Specialties имеет схему: files
Specialties: Specialty_id (int, PK), Specialty_title, Specialty_rating

Отношение Skills имеет схему:

Skills: Skill_id (int PK), Skill_title

Отношение Specialty_skill имеет схему:

Specialty_skill: Specialty_id (int PK FK), Skill_id (int PK FK)

Запрос предназначен для отображения названий специальностей, которые предполагают получение обучающимся навыка "system integrator":

SELECT Specialty_title FROM Specialties s WHERE EXISTS (SELECT * FROM Specialty_skill, Skills WHERE Specialties.Specialty_id = Specialty_skill.Specialty_id AND Specialty_skill.Skill_id = Skills.Skill_id AND Skill_title = ‘system integrator’ )

При выполнении данного запроса сервер БД генерирует сообщение об ошибке. Укажите правильную причину возникновения ошибки.


Ответ:

 (1) неверный синтаксис оператора EXISTS 

 (2) в последнем условии подзапроса EXISTS пропущен префикс столбца Skill_title 

 (3) подзапрос EXISTS не может использоваться для соединения строк из нескольких таблиц 

 (4) Префикс "Specialties" в первом условии подзапроса EXISTS должен быть заменен на символ "s" 


Номер 3
Отношение Students состоит из следующих кортежей:files
				 					
Student_idStudent_nameHead_stud_idMath_scopeSalaryGroup_id
11Lincoln152.3NULL10
15LiNULL4.2110020
13Alan154.7130020

Отношение Groups состоит из следующих кортежей:

Group_idGrade_levelSpecialty_idHead_stud_id
101120.01010
202120.01017

Запрос SQL имеет вид

: SELECT Student_name name FROM Students s WHERE NOT EXISTS (SELECT * FROM Groups g WHERE s.Group_id = g.Group_id AND g.Group_id=10)

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
name
Lincoln
 

 (2) сервер БД сгенерирует ошибку 

 (3)
name
Li
Alan
 

 (4) ни одна строка не будет отобрана 

 (5)
name
Lincoln
Li
Alan
 


Номер 4
Отношение Worker_grade имеет схему:
				files
				Worker_grade: Grade_id (int PK), Lowest_sal (float), Highest_sal (float)
				

Отношение Worker имеет схему:

Worker: Worker_id (int, PK), Worker_name (varchar), Position, Manager_id (varchar), Salary (float NOT NULL), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)

Запрос предназначен для отображения имен сотрудников, уровень зарплаты которых (Grade_id) попадает в первую категорию:

SELECT Worker_name FROM Worker w WHERE ______ (SELECT Lowest_sal, Highest_sal FROM Worker_grade WHERE_________)

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


Ответ:

 (1) первый фрагмент: EXISTS второй фрагмент: Worker.Salary BETWEEN Lowest_sal AND Highest_sal AND Grade_id = 1 

 (2) первый фрагмент: Salary BETWEEN второй фрагмент: Grade_id = 1 

 (3) первый фрагмент: Salary IN RANGE второй фрагмент: Grade_id = 1 

 (4) первый фрагмент: EXISTS второй фрагмент: Salary BETWEEN Lowest_sal AND Highest_sal AND Grade_id = 1 


Номер 5
Отношение Worker имеет схему:
				files
				Worker: Worker_id (int, PK), Worker_name, Position, Salary, Commission_pct, Branch_id (int, FK)
				

Отношение Skills имеет схему:

Skills: Skill_id (int PK), Skill_title (varchar)

Отношение Worker_skill имеет схему:

Worker_skill: Worker_id (int PK FK), Skill_id (int PK FK)

Запрос предназначен для отображения имен сотрудников, которые обладают навыком "Java programming":

SELECT Worker_name FROM Worker w JOIN Worker_skill ws ON w.Worker_id = ws.Worker_id WHERE EXISTS (SELECT * FROM Skills WHERE Skill_title = ‘Java programming’)

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


Ответ:

 (1) если запрос содержит оператор JOIN, то следующий далее оператор EXISTS игнорируется 

 (2) для вставки дополнительного условия соединения вместо оператора WHERE следовало использовать оператор AND 

 (3) в подзапросе EXISTS пропущено условие: ws.Skill_id = Skills.Skill_id 

 (4) вместо оператора EXISTS в данном примере следовало использовать оператор PERSISTS 


Номер 6
Отношение Worker состоит из следующих кортежей:
				files
				 				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom155000.41020.05.98
12Alex151200NULL2021.06.98
15James171100NULL2021.06.98

Отношение Branch состоит из следующих кортежей:

Branch_idBranch_titleLocation_id
10Accounting11
20Research12

Запрос SQL имеет вид:

SELECT Worker_name name FROM Worker w WHERE NOT EXISTS (SELECT * FROM Branch b WHERE w.Branch_id = b.Branch_id AND b.Branch_id = 20)

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
name
Tom
 

 (2) сервер БД сгенерирует ошибку 

 (3) ни одна строка не будет отобрана 

 (4)
name
Tom
Alex
James
 

 (5)
name
Alex
James
 


Упражнение 37:
Номер 1

Оператор IN:


Ответ:

 (1) гарантирует истинность условия, если хотя бы одно из возвращаемых подзапросом значений равно значению заданного поля в проверяемой записи 

 (2) эквивалентен = ANY 

 (3) может применяться только для многострочных подзапросов 

 (4) всегда применяется в сочетании с простейшим оператором сравнения (=, <>, >= и т.д.) 

 (5) не используется совместно с многострочными подзапросами 


Номер 2

Оператор ALL:


Ответ:

 (1) всегда применяется в сочетании с простейшим оператором сравнения (=, <>, >= и т.д.) 

 (2) гарантирует истинность условия, если хотя бы одно из возвращаемых подзапросом значений удовлетворяет условию, диктуемому простейшим оператором сравнения, стоящим перед ALL 

 (3) может применяться только для многострочных подзапросов 

 (4) гарантирует истинность условия, только если все значения, возвращаемые подзапросом, удовлетворяют условию, диктуемому простейшим оператором сравнения, стоящим перед ALL 


Номер 3

Оператор ANY:


Ответ:

 (1) может применяться только для многострочных подзапросов 

 (2) всегда применяется в сочетании с простейшим оператором сравнения (=, <>, >=, <=, <,>

 (3) гарантирует истинность условия, если хотя бы одно из возвращаемых подзапросом значений удовлетворяет условию, диктуемому простейшим оператором сравнения, стоящим перед ANY 

 (4) гарантирует истинность условия, только если все значения, возвращаемые подзапросом, удовлетворяют условию, диктуемому простейшим оператором сравнения, стоящим перед ANY 


Номер 4

Оператор (NOT) EXISTS:


Ответ:

 (1) используется для организации подзапросов 

 (2) допускает в подзапросе использование названий столбцов (выражений с использованием названий столбцов), принадлежащих таблице(ам) главного запроса 

 (3) позволяет создавать только многострочные подзапросы 

 (4) позволяет создавать только однострочные подзапросы 


Номер 5
Выберите корректный фрагмент кода при условии, что столбцы a, f1, f2 имеют тип данных INT:

Ответ:

 (1) ... WHERE a = SELECT f1 FROM t ... 

 (2) ... WHERE a = SELECT f1, f2 FROM t ... 

 (3) ... WHERE a = (SELECT f1 FROM t) ... 

 (4) ... WHERE a = (SELECT count(f1) FROM t) ... 

 (5) ... WHERE a = SELECT count(f1), f2 FROM t ... 


Номер 6
Укажите фрагменты, выполняя код которых сервер БД сгенерирует ошибку. (Тип данных столбца а в обеих таблицах совпадает.)

Ответ:

 (1) ... FROM t1 WHERE a = (SELECT a FROM t2) ...  

 (2) ... FROM t1 WHERE a = (SELECT a) ...  

 (3) ... FROM t1 WHERE a IN (SELECT a FROM t2) ...  

 (4) ... FROM t1 WHERE a IN (SELECT a) ...  

 (5) ... FROM t1 WHERE a EXISTS (SELECT a FROM t2) ...  


Упражнение 38:
Номер 1

Оператор UNION:


Ответ:

 (1) является бинарным оператором 

 (2) используется для пересечения двух отношений 

 (3) используется для объединения двух отношений 

 (4) не существует 


Номер 2

Оператор EXCEPT:


Ответ:

 (1) позволяет получить разность отношений 

 (2) может применяться только для отношений с одинаковой структурой 

 (3) используется для объединения двух отношений 

 (4) используется для организации подзапросов 

 (5) не существует 


Номер 3

Оператор ANY:


Ответ:

 (1) может применяться только для многострочных подзапросов 

 (2) всегда применяется в сочетании с простейшим оператором сравнения (=, <>, >=, <=, <, >

 (3) гарантирует истинность условия, если хотя бы одно из возвращаемых подзапросом значений удовлетворяет условию, диктуемому простейшим оператором сравнения, стоящим перед ANY 

 (4) гарантирует истинность условия, только если все значения, возвращаемые подзапросом, удовлетворяют условию, диктуемому простейшим оператором сравнения, стоящим перед ANY 


Номер 4
Какие из перечисленных операторов могут использоваться для организации пересечения отношений:

Ответ:

 (1) INTERSECTION 

 (2) INTERSECT 

 (3) EXCEPT 

 (4) EXCEPTION 

 (5) UNION 


Номер 5

Оператор EXCEPT:


Ответ:

 (1) позволяет получить разность отношений 

 (2) используется для исключения из итоговой выборки строк, не удовлетворяющих заданным условиям 

 (3) является синонимом оператора NOT EXISTS 

 (4) является унарным оператором 

 (5) не существует 


Номер 6

Оператор INTERSECTION:


Ответ:

 (1) позволяет получить пересечение отношений 

 (2) не существует 

 (3) может применяться только для отношений с одинаковой структурой 

 (4) является бинарным 

 (5) используется для соединения строк из нескольких таблиц 


Упражнение 39:
Номер 1
Отношение Students состоит из следующих кортежей:files
				 	
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Tom153.94.310
12Peter284.25.010

Отношение Students1 состоит из следующих кортежей:

Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Tomas134.94.320

Запрос SQL имеет вид:

SELECT len(Student_name) name FROM Students INTERSECT SELECT len(Student_name) name FROM Students1

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
name
5
5
 

 (2) сервер БД сгенерирует ошибку  

 (3)
name
5
 

 (4)
name
Tom
 

 (5)
name
3
 


Номер 2
Отношение Students состоит из следующих кортежей:files
							 	
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Tomas153.94.310
12Alex284.25.010

Отношение Specialties состоит из следующих кортежей:

Specialty_idSpecialty_titleSpecialty_rating
11.01.15Account9.8
12.03.14Sales6.2

Запрос SQL имеет вид:

SELECT Student_name name FROM Students WHERE NOT EXISTS (SELECT * FROM Specilaties WHERE len(Specialty_title)=len(Student_name)) UNION SELECT Specialty_title name FROM Specialties WHERE NOT EXISTS (SELECT * FROM Students WHERE len(Student_name)=len(Specialty_title))

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
name
Tomas
Sales
 

 (2)
name
Alex
Account
 

 (3) сервер БД сгенерирует ошибку  

 (4)
name
Tomas
Alex
Account
Sales
 


Номер 3
Отношение Students состоит из следующих кортежей:files
											 	
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Tomas153.94.310
12Alex284.25.010

Отношение Specialties состоит из следующих кортежей

Specialty_idSpecialty_titleSpecialty_rating
11.01.15Accounting9.8
12.03.14Engineering6.2

Запрос SQL имеет вид:

SELECT Student_name name FROM Students WHERE EXISTS (SELECT * FROM Specilaties WHERE left(Specialty_title,1)=left(Student_name, 1)) UINION SELECT Specialty_title name FROM Specialties WHERE EXISTS (SELECT * FROM Students WHERE left(Student_name,1)=left(Specialty_title,1))

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
name
Tom
Engineering
 

 (2) сервер БД сгенерирует ошибку  

 (3)
name
Tom
Alex
Accounting
Engineering
 

 (4)
name
Alex
Accounting
 


Номер 4
Отношение Worker состоит из следующих кортежей:
				files
				 				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Robert1710000.51020.05.98
12Alexander17900NULL2021.06.98

Отношение Worker1 состоит из следующих кортежей:

12Alexis171200NULL2029.06.98

Запрос SQL имеет вид:

SELECT len(Worker_name) name FROM Worker INTERSECT SELECT len(Worker_name) name FROM Worker1

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1) сервер БД сгенерирует ошибку  

 (2)
name
6
6
 

 (3)
name
Robert
Alexis
 

 (4)
name
9
 

 (5)
name
6
 


Номер 5
Отношение Worker состоит из следующих кортежей:
				files
				 				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom_Parker1511000.81020.05.98
12Alex_Stone179000.22021.06.98

Отношение Branch состоит из следующих кортежей:

Branch_idBranch_titleLocation_id
10Accounting11
20Research12

Запрос SQL имеет вид:

SELECT Worker_name name FROM Worker WHERE NOT EXISTS (SELECT * FROM Branch WHERE left(Branch_title,1)=left(Worker_name, 1)) UNION SELECT Branch_title name FROM Branch WHERE NOT EXISTS (SELECT * FROM Worker WHERE left(Worker_name,1)=left(Branch_title,1))

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
name
Alex_Stone
Research
 

 (2) сервер БД сгенерирует ошибку  

 (3)
name
Tom_Parker
Alex_Stone
Accounting
Research
 

 (4)
name
Tom_Parker
Research
 


Номер 6
Отношение Worker состоит из следующих кортежей: 
				files
								 				
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Robert1710000.51020.05.98
12Alexis17900NULL2021.06.98

Отношение Worker1 состоит из следующих кортежей:

12Alexis171200NULL2029.06.98

Запрос SQL имеет вид:

SELECT Worker_name name FROM Worker w WHERE EXISTS (SELECT * FROM Worker1 w1 WHERE w.Worker_name = w1.Worker_name)

Выберите среди предложенных вариантов верный вариант итогового отчета:


Ответ:

 (1)
name
Robert
Alexis
 

 (2)
name
Alexis
Alexis
 

 (3)
name
Alexis
 

 (4) сервер БД сгенерирует ошибку  


Упражнение 40:
Номер 1
Отношение Students имеет схему: files
Students: Student_id (int, PK), Student_name, Head_stud_id, Math_scope, Group_id (int)

Отношение Groups имеет схему:

Groups: Group_id (int PK), Grade_level (int), Specialty_id, Head_stud_id

Запрос предназначен для отображения совпадающих номеров студентов и групп

SELECT Student_id nom FROM Students ________________ SELECT Group_id nom FROM Groups

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


Ответ:

 (1) EXCEPT  

 (2) INTERSECTION 

 (3) UNION 

 (4) INTERSECT 

 (5) EXIST 


Номер 2
Отношение Students имеет схему: files
Students: Student_id (int, PK), Student_name, Head_stud_id, Math_scope, Group_id (int)

Отношение Instructors имеет схему:

Instructors: Instructor_id (int PK), Instructor_name, Length_of_work

Запрос предназначен для отображения имен учителей, которые не встречаются среди имен студентов

SELECT Instructor_name FROM Instructors _________ SELECT Student_name FROM Students

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


Ответ:

 (1) INTERSECT  

 (2) UNION 

 (3) INTERSECTION 

 (4) NOT EXISTS 

 (5) EXCEPT 


Номер 3
Отношение Students имеет схему: files
Students: Student_id (int, PK), Student_name, Head_stud_id, Math_scope, Group_id (int)

Отношение Instructors имеет схему:

Instructors: Instructor_id (int PK), Instructor_name, Length_of_work

Запрос предназначен для отображения имен учителей, которые встречаются среди имен студентов

SELECT Instructor_name FROM Instructors _________ SELECT Student_name FROM Students

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


Ответ:

 (1) UNION  

 (2) INTERSECT 

 (3) INTERSECTION 

 (4) EXCEPT 

 (5) EXIST 


Номер 4
Отношение Worker имеет схему: 
				files
				Worker: Worker_id (int, PK), Worker_name, Position, Salary, Commission_pct, Branch_id (int, FK)

Отношение Branch имеет схему:

Branch: Branch_id (int PK), Branch_title, Location_id

Запрос предназначен для отображения общего списка имен сотрудников и названий отделов

SELECT Worker_name name FROM Worker ________________ SELECT Branch_title name FROM Branch

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


Ответ:

 (1) INTERSECT 

 (2) INTERSECTION 

 (3) EXIST 

 (4) EXCEPT 

 (5) UNION 


Номер 5
Отношение Worker имеет схему:
				files
				
Worker: Worker_id (int, PK), Worker_name (varchar), Position, Salary, Commission_pct, Branch_id (int, FK)
Отношение Manager имеет схему:
Manager: Manager_id (int, PK), Manager_name (varchar), Managed_branch_id				
				

Запрос предназначен для отображения имен сотрудников, которые не встречаются среди имен менеджеров

SELECT Worker_name FROM Worker _________ SELECT Manager_name FROM Manager

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


Ответ:

 (1) INTERSECTION 

 (2) INTERSECT 

 (3) EXCEPTION 

 (4) EXCEPT 

 (5) EXISTS 


Номер 6
Отношение Worker имеет схему:
				files
				
Worker: Worker_id (int, PK), Worker_name, Position, Salary, Commission_pct, Branch_id (int, FK)
Отношение Manager имеет схему:
Manager: Manager_id (int, PK), Manager_name, Managed_branch_id				
				

Запрос предназначен для отображения имен менеджеров, которые встречаются среди имен сотрудников

SELECT Worker_name FROM Worker w _________ (SELECT Manager_name FROM Manager WHERE Worker_name = Manager_name)

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


Ответ:

 (1) INTERSECTION  

 (2) INTERSECT 

 (3) EXCEPTION 

 (4) EXCEPT 

 (5) WHERE EXISTS 




Главная / Базы данных / SQL: основы / Тест 1