SQL: основы - тест 1 Сортировка строк полученного в результате выборки отчета: (1) по умолчанию осуществляется в порядке убывания значений заданного столбца или выражения (2) определяется во фразе ORDER ON (3) по умолчанию осуществляется в порядке возрастания значений заданного столбца или выражения (4) может осуществляться только по единственному столбцу или выражению (5) осуществляется по первичному ключу, если не задан конкретный столбец (выражение) Номер 2 Значение NULL: Ответ: (1) в выражениях неявно заменяется на значение "ноль" или пробел (2) означает, что значение недоступно, не присвоено или неизвестно (3) при использовании в арифметическом выражении приводит к тому, что выражение принимает неопределенное значение (4) при использовании в арифметическом выражении приводит к тому, что выражение принимает значение "ноль" Номер 3 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Lang_scope Group_id 11 Tom 15 NULL 4.3 10 12 Alex 28 4.2 5.0 NULL Запрос имеет следующий вид: 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 (язык управления данными) Номер 1 Отношение Students имеет схему: 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 имеет схему: 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 имеет схему: 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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 1100 NULL 10 20.05.98 12 Alex 17 900 0.5 20 21.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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 1100 0.5 10 20.05.98 12 Alex 17 900 NULL 20 21.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 состоит из следующих кортежей: Branch_id Branch_title Location_id 10 Accounting 11 20 NULL 12 Запрос 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_id Branch_title Location_id 10 Accounting 11 20 NULL 12 (2) Branch_id Branch_title Location_id 20 NULL 12 10 Accounting 11 (3) Branch_id Branch_title Location_id 10 Accounting 11 (4) сервер БД сгенерирует ошибку Номер 1 Отношение Groups состоит из следующих кортежей: Group_id Grade_level Specialty_id Head_stud_id ДИ1 1 120.010 10 ДИ2 2 120.010 17 ВИ1 1 131.015 123 ВИ2 2 131.015 15 Запрос имеет следующий вид: SELECT Head_stud_id, Grade_level FROM Groups Order BY Grade_level DESC, Head_stud_id Выберите среди предложенных вариантов верный вариант итогового отчета: Ответ: (1) Head_stud_id Grade_level 10 1 123 1 15 2 17 2 (2) Head_stud_id Grade_level 17 2 15 2 123 1 10 1 (3) Head_stud_id Grade_level 15 17 10 123 2 2 1 1 (4) сервер БД сгенерирует ошибку (5) Grade_level Head_stud_id 2 17 2 15 1 123 1 10 Номер 2 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Lang_scope Group_id 11 Tom 15 5.0 4.3 10 12 Alex 28 4.2 5.0 10 Запрос 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 имеет схему: 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 имеет схему: 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 состоит из следующих кортежей: Branch_id Branch_title Location_id 10 Accounting 11 20 Research 12 30 Accounting 12 40 Research 11 Запрос имеет следующий вид: SELECT Branch_title, Location_id FROM Branch ORDER BY Branch_title DESC, Location_id DESC Выберите среди предложенных вариантов верный вариант итогового отчета: Ответ: (1) Branch_title Location_id Research 11 Research 12 Accounting 11 Accounting 12 (2) Branch_title Location_id Research 12 Research 11 Accounting 12 Accounting 11 (3) Branch_title Location_id Accounting 11 Accounting 12 Research 11 Research 12 (4) сервер БД сгенерирует ошибку (5) Branch_title Location_id Accounting 12 Accounting 11 Research 12 Research 11 Номер 6 Отношение Worker имеет схему: 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 FROM Worker bonus, __________ Выберите из предложенных вариантов тот, который при подстановке вместо знака подчеркивания обеспечивает корректное выполнение запроса и получение требуемого результата при условии, что столбцы 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) Номер 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) подтверждает изменения, внесенные транзакцией в БД Номер 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) Все перечисленные операторы МОГУТ использоваться для сравнения строк Номер 1 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Lang_scope Group_id 11 Lincoln 15 NULL 4.3 10 12 Li 28 4.2 5.0 10 13 Lik 28 4.5 4.3 20 Запрос имеет следующий вид: 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 имеет схему: 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 состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Lang_scope Group_id 11 Tom 15 4.2 4.3 10 12 Alex 28 NULL 5.0 10 Запрос 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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 1100 NULL 10 20.05.98 12 Sam 15 800 0.2 13 Alex 17 900 0.5 20 21.06.98 14 Jack 17 1500 0.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 состоит из следующих кортежей: Branch_id Branch_title Location_id 10 Accounting 11 20 Research 12 30 Accounting 12 40 Banking 11 Запрос предназначен для отображения всех номеров отделов, названия которых начинаются с символа "А" SELECT Branch_id FROM Branch WHERE _____________________ Из приведенных ниже вариантов кода укажите те варианты, которыми можно заменить знак подчеркивания для получения корректного запроса, решающего поставленную задачу. Ответ: (1) Branch_title (2) Branch_title (3) Branch_title (4) Branch_title (5) Branch_title = ‘A%’ BETWEEN ‘A’ AND ‘B’ AND Branch_title <’B’ LIKE ‘A%’ LIKE ‘A?%’ >= ‘A%’ AND < ‘B’ Номер 6 Отношение Worker имеет схему: 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 пропущен левый операнд Номер 1 Отношение Students имеет схему: 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 (2) Student_name (3) Student_name (4) Student_name (5) Student_name LIKE LIKE LIKE LIKE LIKE “%!_%” ESCAPE ‘!’ “%[_]%” ‘%[_]’ ‘%?_%’ ESCAPE ‘?’ ‘%!_%’ ESCAPE ‘!’ Номер 2 Отношение Students имеет схему: 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 (3) Student_name (4) Student_name (5) Student_name >= 'A' AND Student_name <= 'C' < 'D' AND Student_name >= 'A' LIKE "A%" OR Student_name LIKE "B%" OR Student_name LIKE "C%" LIKE 'C%' OR Student_name LIKE 'A%' OR Student_name LIKE 'B%' Номер 3 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Mis_days Group_id 11 Tom 15 4.5 8% 10 12 Alex 28 4.2 13 10 … … … … … … Запрос предназначен для получения отчета, содержащего информацию о студентах, количество пропусков занятий которых указано в процентах от общего числа занятий (значение в столбце Mis_days заканчивается знаком %). Столбец Mis_days имеет тип VARCHAR. SELECT Student_name, Mis_days FROM Students WHERE __________________ Выберите из предложенных вариантов те, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата: Ответ: (1) Mis_days (2) Mis_days (3) Mis_days (4) Mis_days (5) Mis_days LIKE LIKE LIKE LIKE LIKE ‘%ESCAPE%’ ‘ %”%” ’ ‘%!%’ ESCAPE ‘!’ “%?%” ESCAPE "?" ‘%?%’ ESCAPE '?' Номер 4 Отношение Worker состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 1100 34% 10 20.05.98 12 Alex 17 900 0.2 20 21.06.98 … … … … … … … Запрос предназначен для получения отчета, содержащего информацию о сотрудниках, размер премии которых указан в процентах от оклада (значение в столбце Commission_pct заканчивается знаком %). Столбец Commission_pct имеет тип VARCHAR. SELECT Worker_name, Salary, Commission_pct FROM Worker WHERE__________________ Выберите из предложенных вариантов те, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата: Ответ: (1) Commission_pct (2) Commission_pct (3) Commission_pct (4) Commission_pct (5) Commission_pct LIKE LIKE LIKE LIKE LIKE AS ‘%!%’ ESCAPE ‘!’ ‘%!%’ ESCAPE ‘!’ ‘%?%’ ESCAPE ‘?’ ‘ %”%” ’ ‘%ESCAPE%’ Номер 5 Отношение Worker имеет схему: 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 (2) Worker_name (3) Worker_name (4) Worker_name (5) Worker_name LIKE AS ‘[A-C] %’ LIKE ‘[ABC]’ < 'C' OR Worker_name LIKE 'C%' LIKE 'C%' OR Worker_name LIKE 'A%' OR Worker_name LIKE 'B%' LIKE ‘[ABC] %’ Номер 6 Отношение Worker состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom_Jayson 15 1100 0.4 10 20.05.98 12 Alex_Tayler 17 900 0.2 20 21.06.98 … … … … … … … Запрос предназначен для получения отчета, содержащего информацию о сотрудниках, для которых помимо имени известна и фамилия (фамилия отделяется от имени символом "_" в столбце Worker_name). SELECT Worker_name, Salary, Commission_pct FROM Worker WHERE __________________ Выберите из предложенных вариантов те, которые при подстановке вместо знака подчеркивания обеспечивают корректное выполнение запроса и получение требуемого результата: Ответ: (1) Worker_name (2) Worker_name (3) Worker_name (4) Worker_name (5) Worker_name LIKE LIKE LIKE LIKE LIKE ‘%!_%’ ESCAPE ‘!’ “%!_%” ESCAPE ‘!’ ‘%?_’ ESCAPE ‘?’ ‘%?_%’ ESCAPE '?' ‘%[_]’ Номер 1 Выберите из предложенного списка варианты с правильной расстановкой приоритетов (очередности выполнения) различных групп операторов: Ответ: (1) Арифметические операторы Операторы сравнения (<, >, = …) Оператор конкатенации (2) Логические операторы (AND, OR) Оператор конкатенации Арифметические операторы (3) Логические операторы (AND, OR) Арифметические операторы Операторы сравнения (<, >, = …) (4) Арифметические операторы Оператор конкатенации Логические операторы (AND, OR) (5) ничего из перечисленного Номер 2 Оператор ESCAPE: Ответ: (1) может использоваться в сочетании с оператором LIKE (2) применяется для исключения из диапазона, задаваемого оператором BETWEEN… AND, конкретных значений (3) применяется для исключения из списка, задаваемого оператором IN, конкретных значений (4) не существует (5) может применяться для поиска метасимволов: "_" и "%". Номер 3 Положим условия: у1, у2, у3 являются истинными, а условия x1, x2, x3 – ложными. Какие из перечисленных комплексных условий во фразе WHERE будут истинными: Ответ: (1) y1 and (2) y2 and (3) у1 and (4) у1 and (x1 or y2) x2 or x1 or x3 x1 or у2 and x2 or у3 and x3 (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) ничего из перечисленного Номер 1 Отношение Students имеет схему: 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 имеет схему: 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 состоит из следующих кортежей: Specialty_id Specialty_title Specialty_rating 11.01.15 Accounting 9.8 12.03.14 Engineering 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Salary Group_id 11 Lincoln 15 4.7 1000 10 12 Li 28 4.2 1000 20 Запрос имеет следующий вид: 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_name New sal Lincoln 1100 Li 1200 (2) сервер БД сгенерирует ошибку (3) Student_name New sal Lincoln 1000 Li 1000 (4) Student_name New sal Lincoln NULL Li NULL Номер 4 Функция POSITION Ответ: (1) делает текущей заданную строку в заданной таблице (2) возвращает номер позиции первого символа заданной подстроки в заданной строке (3) заполняет указанным символом заданную позицию в строке (4) возвращает номер текущей строки в заданной таблице (5) возвращает разность между местным и всемирным временем (часовой пояс) Номер 5 Отношение Worker состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 1000 0.8 10 20.05.98 12 Alex 17 900 NULL 20 21.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 имеет схему: 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 Номер 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 Номер 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 Номер 1 Отношение Students имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 следует использовать знак "=" Номер 1 Отношение Students имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 Номер 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) элементы определения одного столбца разделяются запятыми Номер 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 Номер 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 Номер 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 Номер 1 Отношение Students имеет схему: 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 состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Exam_date Group_id 11 Lincoln 15 NULL NULL 10 12 Li 28 4.2 12.09.2003 10 Запрос имеет следующий вид: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 Номер 1 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Salary Group_id 11 Lincoln 15 2.3 1100 10 12 Li 28 4.2 NULL 20 13 Alan 24 4.7 1300 20 Запрос имеет следующий вид: SELECT AVG (Salary) AS report FROM Students Выберите среди предложенных вариантов верный вариант итогового отчета: Ответ: (1) report NULL (2) сервер БД сгенерирует ошибку (3) report 800 (4) report 1200 (5) report 0 Номер 2 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Salary Group_id 11 Lincoln 15 2.3 1100 10 12 Li 28 NULL NULL 20 13 Alan 24 4.7 1300 20 Запрос имеет следующий вид: 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 состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Salary Group_id 11 Lincoln 15 2.3 1100 10 12 NULL 28 NULL NULL 20 13 Alberta 24 4.7 1100 20 Запрос имеет следующий вид: SELECT COUNT(DISTINCT Salary) AS report FROM Students Выберите среди предложенных вариантов верный вариант итогового отчета: Ответ: (1) report 2 (2) сервер БД сгенерирует ошибку (3) report 0 (4) report NULL (5) report 1 Номер 4 Отношение Worker состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 17 1000 0.5 10 20.05.98 12 Alex 17 900 NULL 20 21.06.98 13 James 19 900 NULL 10 NULL Запрос имеет следующий вид: 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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 1000$ 0.8 10 20.05.98 12 Alex 17 900$ NULL 20 21.06.98 13 Jack 15 1500$ 0.2 20 NULL Запрос имеет следующий вид: SELECT COUNT (Branch_id) AS report FROM Worker Выберите среди предложенных вариантов верный вариант итогового отчета: Ответ: (1) report NULL (2) сервер БД сгенерирует ошибку (3) report 0 (4) report 2 (5) report 3 Номер 6 Отношение Worker состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 1000$ 0.8 10 20.05.98 12 Alex 17 900$ NULL 20 21.06.98 13 Jack 15 1500$ 0.4 20 NULL Запрос имеет следующий вид: SELECT AVG(Commission_pct) AS report FROM Worker Выберите среди предложенных вариантов верный вариант итогового отчета: Ответ: (1) report 0.6 (2) сервер БД сгенерирует ошибку (3) report 0.4 (4) report NULL (5) report 0 Номер 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 Номер 1 Отношение Students имеет схему: 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 состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Lang_scope Group_id 11 Lincoln 15 3.4 5.0 10 12 NULL 28 4.2 4.3 10 Запрос 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 имеет схему: 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 имеет схему: 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 имеет схему: 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) Номер 1 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Salary Group_id 11 Lincoln 15 4.9 1100 10 12 Li 28 4.2 NULL 20 13 Alan 24 4.7 1300 20 Запрос имеет следующий вид: 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 состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Salary Group_id 11 Lincoln 15 4.9 1100 10 12 Li 28 4.2 1200 20 13 Alan 24 4.7 1300 20 14 Tom 24 4.6 1600 20 Запрос имеет следующий вид 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 имеет схему: 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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 17 1000 0.5 20 20.05.98 12 Alex 17 900 NULL 20 21.06.98 13 James NULL 900 NULL 10 NULL Запрос имеет следующий вид: 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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 1600 0.8 10 20.05.98 12 Alex 17 900 NULL 10 21.06.98 13 Peter 17 1800 0.6 20 NULL 14 Abel 17 1800 0.9 20 NULL Запрос имеет следующий вид 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 имеет схему: 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 Номер 1 Отношение Students имеет схему: 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 состоит из следующих кортежей: Specialty_id Specialty_title Specialty_rating 11.01.15 Accounting 9.8 12.03.14 Engineering 6.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 состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Salary Group_id 11 Lincoln 15 3 15.0 10 12 Glint 28 4.5 NULL 10 13 Foltrig 28 4.5 NULL 10 Запрос имеет следующий вид: 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 имеет схему: 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 имеет схему 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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom_Jayson 15 500 0.4 10 20.05.98 12 Alex_Tayler 17 1100 NULL 20 21.06.98 13 Alex_Garnet 17 1100 NULL 10 21.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 Номер 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) объединение Номер 1 Отношение Students имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 присутствует в обеих таблицах, по которым образуется соединение Номер 1 Отношение Students имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 (2) Worker (3) Worker (4) Worker (5) Worker w LEFT OUTER JOIN Branch b ON w.Branch_id = Branch.Branch_id w, Branch WHERE w.Branch_id = Branch.Branch_id w JOIN Branch USING w.Branch_id = Branch.Branch_id w RIGHT OUTER JOIN Branch b ON w.Branch_id = Branch.Branch_id w FULL OUTER JOIN Branch ON w.Branch_id = Branch.Branch_id Номер 6 Отношение Worker имеет схему: 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 Номер 1 Отношение Specialties имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 Номер 1 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Lang_scope Group_id 11 Tom 15 3.9 4.3 10 12 Alex 28 4.2 5.0 10 Отношение Student_grade состоит из следующих кортежей: Grade_id Lowest_avg_scope Highest_avg_scope 1 8.1 9 2 9.1 10 Запрос 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_name Grade_id Tom 1 Alex 2 (2) Student_name Grade_id Tom 1 Tom 2 Alex 1 Alex 2 (3) Student_name Grade_id (4) Student_name Grade_id Alex 2 (5) сервер сгенерирует ошибку Номер 2 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Lang_scope Group_id 11 Tom 15 3.9 4.3 10 12 Alex 28 4.2 5.0 10 Отношение Student_grade состоит из следующих кортежей: Grade_id Lowest_avg_scope Highest_avg_scope 1 8.1 9 2 9.1 10 Запрос 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_name Grade_id Tom 1 Alex 2 (2) Student_name Grade_id Alex 2 (3) Student_name Grade_id Tom 1 Tom 2 Alex 1 Alex 2 (4) Student_name Grade_id (5) сервер сгенерирует ошибку Номер 3 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Lang_scope Group_id 11 Tom 15 3.9 4.3 NULL 12 Alex 28 4.2 5.0 10 Отношение Groups состоит из следующих кортежей: Group_id Grade_level Specialty_id Head_stud_id 10 1 120.010 10 20 2 120.010 17 Запрос SQL имеет вид: SELECT Student_name, Group_id FROM Students FULL OUTER JOIN Groups ON Students.Group_id = Groups.Group_id Выберите среди предложенных вариантов верный вариант итогового отчета: Ответ: (1) Student_name Grade_id Alex 10 NULL 20 (2) Student_name Grade_id Alex 10 (3) Student_name Grade_id Tom NULL Alex 10 NULL 20 (4) сервер сгенерирует ошибку Номер 4 Отношение Worker состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 17 1000 0.5 NULL 20.05.98 12 Alex 17 900 NULL 20 21.06.98 Отношение Branch состоит из следующих кортежей: Branch_id Branch_title Location_id 10 Accounting 11 20 Research 12 Запрос 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_name Branch_id Alex 20 NULL 10 (2) Worker_name Branch_id NULL 10 (3) Worker_name Branch_id Tom NULL Alex 20 NULL 10 (4) сервер сгенерирует ошибку Номер 5 Отношение Worker состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 1000 0.8 10 20.05.98 12 Alex 17 900 NULL 20 21.06.98 Отношение Worker_grade состоит из следующих кортежей: Grade_id Lowest_sal Highest_sal 1 500 900 2 901 1500 Запрос SQL имеет вид: SELECT Worker_name, Grade_id FROM Worker, Worker_grade WHERE Salary BETWEEN Lowest_sal AND Highest_sal AND Grade_id <> 2 Выберите среди предложенных вариантов верный вариант итогового отчета: Ответ: (1) Worker_name Grade_id Tom 1 Tom 2 Alex 1 Alex 2 (2) Worker_name Grade_id Tom 2 Alex 1 (3) Worker_name Grade_id Alex 1 (4) Worker_name Grade_id (5) запрос не будет выполнен, т.к. содержит ошибки Номер 6 Отношение Worker состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 17 1000 0.5 NULL 20.05.98 12 Alex 17 900 NULL 20 21.06.98 Отношение Branch состоит из следующих кортежей: Branch_id Branch_title Location_id 10 Accounting 11 20 Research 12 Запрос SQL имеет вид: SELECT Worker_name, Branch_id FROM Worker FULL OUTER JOIN Branch ON Worker.Branch_id = Branch.Branch_id Выберите среди предложенных вариантов верный вариант итогового отчета: Ответ: (1) Worker_name Branch_id Tom NULL Alex 20 NULL 10 (2) Worker_name Branch_id Alex 20 NULL 10 (3) сервер БД сгенерирует ошибку (4) Worker_name Branch_id Alex 20 Номер 1 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Salary Group_id 11 Lincoln 15 2.3 1100 10 12 Li NULL 4.2 NULL 20 13 Alan 15 4.7 1300 20 Запрос 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 состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Salary Group_id 11 Lincoln 12 2.3 1100 10 12 Li NULL 4.2 NULL 20 13 Alan 15 4.7 1300 20 Запрос 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) name report Li 2 (2) name report Li 1 (3) сервер БД сгенерирует ошибку (4) name report Li 0 Номер 3 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Salary Group_id 11 Lincoln 16 4.1 1100 10 15 Li NULL 4.2 NULL 20 13 NULL 15 4.7 1300 20 16 Tom NULL 4.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) name scope Li 4.2 (2) name scope No rows selected (3) сервер БД сгенерирует ошибку (4) name report Li 4.2 Li 4.0 Номер 4 Отношение Worker состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 1100 NULL 10 20.05.98 15 Sam NULL 800 0.2 21.06.98 13 Alex 17 900 0.5 20 23.06.98 17 Jack NULL 1500 0.5 23.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) name scope No rows selected (2) worker manager Tom Sam Alex Jack (3) сервер БД сгенерирует ошибку (4) worker manager Tom Sam (5) worker manager Alex Jack Номер 5 Отношение Worker состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 12 Tom 17 1000$ 0.8 10 20.05.98 17 Alex NULL 900$ NULL 20 21.06.98 16 Sam 17 1500$ 0.2 20 NULL Запрос 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) name report Alex 2 (2) name report Alex 0 (3) name report Alex 1 (4) сервер БД сгенерирует ошибку Номер 6 Отношение Worker состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 500 0.4 10 20.05.98 12 Alex 15 1200 NULL 20 21.06.98 15 James 17 1100 NULL 20 21.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 Номер 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 Номер 1 Отношение Students имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему 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 имеет схему: 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 имеет схему: 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) Номер 1 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Salary Group_id 11 Lincoln 15 2.3 0 10 15 Li NULL 4.2 1100 20 13 Alan 15 4.7 1300 20 Запрос 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 состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Salary Group_id 11 Lincoln 15 2.3 NULL 10 15 Li NULL 4.2 1100 20 13 Alan 15 4.7 1300 20 Запрос 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) name1 name2 Lincoln Li (2) name1 name2 Li Lincoln Li Alan (3) сервер БД сгенерирует ошибку (4) name1 name2 Lincoln Li Alan Li (5) name1 name2 Li Lincoln Номер 3 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Salary Group_id 11 Lincoln 15 2.3 NULL 10 15 Li NULL 4.2 1100 20 13 Alan 15 4.7 1300 20 Отношение Groups состоит из следующих кортежей: Location_id Country_name City_name Street 10 1 120.010 10 20 2 120.010 17 Запрос 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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 17 1000 0.5 10 20.05.98 12 Alexander 17 900 NULL 20 21.06.98 Отношение Branch состоит из следующих кортежей: Branch_id Branch_title Location_id 10 Accounting 11 20 Research 12 Запрос 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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 1600 0.8 10 20.05.98 15 Alex NULL 900 NULL 10 21.06.98 13 Peter 17 1800 0.6 20 NULL 17 Abel NULL 1900 0.9 20 NULL Запрос 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) name1 name2 Tom Alex (2) name1 name2 Tom Alex Peter Abel (3) нет отобранных строк (4) name1 name2 Alex Tom Abel Peter (5) name1 name2 Alex Tom Номер 6 Отношение Worker состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 500 0.4 10 20.05.98 12 Alex 15 1200 0 20 21.06.98 15 James 17 1100 0 20 21.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) сервер БД сгенерирует ошибку Номер 1 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Lang_scope Group_id 11 Tom 15 3.9 4.3 10 12 Alex 28 4.2 5.0 10 Запрос 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 состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Lang_scope Group_id 11 Tom 15 3.9 4.3 10 12 Alex 28 4.2 5.0 10 Запрос 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 состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Lang_scope Group_id 11 Tom 15 3.9 4.3 10 12 Alex 28 4.2 5.0 10 Запрос 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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 17 1000 0.5 10 20.05.98 12 Alexander 17 900 NULL 20 21.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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 1000 0.8 10 20.05.98 12 Alex 17 900 NULL 20 21.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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 500 0.4 10 20.05.98 12 Alex 15 1200 NULL 20 21.06.98 15 James 17 1100 NULL 20 21.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) подзапрос возвращает несколько строк, тогда как оператор сравнения > может применяться только для однострочных подзапросов Номер 1 Отношение Students имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 Номер 1 Отношение Student_grade имеет схему: 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 имеет схему: 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 состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Salary Group_id 11 Lincoln 15 2.3 NULL 10 15 Li NULL 4.2 1100 20 13 Alan 15 4.7 1300 20 Отношение Groups состоит из следующих кортежей: Group_id Grade_level Specialty_id Head_stud_id 10 1 120.010 10 20 2 120.010 17 Запрос 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 имеет схему: 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 имеет схему: 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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom 15 500 0.4 10 20.05.98 12 Alex 15 1200 NULL 20 21.06.98 15 James 17 1100 NULL 20 21.06.98 Отношение Branch состоит из следующих кортежей: Branch_id Branch_title Location_id 10 Accounting 11 20 Research 12 Запрос 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 Номер 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) ... Номер 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) используется для соединения строк из нескольких таблиц Номер 1 Отношение Students состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Lang_scope Group_id 11 Tom 15 3.9 4.3 10 12 Peter 28 4.2 5.0 10 Отношение Students1 состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Lang_scope Group_id 11 Tomas 13 4.9 4.3 20 Запрос 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 состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Lang_scope Group_id 11 Tomas 15 3.9 4.3 10 12 Alex 28 4.2 5.0 10 Отношение Specialties состоит из следующих кортежей: Specialty_id Specialty_title Specialty_rating 11.01.15 Account 9.8 12.03.14 Sales 6.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 состоит из следующих кортежей: Student_id Student_name Head_stud_id Math_scope Lang_scope Group_id 11 Tomas 15 3.9 4.3 10 12 Alex 28 4.2 5.0 10 Отношение Specialties состоит из следующих кортежей Specialty_id Specialty_title Specialty_rating 11.01.15 Accounting 9.8 12.03.14 Engineering 6.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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Robert 17 1000 0.5 10 20.05.98 12 Alexander 17 900 NULL 20 21.06.98 Отношение Worker1 состоит из следующих кортежей: 12 Alexis 17 1200 NULL 20 29.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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 Tom_Parker 15 1100 0.8 10 20.05.98 12 Alex_Stone 17 900 0.2 20 21.06.98 Отношение Branch состоит из следующих кортежей: Branch_id Branch_title Location_id 10 Accounting 11 20 Research 12 Запрос 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 состоит из следующих кортежей: Worker_id Worker_name Manager_id Salary Commission_pct Branch_id Hire_date 11 12 Robert Alexis 17 17 1000 0.5 900 NULL 10 20 20.05.98 21.06.98 Отношение Worker1 состоит из следующих кортежей: 12 Alexis 17 1200 NULL 20 29.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) сервер БД сгенерирует ошибку Номер 1 Отношение Students имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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 имеет схему: 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