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

SQL - тест 1

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

Ответ:

 (1) GET 

 (2) OPEN 

 (3) READ 

 (4) SELECT 

 (5) VIEW 


Номер 2
За словом DISTINCT во фразе SELECT может следовать
				

Ответ:

 (1) символ "*" (звездочка) 

 (2) слово ALL 

 (3) функция MIN 

 (4) название одного столбца 

 (5) список из нескольких столбцов 


Номер 3
Если выборка данных производится из нескольких таблиц, то это может указываться во фразе FROM следующим образом:
				

Ответ:

 (1) таблица1 таблица2 

 (2) таблица1 AND таблица2 

 (3) таблица1 CROSS JOIN таблица2 

 (4) таблица1 INNER JOIN таблица2 

 (5) таблица1 OUTER JOIN таблица2 


Номер 4
Обязательными фразами в запросе на выборку данных являются:
				

Ответ:

 (1) FROM 

 (2) JOIN 

 (3) ORDER 

 (4) SELECT 

 (5) WHERE 


Номер 5
Слово ALL во фразе SELECT означает
				

Ответ:

 (1) все столбцы таблицы, указанной во фразе FROM 

 (2) все строки таблицы, указанной во фразе FROM 

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

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

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


Номер 6
После слова FROM может указываться
				

Ответ:

 (1) команда SELECT, заключенная в круглые скобки 

 (2) название базы данных 

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

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

 (5) название представления 


Упражнение 2:
Номер 1
Реляционная операция выборки реализуется в команде SELECT посредством
				

Ответ:

 (1) фразы HAVING 

 (2) фразы ORDER 

 (3) фразы WHERE 

 (4) перечня имен во фразе FROM 

 (5) перечня имен во фразе SELECT 


Номер 2
Реляционная операция объединения реализуется в команде SELECT с помощью
				

Ответ:

 (1) перечня имен во фразе FROM 

 (2) фразы GROUP 

 (3) фразы INNER JOIN 

 (4) фразы INTERSECT 

 (5) фразы UNION 


Номер 3
Реляционная операция разности множеств реализуется в команде SELECT с помощью
				

Ответ:

 (1) знака "-" (минус) в выражении после слова SELECT 

 (2) конструкции SELECT ... WHERE ... IN (SELECT ...) 

 (3) конструкции SELECT ... WHERE ... NOT IN (SELECT ...) 

 (4) фразы EXCEPT 

 (5) фразы INTERSECT 


Номер 4
Фраза SELECT реализует реляционную операцию
				

Ответ:

 (1) выборки 

 (2) объединения 

 (3) пересечения 

 (4) проекции 

 (5) разности 


Номер 5
Реляционная операция проекции реализуется в команде SELECT
				

Ответ:

 (1) заданием условия WHERE 

 (2) перечнем имен во фразе FROM 

 (3) перечнем имен во фразе SELECT 

 (4) фразой INNER JOIN 

 (5) фразой ORDER 


Номер 6
Реляционная операция пересечения реализуется в команде SELECT с помощью
				

Ответ:

 (1) конструкции SELECT ... WHERE ... IN (SELECT ...) 

 (2) конструкции SELECT ... WHERE ... NOT IN (SELECT ...) 

 (3) перечня имен во фразе FROM 

 (4) фразы EXCEPT 

 (5) фразы INTERSECT 


Упражнение 3:
Номер 1
Реляционная операция эквисоединения реализуется в команде SELECT с помощью
				

Ответ:

 (1) операции конкатенации 

 (2) перечня имен во фразе FROM 

 (3) фразы JOIN ... USING 

 (4) фразы NATURAL JOIN 

 (5) фразы UNION 


Номер 2
Символ "." (точка) используется в команде SELECT
				

Ответ:

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

 (2) в конце для завершения запроса 

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

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

 (5) после имени таблицы перед именем столбца при квалификации имени 


Номер 3
Таблица t состоит из столбцов f1 и f2. 
Запрос SELECT f1, f2 FROM t эквивалентен запросу
				

Ответ:

 (1) SELECT * FROM t 

 (2) SELECT *, f1, f2 FROM t 

 (3) SELECT ALL f1, f2 FROM t 

 (4) SELECT ALL FROM t 

 (5) SELECT DISTINCT * FROM t 


Номер 4
Реляционная операция произведения множеств реализуется в команде SQL
				

Ответ:

 (1) перечнем имен во фразе FROM 

 (2) перечнем имен во фразе SELECT 

 (3) с помощью выражения, включающего знак "*" (умножить), во фразе SELECT 

 (4) с помощью фразы CROSS JOIN 

 (5) с помощью фразы JOIN ... USING 


Номер 5
Укажите варианты, содержащие ошибки.
				

Ответ:

 (1) FROM t1 AS name1, t1 AS name2 

 (2) FROM t1, t1 

 (3) SELECT f.t FROM t 

 (4) SELECT f1 AS name1, f1 AS name2 

 (5) SELECT f1, f1 


Номер 6
В каждой из таблиц t1 и t2 есть столбец с именем f. Выберите варианты, не содержащие ошибок.
				

Ответ:

 (1) SELECT f FROM t1, t2 

 (2) SELECT f FROM t2 

 (3) SELECT f.t2 FROM t1, t2 

 (4) SELECT t1.f FROM t1 t2 

 (5) SELECT t2.f FROM t2, t1 


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

Запрос SQL предназначен для получения имен студентов, имеющих средний балл по математике (Math_scope) от 3 до 4 включительно, и имеет вид:

SELECT Student_name FROM Students WHERE ______________

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


Ответ:

 (1) Math_scope <= 4.0 AND Math_scope >>= 3.0 

 (2) Math_scope >= 3.0 OR Math_scope <= 4.0 

 (3) Math_scope BETWEEN 3.0 AND 4.0 

 (4) Math_scope BETWEEN 3.0 AND 4.1 

 (5) Math_scope IN (3.0, 4.0) 


Номер 2
Чтобы результат был не пуст, во фразе BETWEEN d1 AND d2
				

Ответ:

 (1) d2 не может быть равен или меньше, чем d1 

 (2) d1 должно быть не больше d2 

 (3) d1 может быть больше d2 

 (4) значения d1 и d2 могут быть типа DATE 


Номер 3
Условие WHERE f NOT IN (d1, d2) эквивалентно условию
				

Ответ:

 (1) f <> d1 OR f <> d2 

 (2) f <> d1 AND f <> d2 

 (3) f BETWEEN d1 AND d2 

 (4) NOT (f = d1 AND f = d2) 

 (5) NOT (f = d1 OR f = d2) 


Номер 4
Фраза WHERE команды SELECT реализует реляционную операцию
				

Ответ:

 (1) выборки 

 (2) объединения 

 (3) проекции 

 (4) произведения 

 (5) соединения 


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

Запрос SQL предназначен для получения имен сотрудников 10-го и 20-го отделов и имеет вид:

SELECT Worker_name FROM Worker WHERE ___________________

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


Ответ:

 (1) Branch_id BETWEEN 10 AND 20 

 (2) Branch_id IN (20, 10) 

 (3) Branch_id = 10 AND Branch_id = 20 

 (4) Branch_id = 10 OR 20 

 (5) Branch_id = 20 OR Branch_id = 10 


Номер 6
Во фразе BETWEEN d1 AND d2
				

Ответ:

 (1) граничные значения d1 и d2 включаются в диапазон 

 (2) граничные значения d1 и d2 не включаются в диапазон 

 (3) значение d1 включается в диапазон, а значение d2 не включается 

 (4) значения d1 и d2 могут быть символьного типа 

 (5) значения d1 и d2 могут быть типа TIMESTAMP 


Упражнение 5:
Номер 1
За словом SELECT может следовать
				

Ответ:

 (1) символ "*" (звездочка) 

 (2) слово ALL 

 (3) слово LIMIT 

 (4) логическое выражение 

 (5) название таблицы 


Номер 2
Требуется отобрать студентов, чьи имена начинаются на букву "В". 
Выберите варианты условий, соответствующие заданию.
				

Ответ:

 (1) WHERE Student_name = 'B%' 

 (2) WHERE Student_name >= 'B' AND Student_name < 'C' 

 (3) WHERE Student_name LIKE '%B%' 

 (4) WHERE Student_name LIKE 'B_' 

 (5) WHERE Student_name LIKE 'B%' 


Номер 3
Требуется отобрать студентов, у которых не заполнен столбец с оценкой по математике (Math_scope).
Выберите условие, соответствующее заданию.
				

Ответ:

 (1) WHERE EMPTY(Math_scope) 

 (2) WHERE Math_scope = 0 

 (3) WHERE Math_scope = NONE 

 (4) WHERE Math_scope = NULL 

 (5) WHERE Math_scope IS NULL 


Номер 4
С предикатом LIKE используются символы-маски
				

Ответ:

 (1) "_" (подчеркивание) 

 (2) "*" (звездочка) 

 (3) "!" (восклицательный знак) 

 (4) "?" (знак вопроса) 

 (5) "%" (процент) 


Номер 5
В столбце Worker_name содержатся значения:
Tom_Adams, Fred_Adams, Alex, Adams_Black

Требуется отобрать сотрудников с фамилией (слово после знака подчеркивания) Adams. Выберите вариант условия, соответствующего заданию.


Ответ:

 (1) WHERE Worker_name LIKE 'Adams' 

 (2) WHERE Worker_name LIKE '%_Adams' 

 (3) WHERE Worker_name LIKE '%$_Adams' ESCAPE '_' 

 (4) WHERE Worker_name LIKE '%#_Adams' ESCAPE '#' 

 (5) WHERE Worker_name LIKE '%*_Adams%' ESCAPE '*' 


Номер 6
Требуется отобрать сотрудников, у которых столбец Commission_pct имеет некоторое значение.
Выберите условие, соответствующее заданию.
				

Ответ:

 (1) WHERE Commission_pct <> NULL 

 (2) WHERE Commission_pct <> 0 

 (3) WHERE Commission_pct IS NOT NULL 

 (4) WHERE Commission_pct NOT IS NULL 

 (5) WHERE NOT (Commission_pct IS NULL) 


Упражнение 6:
Номер 1
Требуется получить список студентов в таком порядке, чтобы вначале списка были студенты с наибольшим баллом по математике (Math_scope). Если у нескольких студентов балл по математике одинаков, то имена таких студентов (Student_name) должны идти в алфавитном порядке.
Выберите варианты сортировки, соответствующие заданию.
				

Ответ:

 (1) ORDER BY Math_scope, Student_name ASC 

 (2) ORDER BY Math_scope DESC, Student_name  

 (3) ORDER BY Math_scope DESC, Student_name ASC 

 (4) ORDER BY Student_name Math_scope DESC 

 (5) ORDER BY Student_name ASC, Math_scope DESC 


Номер 2
Требуется получить список студентов в таком порядке, чтобы сначала шли студенты с наибольшим баллом по математике (Math_scope). Если несколько студентов имеют одинаковый балл по математике, то среди них первыми должны  располагаться студенты с наибольшим баллом по иностранному языку (Lang_scope).
Выберите варианты сортировки, соответствующие заданию.
				

Ответ:

 (1) ORDER BY Lang_scope, Math_scope 

 (2) ORDER BY Lang_scope, Math_scope DESC 

 (3) ORDER BY Lang_scope DESC, Math_scope DESC 

 (4) ORDER BY Math_scope, Lang_scope 

 (5) ORDER BY Math_scope, Lang_scope DESC 

 (6) ORDER BY Math_scope DESC, Lang_scope DESC 


Номер 3
Требуется вместо числовой оценки (Point), которая может принимать значения 2, 3, 4, 5, получить соответственно 'неудовлетворительно', 'удовлетворительно', 'хорошо', 'отлично'.
Выберите фрагменты, соответствующие заданию.
				

Ответ:

 (1) CASE Point WHEN 2 THEN 'неудовлетворительно' WHEN 3 THEN 'удовлетворительно' WHEN 4 THEN 'хорошо' ELSE 'отлично' 

 (2) CASE Point WHEN 3 THEN 'удовлетворительно' WHEN 2 THEN 'неудовлетворительно' WHEN 5 THEN 'отлично' WHEN 4 THEN 'хорошо' END 

 (3) CASE Point WHEN Point > 4 THEN 'отлично' WHEN Point > 3 THEN 'хорошо' WHEN Point > 2 THEN 'удовлетворительно' ELSE 'неудовлетворительно' END 

 (4) CASE WHEN Point = 2 THEN 'неудовлетворительно' WHEN Point = 3 THEN 'удовлетворительно' WHEN Point = 4 THEN 'хорошо' WHEN Point = 5 THEN 'отлично' END 

 (5) CASE WHEN Point < 3 THEN 'неудовлетворительно' WHEN Point < 4 THEN 'удовлетворительно' WHEN Point < 5 THEN 'хорошо' ELSE 'отлично' END 


Номер 4
Выберите допустимые виды оператора SELECT.
				

Ответ:

 (1) SELECT ... FROM ... ORDER BY ... 

 (2) SELECT ... FROM ... WHERE ... ORDER BY ... GROUP BY ... 

 (3) SELECT ... FROM ... UNION SELECT ... FROM ... 

 (4) SELECT ... FROM ... GROUP BY ... WHERE ... ORDER BY ... 


Номер 5
Требуется получить список сотрудников в таком порядке, чтобы сначала шли молодые сотрудники, а в конце списка - пожилые.
Выберите соответствующие заданию варианты сортировки при условии, что дата рождения хранится в поле Hiredate (timestamp).
				

Ответ:

 (1) ORDER BY Hiredate 

 (2) ORDER BY Hiredate ASC 

 (3) ORDER BY Hiredate ASK 

 (4) ORDER BY Hiredate DESC 

 (5) ORDER BY Hiredate DESK 


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

SELECT CASE Branch_id
	WHEN 10 THEN 'Accounting'
	WHEN 20 THEN 'Research' END
FROM Worker

Что будет получено в результате выполнения этого запроса, если значение Branch_id равно 30?


Ответ:

 (1) Accounting 

 (2) 30 

 (3) NULL 

 (4) Research 

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


Упражнение 7:
Номер 1
Использование фразы GROUP BY
				

Ответ:

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

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

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

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

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


Номер 2
Укажите фрагменты, не содержащие ошибок.
				

Ответ:

 (1) GROUP BY Group_id HAVING Head_stud_id = 1 

 (2) GROUP BY Group_id HAVING MAX(Lang_scope) > 3.9 

 (3) GROUP BY Group_id ORDER BY Math_scope 

 (4) SELECT COUNT(Student_id) FROM Students GROUP BY Group_id 

 (5) SELECT Student_name FROM Students GROUP BY Group_id 


Номер 3
Укажите правильные варианты.
				

Ответ:

 (1) условие WHERE выполняется перед группировкой 

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

 (3) условие HAVING выполняется после группировки 

 (4) условие HAVING не может содержать итоговые функции 

 (5) HAVING задает условие отбора группы строк, полученной в результате группирования 


Номер 4
Фраза GROUP BY
				

Ответ:

 (1) будет вызывать ошибку, если указанный в ней столбец отсутствует в списке SELECT 

 (2) может содержаться в команде SELECT одновременно с фразами HAVING и WHERE 

 (3) следует перед фразой WHERE 

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

 (5) эквивалентна фразе ORDER BY 


Номер 5
Укажите фрагменты, не содержащие ошибок.
				

Ответ:

 (1) GROUP BY Branch_id HAVUNG COUNT(Worker_id) < 4  

 (2) GROUP BY Branch_id HAVING Manager_id = 3 

 (3) GROUP BY Branch_id ORDER BY Salary 

 (4) SELECT MIN(Commission_pct) FROM Worker GROUP BY Branch_id 

 (5) SELECT Worker_name FROM Worker GROUP BY Branch_id 


Номер 6
Фраза HAVING
				

Ответ:

 (1) задает имя столбца 

 (2) задает итоговую функцию 

 (3) задает логическое условие 

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

 (5) эквивалентна по действию фразе WHERE 


Упражнение 8:
Номер 1
Функция COUNT
				

Ответ:

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

 (2) возвращает количество непустых столбцов в таблице 

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

 (4) преобразует строку в число 

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


Номер 2
Итоговые функции можно использовать во фразе
				

Ответ:

 (1) GROUP 

 (2) HAVING 

 (3) ORDER 

 (4) SELECT 

 (5) WHERE 


Номер 3
Аргументом функции COUNT может быть
				

Ответ:

 (1) имя столбца, предваренное словом DISTINCT 

 (2) имя таблицы 

 (3) логическое условие 

 (4) символ "*" (звездочка) 

 (5) слово ALL 


Номер 4
Количество строк возвращает функция
				

Ответ:

 (1) AVG 

 (2) COUNT 

 (3) NUM 

 (4) QTY 

 (5) SUM 


Номер 5
Среди итоговых функций имеются функции
				

Ответ:

 (1) AVR 

 (2) COUNT 

 (3) MAXIMUS 

 (4) MINIMUM 

 (5) SUM 


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

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


Ответ:

 (1) SELECT max AS max(Salary) FROM Worker 

 (2) SELECT max(Salary) FROM Worker 

 (3) SELECT max(Salary) AS max FROM Worker 

 (4) SELECT max(Salary) max FROM Worker 

 (5) SELECT max(Salary) AS 'max' FROM Worker 


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

Требуется получить количество всех студентов

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


Ответ:

 (1) SELECT COUNT(*) FROM Students 

 (2) SELECT COUNT(DISTINCT Student_name) FROM Students 

 (3) SELECT COUNT(Student_id) FROM Students 

 (4) SELECT COUNT(Student_name) FROM Students 

 (5) SELECT DISTINCT COUNT(Student_name) FROM Students 


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

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

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


Ответ:

 (1) SELECT COUNT(*) FROM (SELECT Student_id FROM Students WHERE Lang_scope IS NOT NULL) t 

 (2) SELECT COUNT(DISTINCT Lang_scope) FROM Students 

 (3) SELECT COUNT(Lang_scope) FROM Students 

 (4) SELECT COUNT(Lang_scope IS NOT NULL) FROM Students 

 (5) SELECT COUNT(Student_name) FROM (SELECT Student_name FROM Students WHERE Lang_scope IS NOT NULL) t 


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

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

SELECT Group_id, MAX(Math_scope) FROM Students WHERE Lang_scope > 3.5 GROUP BY Group_id

Данный запрос выводит


Ответ:

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

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

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

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


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

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


Ответ:

 (1) SELECT DISTINCT Branch_id FROM Worker WHERE Salary >= 1000 

 (2) SELECT Branch_id FROM Worker GROUP BY Branch_id HAVING Salary >= 1000 

 (3) SELECT DISTINCT Branch_id FROM Worker WHERE Branch_id NOT IN (SELECT Branch_id FROM Worker WHERE Salary < 1000) 

 (4) SELECT Branch_id FROM Worker GROUP BY Branch_id HAVING MIN(Salary) >= 1000 

 (5) SELECT DISTINCT Branch_id FROM Worker WHERE Salary >= 1000 GROUP BY Branch_id HAVING MAX(Salary) >= 1000 


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

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


Ответ:

 (1) SELECT Manager_id FROM (SELECT * FROM (SELECT Manager_id FROM Worker GROUP BY Manager_id, Branch_id) t GROUP BY Manager_id HAVING COUNT(*) > 1) tt 

 (2) SELECT Manager_id FROM Worker WHERE COUNT(Branch_id) > 1 

 (3) SELECT Manager_id FROM Worker GROUP BY Manager_id HAVING COUNT(Branch_id) > 1 

 (4) SELECT Manager_id FROM Worker GROUP BY Manager_id HAVING COUNT(DISTINCT Branch_id) > 1 

 (5) SELECT Manager_id FROM Worker GROUP BY Branch_id HAVING COUNT(Manager_id) = 1 


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

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

SELECT Manager_id, COUNT(*) FROM Worker GROUP BY Manager_id HAVING MAX(Salary) <= 1000

Данный запрос выводит


Ответ:

 (1) количество записей в таблице Worker, где Worker_id = Manager_id и Salary <= 1000 

 (2) количество менеджеров, зарплата подчиненных сотрудников которых не превышает 1000 

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

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

 (5) количество сотрудников у тех менеджеров, чья зарплата не превышает 1000 


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

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

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


Ответ:

 (1) SELECT COUNT(Distinct Head_stud_id) FROM Students 

 (2) SELECT COUNT(Distinct id) FROM (SELECT t1.Student_id id FROM Students t1, Students t2 WHERE t1.Head_stud_id = t2.Student_id) t 

 (3) SELECT COUNT(id) FROM (SELECT Student_id id FROM Students WHERE Student_id IN (SELECT Head_stud_id FROM Students)) t 

 (4) SELECT COUNT(id) FROM (SELECT t2.Student_id id FROM Students t1, Students t2 WHERE t1.Head_stud_id = t2.Student_id) t 

 (5) SELECT COUNT(Head_stud_id) FROM Students 


Номер 2
Подзапрос
				

Ответ:

 (1) всегда начинается со слова SELECT 

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

 (3) может содержать в себе другой подзапрос 

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

 (5) содержится во внешнем запросе, всегда начинающемся со слова SELECT 


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

Требуется получить имена студентов с оценкой по математике выше средней.

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

SELECT Student_name FROM Students WHERE _______________

Ответ:

 (1) Math_scope > ANY (SELECT AVG(Math_scope) FROM Students) 

 (2) Math_scope > AVG(Math_scope) 

 (3) Math_scope > AVG(Math_scope) FROM Students 

 (4) Math_scope > SELECT AVG(Math_scope) FROM Students 

 (5) Math_scope > (SELECT AVG(Math_scope) FROM Students) 


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

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


Ответ:

 (1) SELECT MIN(AVG(Salary)) FROM Worker 

 (2) SELECT MIN(SELECT AVG(Salary) FROM Worker) 

 (3) SELECT MIN(Salary) FROM (SELECT AVG(Salary) FROM Worker GROUP BY Branch_id) t 

 (4) SELECT MIN(Sal) FROM (SELECT AVG(Salary) Sal FROM Worker GROUP BY Branch_id) t 


Номер 5
Подзапрос
				

Ответ:

 (1) всегда выполняется перед выполнением внешнего запроса 

 (2) может ссылаться на таблицу, не перечисленную в своей секции FROM 

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

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

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


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

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

SELECT DISTINCT Branch_id FROM Worker WHERE _______________

Ответ:

 (1) Salary <= ALL (SELECT Salary FROM Worker) 

 (2) Salary <= ANY (SELECT Salary FROM Worker) 

 (3) Salary <= EXISTS (SELECT MIN(Salary) FROM Worker) 

 (4) Salary <= (SELECT MIN(Salary) FROM Worker) 

 (5) Salary <= (SELECT Salary FROM Worker) 


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

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

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

SELECT Student_name FROM Students WHERE _______________

Ответ:

 (1) Math_scope > MAX(Math_scope) 

 (2) Math_scope >= ALL (SELECT Math_scope FROM Students) 

 (3) Math_scope > ANY (SELECT Math_scope FROM Students) 

 (4) Math_scope >= (SELECT MAX(Math_scope) FROM Students) 

 (5) Math_scope >= (SELECT Math_scope FROM Students) 


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

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

Выберите варианты запросов, соответствующие заданию.


Ответ:

 (1) SELECT Group_id FROM Students WHERE Math_scope > 4.5 

 (2) SELECT Group_id FROM Students WHERE ALL (Math_scope) > 4.5 

 (3) SELECT DISTINCT Group_id FROM Students WHERE Group_id <> ALL (SELECT Group_id FROM Students WHERE Math_scope <= 4.5) 

 (4) SELECT DISTINCT Group_id FROM Students WHERE Group_id <> ANY (SELECT Group_id FROM Students WHERE Math_scope <= 4.5) 

 (5) SELECT Group_id FROM Groups WHERE Group_id NOT IN (SELECT Group_id FROM Students WHERE Math_scope <= 4.5) 

 (6) SELECT Group_id FROM Groups WHERE NOT EXISTS (SELECT * FROM Students WHERE Math_scope <= 4.5 AND Students.Group_id = Groups.Group_id) 


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

Требуется получить список студентов, для которых старостой (Head_stud_id - номер студента-старосты) является студент группы 12.

Выберите варианты запросов, соответствующие заданию.


Ответ:

 (1) SELECT Student_name FROM Students WHERE Head_stud_id IN (SELECT Student_id FROM Students WHERE Group_id = 12) 

 (2) SELECT Student_name FROM Students WHERE Head_stud_id IN (SELECT Head_stud_id FROM Students WHERE Group_id = 12) 

 (3) SELECT Student_name FROM Students WHERE EXISTS (SELECT * FROM Students s WHERE s.Head_stud_id = Students.Student_id AND Students.Group_id = 12) 

 (4) SELECT Student_name FROM Students WHERE EXISTS (SELECT * FROM Students s WHERE Students.Head_stud_id = s.Student_id AND s.Group_id = 12) 

 (5) SELECT Student_name FROM Students WHERE Head_stud_id IN ANY (SELECT Head_stud_id FROM Students WHERE Group_id = 12) 

 (6) SELECT Student_name FROM Students WHERE Head_stud_id IN ALL (SELECT Student_id FROM Students WHERE Group_id = 12) 


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

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


Ответ:

 (1) SELECT Branch_id FROM Worker WHERE Worker_name <> 'Alex' 

 (2) SELECT * FROM Branch WHERE Branch_id <> (SELECT Branch_id FROM Worker WHERE Worker_name = 'Alex') 

 (3) SELECT * FROM Branch WHERE Branch_id NOT IN (SELECT Branch_id FROM Worker WHERE Worker_name = 'Alex') 

 (4) SELECT * FROM Branch WHERE Branch_id <> ANY (SELECT Branch_id FROM Worker WHERE Worker_name = 'Alex') 

 (5) SELECT * FROM Branch WHERE Branch_id <> ALL (SELECT Branch_id FROM Worker WHERE Worker_name = 'Alex') 


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

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


Ответ:

 (1) SELECT Worker_name FROM Worker WHERE Branch_id IN (SELECT Branch_id FROM Worker WHERE Worker_name = 'Alex') 

 (2) SELECT Worker_name FROM Worker WHERE Branch_id = (SELECT Branch_id FROM Worker WHERE Worker_name = 'Alex') 

 (3) SELECT Worker_name FROM Worker WHERE EXISTS (SELECT * FROM Worker W WHERE W.Worker_name = 'Alex' AND Worker.Branch_id = W.Branch_id) 

 (4) SELECT Worker_name FROM Worker WHERE Branch_id = ANY (SELECT Branch_id FROM Worker WHERE Worker_name = 'Alex') 

 (5) SELECT Worker_name FROM Worker WHERE Branch_id = ALL (SELECT Branch_id FROM Worker WHERE Worker_name = 'Alex') 


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

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


Ответ:

 (1) SELECT COUNT(Manager_id) FROM Worker 

 (2) SELECT COUNT(DISTINCT Manager_id) FROM Worker 

 (3) SELECT COUNT(*) FROM SELECT DISTINCT Manager_id FROM Worker 

 (4) SELECT COUNT(*) FROM (SELECT Manager_id FROM Worker GROUP BY Manager_id) 

 (5) SELECT COUNT(Manager_id) FROM SELECT Manager_id FROM Worker GROUP BY Manager_id 


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

Если отношение t1 содержит k1 кортежей, а отношение t2 содержит k2 кортежей, то результат выполнения запроса

SELECT * FROM t1, t2

будет содержать


Ответ:

 (1) 0 кортежей 

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

 (3) k1*k2 кортежей  

 (4) k1+k2 кортежей 

 (5) max(k1, k2) кортежей 

 (6) min(k1, k2) кортежей 


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

В каких запросах во фразе FROM необходимо использовать таблицу Students более одного раза?


Ответ:

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

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

 (3) получить имя студента и номер специальности его группы 

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

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


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

Требуется получить номер группы и название специальности этой группы.

Выберите варианты фрагмента запроса (вместо знака подчеркивания), соответствующие заданию.

SELECT Group_id, Specialty_title FROM ________________________

Ответ:

 (1) Specialties CROSS JOIN Groups 

 (2) Specialties NATURAL JOIN Groups 

 (3) Specialties JOIN Groups USING (Specialty_id) 

 (4) Specialties INNER JOIN Groups ON Specialties.Specialty_id = Groups.Specialty_id 

 (5) Specialties LEFT OUTER JOIN Groups ON Specialties.Specialty_id = Groups.Specialty_id 

 (6) Specialties, Groups 


Номер 4
Фраза FROM t1, t2
				

Ответ:

 (1) недопустима 

 (2) аналогична фразе FROM t1 INNER JOIN t2 

 (3) эквивалентна фразе FROM t1 CROSS JOIN t2 

 (4) эквивалентна фразе FROM t1 FULL OUTER JOIN t2 

 (5) реализует реляционную операцию объединения 

 (6) выполняет реляционную операцию произведения 


Номер 5

Отношение t1 состоит из следующих кортежей:

f1f2
11
32
22

Отношение t2 состоит из следующих кортежей:

f1f2
110
220
330

Результат выполнения запроса

SELECT * FROM t1, t2

будет содержать


Ответ:

 (1) 0 кортежей 

 (2) 2 кортежа 

 (3) 3 кортежа 

 (4) 6 кортежей 

 (5) 8 кортежей 

 (6) 9 кортежей 


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

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

SELECT Worker_name, Branch_title FROM __________________________

Ответ:

 (1) Worker, Branch 

 (2) Worker INNER JOIN Branch ON Worker.Branch_id = Branch.Branch_id 

 (3) Worker JOIN Branch USING (Branch_id) 

 (4) Worker CROSS JOIN Branch 

 (5) Worker RIGHT OUTER JOIN Branch ON Worker.Branch_id = Branch.Branch_id 


Упражнение 13:
Номер 1
Операциями внешнего соединения таблиц являются:
				

Ответ:

 (1) CROSS JOIN 

 (2) FULL JOIN 

 (3) LEFT JOIN 

 (4) NATURAL JOIN 

 (5) перечисление таблиц через запятую во фразе FROM 


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

Требуется получить имена студентов и номера специальностей, по которым они учатся.

SELECT Student_name, Specialty_id FROM ___________________________

Выберите фрагменты запроса (вместо знака подчеркивания), соответствующие заданию.


Ответ:

 (1) Students INNER JOIN Groups 

 (2) Students INNER JOIN Groups ON Group_id 

 (3) Students INNER JOIN Groups ON Students.Group_id = Groups.Group_id 

 (4) Students JOIN Groups USING (Group_id) 

 (5) Students NATURAL JOIN Groups ON Students.Group_id = Groups.Group_id 

 (6) Students OUTER JOIN Groups ON Students.Group_id = Groups.Group_id 


Номер 3
Пусть имеется таблица t1 со схемой t1: (f1 (varchar), f2 (integer)) и таблица t2 с такой же схемой. 

Требуется соединить таблицы t1 и t2 по столбцу f2.

Выберите фрагменты, соответствующие заданию.


Ответ:

 (1) t1 INNER JOIN t2 ON f2 

 (2) t1 INNER JOIN t2 ON t1.f2 = t2.f2 

 (3) t1 JOIN t2 USING (f2) 

 (4) t1 JOIN t2 USING t1.f2 = t2.f2 

 (5) t1 NATURAL JOIN t2 ON f2 

 (6) t1 NATURAL JOIN t2 USING (f2) 


Номер 4
Операциями внутреннего соединения таблиц являются:
				

Ответ:

 (1) CROSS JOIN 

 (2) FULL JOIN 

 (3) JOIN ... USING 

 (4) NATURAL JOIN 

 (5) RIGHT JOIN 


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

Требуется получить имя сотрудника и название отдела, в котором он работает.

SELECT Worker_name, Branch_title FROM _________________________

Выберите варианты фрагмента запроса (вместо знака подчеркивания), соответствующие заданию.


Ответ:

 (1) Worker INNER NATURAL JOIN Branch 

 (2) Worker NATURAL JOIN Branch 

 (3) Worker NATURAL JOIN Branch ON Worker.Branch_id = Branch.Branch_id 

 (4) Worker NATURAL JOIN Branch USING (Branch_id) 

 (5) Worker NATURAL JOIN Branch WHERE Worker.Branch_id = Branch.Branch_id 


Номер 6
Оператор JOIN ... USING отличается от оператора NATURAL JOIN тем, что
				

Ответ:

 (1) оператор JOIN ... USING соединяет таблицы по указанным одноименным столбцам 

 (2) в операторе JOIN ... USING можно указать любые столбцы, по которым следует соединить таблицы 

 (3) оператор NATURAL JOIN соединяет таблицы по первичным ключам 

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

 (5) эти операторы эквивалентны друг другу, отличий нет 


Упражнение 14:
Номер 1
Задать внешнее соединение таблиц можно с помощью конструкции
				

Ответ:

 (1) CROSS OUTER JOIN 

 (2) FULL OUTER JOIN 

 (3) JOIN ... USING 

 (4) LEFT OUTER JOIN 

 (5) перечисления через запятую имен таблиц во фразе FROM 


Номер 2
В таблице t1, содержащей 4 строки, в столбце f содержатся значения 1, 2, 2, 3. В таблице t2, содержащей 5 строк, в столбце f содержатся значения 2, 2, 3, 3, 4.

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

SELECT t2.f FROM t1 FULL OUTER JOIN t2 ON t1.f = t2.f

Ответ:

 (1) 3 

 (2) 4 

 (3) 5 

 (4) 6 

 (5) 8 

 (6) 9 


Номер 3
Укажите фрагменты (вместо знака подчеркивания), не вызывающие ошибок, при условии что столбец f в таблице t1 и столбец f в таблице t2 имеют тип данных INTEGER.

t1 INNER JOIN t2 ___________
				
				

Ответ:

 (1) ON f 

 (2) ON f > 4 WHERE t1.f = t2.f 

 (3) ON t1.f < t2.f 

 (4) ON t1.f = t2.f 

 (5) ON t1.f = t2.f AND f > 4 

 (6) WHERE t1.f = t2.f AND f > 4 


Номер 4
Внешнее соединение двух таблиц означает, что
				

Ответ:

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

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

 (3) исходные таблицы должны быть различными 

 (4) одна таблица берется из текущей базы данных, а вторая - из некоторой внешней базы данных 

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


Номер 5
В таблице t1, содержащей 4 строки, в столбце f содержатся значения 1, 2, 2, 3. В таблице t2, содержащей 6 строк, в столбце f содержатся значения 1, 2, 2, 3, 3, 4.

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

SELECT t2.f FROM t1 RIGHT OUTER JOIN t2 ON t1.f = t2.f

Ответ:

 (1) 4 

 (2) 6 

 (3) 7 

 (4) 8 

 (5) 10 


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

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


Ответ:

 (1) SELECT Branch_title FROM Worker FULL OUTER JOIN Branch ON Worker.Branch_id = Branch.Branch_id WHERE Worker_id IS NULL 

 (2) SELECT Branch_title FROM Branch LEFT OUTER JOIN Worker ON Branch.Branch_id = Worker.Branch_id WHERE Worker.Branch_id IS NULL 

 (3) SELECT Branch_title FROM Worker INNER JOIN Branch ON Worker.Branch_id = Branch.Branch_id GROUP BY Branch.Branch_id, Branch_title HAVING COUNT(Worker_id) = 0 

 (4) SELECT Branch_title FROM Worker INNER JOIN Branch ON Worker.Branch_id = Branch.Branch_id WHERE Worker_id IS NULL 

 (5) SELECT Branch_title FROM Worker RIGHT OUTER JOIN Branch ON Worker.Branch_id = Branch.Branch_id WHERE Worker_id IS NULL 


Упражнение 15:
Номер 1
Оператор JOIN реализует реляционную операцию
				

Ответ:

 (1) объединения 

 (2) пересечения 

 (3) проекции 

 (4) произведения 

 (5) соединения 


Номер 2
Чтобы сохранить все записи, в том числе повторяющиеся, в запросе

Запрос1 UNION Запрос2

необходимо:


Ответ:

 (1) добавить слово ALL в Запрос1 

 (2) добавить слово ALL в Запрос2 

 (3) добавить слово ALL и в Запрос1 и в Запрос2 

 (4) добавить слово ALL после слова UNION 

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


Номер 3
Таблица t1 имеет столбцы f1 (varchar) и f2 (integer).
Запрос SQL имеет следующий вид:

SELECT * FROM t1
UNION
SELECT * FROM t2

Данный запрос не вызовет ошибки, если таблица t2 имеет схему:
				

Ответ:

 (1) t2: f1 (varchar) 

 (2) t2: f2 (integer) 

 (3) t2: f1 (varchar), f2 (integer) 

 (4) t2: f1 (char), f2 (integer) 

 (5) t2: s1 (varchar), s2 (integer) 

 (6) t2: f1 (varchar), f2 (integer), f3 (date) 


Номер 4
Фраза UNION команды SELECT реализует реляционную операцию
				

Ответ:

 (1) выборки 

 (2) объединения 

 (3) проекции 

 (4) произведения 

 (5) соединения 


Номер 5
Пусть в таблице t1, содержащей 3 строки, имеется столбец f со значениями 1, 2, 3. Пусть в таблице t2, содержащей 4 строки, имеется столбец f со значениями 1, 3, 4, 5.
Сколько строк данных будет получено в результате выполнения следующего запроса:

SELECT f FROM t1
UNION
SELECT f FROM t2

				

Ответ:

 (1) 0 

 (2) 1 

 (3) 3 

 (4) 4 

 (5) 5 

 (6) 7 


Номер 6
Запрос SQL имеет вид:
Запрос1 UNION Запрос2

Чтобы в таблице после выполнения этого запроса остались только отличающиеся строки, необходимо:


Ответ:

 (1) добавить слово DISTINCT в Запрос1 

 (2) добавить слово DISTINCT в Запрос2 

 (3) добавить слово DISTINCT и в Запрос1, и в Запрос2 

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

 (5) оставить только отличающиеся записи невозможно 


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

Требуется получить имена студентов, обучающихся в 10-й и 20-й группах.

Выберите варианты запросов, соответствующие заданию.


Ответ:

 (1) SELECT Student_name FROM Students WHERE (Group_id = 10 UNION Group_id = 20) 

 (2) SELECT Student_name (FROM Students WHERE Group_id = 10 UNION FROM Students WHERE Group_id = 20) 

 (3) SELECT Student_name FROM Students WHERE Group_id = 10 UNION SELECT Student_name FROM Students WHERE Group_id = 20 

 (4) (SELECT Student_name FROM Students WHERE Group_id = 10) UNION SELECT Student_name FROM Students WHERE Group_id = 20 

 (5) SELECT Student_name FROM Students WHERE Group_id = 10 UNION (SELECT Student_name FROM Students WHERE Group_id = 20) 

 (6) (SELECT Student_name FROM Students WHERE Group_id = 10) UNION (SELECT Student_name FROM Students WHERE Group_id = 20) 


Номер 2
Оператор INTERSECT реализует реляционную операцию
				

Ответ:

 (1) деления 

 (2) объединения 

 (3) пересечения 

 (4) проекции 

 (5) разности 


Номер 3
Оператор EXCEPT реализует реляционную операцию
				

Ответ:

 (1) выборки 

 (2) деления 

 (3) пересечения 

 (4) проекции 

 (5) разности 


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

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


Ответ:

 (1) SELECT Worker_name FROM Worker UNION (SELECT b.Worker_name FROM Worker a, Worker b WHERE a.Manager_id = b.Worker_id) WHERE Branch_id = 10 

 (2) SELECT Worker_name FROM Worker WHERE Branch_id = 10 UNION (SELECT b.Worker_name FROM Worker a, Worker b WHERE a.Manager_id = b.Worker_id AND a.Branch_id = 10) 

 (3) SELECT b.Worker_name FROM Worker a INNER JOIN Worker b ON a.Manager_id = b.Worker_id AND a.Branch_id = 10 UNION SELECT Worker_name FROM Worker WHERE Branch_id = 10 

 (4) SELECT a.Worker_name, b.Worker_name FROM Worker a, Worker b WHERE a.Manager_id = b.Worker_id AND a.Branch_id = 10 

 (5) SELECT Worker_name FROM Worker WHERE Branch_id = 10 UNION SELECT b.Worker_name FROM Worker a, Worker b WHERE a.Manager_id = b.Worker_id AND a.Branch_id = 10 


Номер 5
В таблице t1, содержащей 4 строки, имеется столбец f со значениями 1, 2, 2, 3. В таблице t2, содержащей 5 строк, есть столбец f со значениями 2, 2, 3, 3, 4.
Сколько строк данных вернет следующий запрос:

SELECT f FROM t1
INTERSECT
SELECT f FROM t2

				

Ответ:

 (1) 0 

 (2) 2 

 (3) 3 

 (4) 4 

 (5) 7 

 (6) 9 


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

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


Ответ:

 (1) SELECT Worker_id FROM Worker EXCEPT SELECT Manager_id FROM Worker 

 (2) SELECT Worker_id FROM Worker INTERSECT SELECT Manager_id FROM Worker 

 (3) SELECT Worker_id FROM Worker UNION SELECT Manager_id FROM Worker 

 (4) SELECT Worker_id FROM Worker NOT IN SELECT Manager_id FROM Worker 

 (5) SELECT Worker_id FROM Worker <> SELECT Manager_id FROM Worker 

 (6) SELECT Worker_id FROM Worker WHERE Worker_id NOT IN (SELECT Manager_id FROM Worker) 


Упражнение 17:
Номер 1
Какие из перечисленных типов данных не относятся к вещественным типам:
			
				

Ответ:

 (1) TINYINT 

 (2) REAL 

 (3) FLOAT 

 (4) LONG 

 (5) TIMESTAMP 


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

Ответ:

 (1) SMALLINT 

 (2) BIT 

 (3) NUMERIC 

 (4) DECIMAL 

 (5) TIMESTAMP 


Номер 3
Какие из перечисленных типов данных не относятся к символьным типам:
				

Ответ:

 (1) VARCHAR2 

 (2) REAL 

 (3) CHAR 

 (4) VARCHAR 

 (5) STRING 


Номер 4
Какие из перечисленных типов данных относятся к символьным типам:
				

Ответ:

 (1) TIMESTAMP 

 (2) CHAR 

 (3) NCHAR 

 (4) STRING 

 (5) VARCHAR 


Номер 5
Какие из перечисленных типов данных используются для представления времени и даты (одновременно): 
				

Ответ:

 (1) TIMESTAMP 

 (2) DATE 

 (3) TIME 

 (4) TIME WITH TIME ZONE 

 (5) TIMESTAMP WITH TIME ZONE 


Номер 6

Отличие типов данных CHAR и VARCHAR заключается:


Ответ:

 (1) только в названии, оба обозначают один и тот же тип данных 

 (2) в том, что в отличие от CHAR переменные типа VARCHAR позволяют хранить данные переменной длины 

 (3) в том, что в отличие от VARCHAR переменные типа CHAR позволяют хранить данные переменной длины 

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


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

Оператор INSERT:


Ответ:

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

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

 (3) является оператором DDL 

 (4) может включать фразу VALUES 

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


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

Отношение Students1 является пустым и имеет схему:

Students1: Student_id (int, PK), Student_name (char), Head_stud_id (int), Math_scope (float), Lang_scope (float), Group_id (int)

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

INSERT INTO Students1 (Student_id, Student_name, Head_stud_id, Math_scope, Lang_scope, Group_id) AS SELECT * FROM Students ORDER BY Group_id DESC

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


Ответ:

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

 (2) в подзапросе SELECT вместо символа "*" следовало использовать перечисление всех столбцов таблицы Students  

 (3) ключевое слово AS является лишним  

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

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


Номер 3

Непосредственно после ключевого слова INSERT может следовать:


Ответ:

 (1) SELECT 

 (2) INTO TABLE 

 (3) INTO 

 (4) IN 

 (5) VALUES 


Номер 4

Оператор INSERT:


Ответ:

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

 (2) является оператором DML 

 (3) всегда приводит к завершению транзакции 

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

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


Номер 5

Фраза VALUES:


Ответ:

 (1) является обязательной в запросе INSERT 

 (2) может включать функции и выражения в списке вставляемых значений 

 (3) не может быть заменена подзапросом SELECT 

 (4) требует, чтобы число значений в скобках соответствовало числу столбцов, заданных во фразе INSERT 


Номер 6

Список значений во фразе VALUES может включать:


Ответ:

 (1) ключевое слово DEFAULT 

 (2) подзапрос 

 (3) значение NULL 

 (4) выражение или функцию 

 (5) ключевое слово TOP 


Упражнение 19:
Номер 1
Отношение Groups имеет схему:files 
Groups: Group_id (int PK), Grade_level (int), Specialty_id (int), Head_stud_id (int)

Запрос SQL предназначен для вставки в таблицу Groups новой строки и имеет вид:

INSERT INTO Groups VALUES (12, DEFAULT, NULL, 15)

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


Ответ:

 (1) в таблицу будет вставлена строка
Group_idGroup_gradeSpecialty_idHead_stud_id
120015
 

 (2) сервер БД сгенерирует ошибку, и операция будет отменена  

 (3) в таблицу будет вставлена строка
Group_idGroup_gradeSpecialty_idHead_stud_id
12NULLNULL15
 

 (4) в таблицу будет вставлена строка
Group_idGroup_gradeSpecialty_idHead_stud_id
120NULL15
 


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

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

INSERT _______ Students____________ VALUES (10, 15, ‘Martin’, 3.1)

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


Ответ:

 (1) первый фрагмент: INTO TABLE второй фрагмент: (Student_id, Head_stud_id, Math_scope, Student_name)  

 (2) первый фрагмент: INTO второй фрагмент: (Student_name, Student_id, Head_stud_id, Math_scope)  

 (3) первый фрагмент: INTO второй фрагмент: (Student_id, Head_stud_id, Student_name, Math_scope)  

 (4) первый фрагмент: INTO второй фрагмент: (Head_stud_id, Student_id, Student_name, Math_scope)  

 (5) первый фрагмент: IN второй фрагмент: (Student_id, Head_stud_id, Student_name, Math_scope)  


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

Отношение Groups1 является пустым и имеет схему:

Groups1: Group_id (int PK), Grade_level (int), Specialty_id (int FK), Head_stud_id (int)

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

INSERT INTO TABLE Groups1 (SELECT Group_id, Specialty_id, Grade_level, 12 FROM Groups)

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


Ответ:

 (1) заменить в подзапросе SELECT значение 12 на значение Head_stud_id  

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

 (3) удалить слово TABLE во фразе INSERT  

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


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

Запрос SQL предназначен для вставки в таблицу Branch новой строки и имеет вид:

INSERT INTO Branch VALUES (10, 11, ‘Research’)

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


Ответ:

 (1) в таблицу будет вставлена строка
Branch_idBranch_titleLocation_id
10Research11
 

 (2) сервер БД сгенерирует ошибку, и операция будет отменена  

 (3) в таблицу будет вставлена строка
Branch_idBranch_titleLocation_id
1011NULL
 

 (4) в таблицу будет вставлена строка
Branch_idBranch_titleLocation_id
1011Research
 


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

Запрос SQL предназначен для вставки в таблицу Worker новой строки и имеет вид:

INSERT _______ Worker____________ VALUES (10, 15, ‘Scott’, 1.1)

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


Ответ:

 (1) первый фрагмент: IN TABLE второй фрагмент: Worker_id, Branch_id, Worker_name, Commission_pct  

 (2) первый фрагмент: INTO второй фрагмент: Worker_id, Commission_pct, Worker_name, Salary  

 (3) первый фрагмент: INTO второй фрагмент: Worker_id, Worker_name, Branch_id, Commission_pct  

 (4) первый фрагмент: IN TABLE второй фрагмент: Worker_id, Branch_id, Worker_name, Commission_pct  

 (5) первый фрагмент: IN второй фрагмент: ничего не нужно  


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

Запрос SQL предназначен для вставки в таблицу Worker новой строки и имеет вид:

INSERT INTO Worker (Worker_id, Worker_name, Hire_date) ______________________________

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


Ответ:

 (1) ROW (10, ‘Tom’, ’12-JAN-03’)  

 (2) VALUES (20, ‘Collin’, CAST (’12.01.08’ AS DATE))  

 (3) SELECT (‘10’, ‘Mark’, ’12.01.08’)  

 (4) SELECT ‘10’, ‘Mark’, ’12.01.08’ 

 (5) VALUES (10, DEFAULT, DEFAULT, CAST (’12.01.08’ AS DATE)) 


Упражнение 20:
Номер 1
Отношение Groups имеет схему:files 
Groups: Group_id (int PK), Grade_level (int), Specialty_id (int), Head_stud_id (int)

Запрос SQL предназначен для вставки в таблицу Groups новой строки и имеет вид:

INSERT _______ Groups ________ (12, 1, 13, 15)

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


Ответ:

 (1) первый фрагмент: INTO TABLE второй фрагмент: VALUES 

 (2) первый фрагмент: IN TABLE второй фрагмент: VALUE 

 (3) первый фрагмент: IN второй фрагмент: ничего не нужно 

 (4) первый фрагмент: INTO второй фрагмент: VALUES 


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

Запрос SQL предназначен для вставки в таблицу Groups новой строки и имеет вид:

INSERT INTO Groups (Group_id, Head_stud_id) VALUES (10, DEFAULT, NULL, 15)

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


Ответ:

 (1) в таблицу будет вставлена строка
Group_idGroup_gradeSpecialty_idHead_stud_id
100NULL15
 

 (2) в таблицу будет вставлена строка
Group_idGroup_gradeSpecialty_idHead_stud_id
100015
 

 (3) в таблицу будет вставлена строка
Group_idGroup_gradeSpecialty_idHead_stud_id
10NULLNULL15
 

 (4) сервер БД сгенерирует ошибку, и операция будет отменена 


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

Запрос SQL предназначен для вставки в таблицу Groups новой строки и имеет вид:

INSERT INTO Groups (Group_id, Head_stud_id) SELECT 10, 55.4

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


Ответ:

 (1) в таблицу будет вставлена строка
Group_idGroup_gradeSpecialty_idHead_stud_id
10NULLNULL55.4
 

 (2) в таблицу будет вставлена строка
Group_idGroup_gradeSpecialty_idHead_stud_id
10NULLNULL56
 

 (3) в таблицу будет вставлена строка
Group_idGroup_gradeSpecialty_idHead_stud_id
10NULLNULL55
 

 (4) Сервер БД сгенерирует ошибку, и операция будет отменена 

 (5) в таблицу будет вставлена строка
Group_idGroup_gradeSpecialty_idHead_stud_id
10NULLNULLNULL
 


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

Запрос SQL предназначен для вставки в таблицу Branch новой строки и имеет вид:

INSERT INTO Branch _________ ________ (12, ‘Sales’, 15)

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


Ответ:

 (1) первый фрагмент: IN COLUMNS (Branch_id, Branch_title, Location_id) второй фрагмент: VALUES  

 (2) первый фрагмент: ничего не нужно второй фрагмент: ничего не нужно  

 (3) первый фрагмент: ничего не нужно второй фрагмент: VALUES  

 (4) первый фрагмент: (Branch_id, Branch_title, Location_id) второй фрагмент: ничего не нужно  

 (5) первый фрагмент: (Branch_id, Branch_title, Location_id) второй фрагмент: VALUES  


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

Запрос SQL предназначен для вставки в таблицу Branch новой строки и имеет вид:

INSERT INTO Branch VALUES (10, NULL)

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


Ответ:

 (1) сервер БД сгенерирует ошибку, и операция будет отменена 

 (2) в таблицу будет вставлена строка
Branch_idBranch_titleLocation_id
10NULLNULL
 

 (3) в таблицу будет вставлена строка
Branch_idBranch_titleLocation_id
10NULL0
 

 (4) в таблицу будет вставлена строка
Branch_idBranch_titleLocation_id
10NULL20
 


Номер 6
Отношение Branch является пустым и имеет схему:files
Branch: Branch_id (int PK), Branch_title (varchar (30)), Location_id (int, default=30)

Запрос SQL предназначен для вставки в таблицу Branch новой строки и имеет вид:

INSERT INTO Branch (Branch_id, Branch_title) SELECT 20.2, 17

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


Ответ:

 (1) в таблицу будет вставлена строка
Branch_idBranch_titleLocation_id
2117NULL
 

 (2) в таблицу будет вставлена строка
Branch_idBranch_titleLocation_id
2017NULL
 

 (3) в таблицу будет вставлена строка
Branch_idBranch_titleLocation_id
201730
 

 (4) сервер БД сгенерирует ошибку, и операция будет отменена 


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

и состоит из следующих кортежей:

Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Scott155.04.310
10TomNULL4.05.0NULL

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

INSERT INTO Students (Student_id, Student_name, Math_scope) VALUES (12, Martin, 4.1)

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


Ответ:

 (1) во фразе INSERT не хватает ключевого слова TABLE, которое должно следовать за ключевым словом INTO 

 (2) во второй строке слово VALUES является лишним 

 (3) во фразе VALUES определены значения не для всех столбцов таблицы Students 

 (4) строковая константа "Martin" должна быть заключена в апострофы 

 (5) вместо ключевого слова INTO следовало использовать слово IN 


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

и состоит из следующих кортежей:

Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Scott155.04.910
10TomNULL4.04.1NULL

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

INSERT INTO Students (Student_id, Math_scope, Student_name) VALUES (12, ‘Tom’, 2.1)

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


Ответ:

 (1) явно преобразовать вещественное значение во фразе VALUES в тип float с помощью функции cast 

 (2) заменить ключевое слово INTO словосочетанием INTO TABLE 

 (3) поменять местами во фразе INSERT названия столбцов Math_scope и Student_name  

 (4) вместо значения ‘Tom’ использовать строковое значение ‘1.2’ 


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

и состоит из следующих кортежей:

Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
11Scott155.04.310
10TomNULL4.05.0NULL

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

INSERT INTO Students (Student_id, Math_scope, Student_name) VALUES (12, ____ ’Allen’)

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


Ответ:

 (1) 4.5-0.6,  

 (2) ничего не вставлять 

 (3) 3.3  

 (4) NULL,  

 (5) DEFAULT,  


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

и состоит из следующих кортежей:

Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1510000.81020.05.98
12Alex17900NULL2021.06.98

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

INSERT INTO Worker (Worker_id, Worker_name, Salary) SELECT 14, ‘Martin’, ‘1000,5’

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


Ответ:

 (1) во фразе INSERT не хватает ключевого слова TABLE, которое должно следовать за ключевым словом INTO 

 (2) во второй строке вместо слова SELECT следовало использовать слово VALUES 

 (3) во фразе SELECT определены значения не для всех столбцов таблицы Worker 

 (4) список значений столбцов для новой строки не заключен в скобки 

 (5) невозможно выполнить преобразование строковой константы ‘1000,5’ в значение типа float 


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

и состоит из следующих кортежей:

Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1510000.81020.05.98
12Alex17900NULL2021.06.98

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

INSERT INTO Worker (Worker_id, Hire_date, Worker_name) VALUES (13, ‘Tomas’, ’01/04/2003’)

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


Ответ:

 (1) явно преобразовать строковое значение даты во фразе VALUES в тип timestamp с помощью функции CAST 

 (2) поменять местами во фразе INSERT названия столбцов Hire_date и Worker_name 

 (3) вместо строки ’01/04/2003’, использовать строку ’01.04.2003 00:00:00.000’ 

 (4) вместо значения ‘Tomas’ использовать значение NULL 


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

и состоит из следующих кортежей:

Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1510000.81020.05.98
12Alex17900NULL2021.06.98

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

INSERT INTO Worker (Worker_id, Commission_pct, Worker_name) VALUES (13, ____ ’Allen’)

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


Ответ:

 (1) DEFAULT,  

 (2) ничего не вставлять 

 (3) NULL  

 (4) 1.3,  

 (5) CAST (‘1.3’ AS float),  


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

Отношение Students1 имеет схему:

Students1: Student_id (int, PK), Student_name (char), Head_stud_id (int), Math_scope (float), Lang_scope (float), Group_id (int)

Запрос SQL предназначен для копирования информации о студентах учебной группы №20 из таблицы Students в таблицу Students1:

INSERT INTO Students1 (Student_id, Student_name, Math_scope) ___________________

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


Ответ:

 (1) SELECT Student_id, Student_name, Math_scope FROM Students WHERE Group_id=20  

 (2) VALUES (SELECT Student_id, Student_name, Math_scope FROM Students WHERE Group_id=20)  

 (3) SELECT * FROM Students WHERE Group_id=20  

 (4) AS SELECT Student_id, Student_name, Math_scope FROM Students WHERE Group_id=20  

 (5) (SELECT Student_id, Student_name, Math_scope FROM Students WHERE Group_id=20)  


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

Отношение Groups1 имеет схему:

Groups1: Group_id (int PK), Grade_level (int), Specialty_id (int FK), Head_stud_id (int)

Запрос SQL предназначен для копирования информации обо всех учебных группах второго курса (Grade_level=2) из таблицы Groups в таблицу Groups1:

INSERT INTO Groups1 (Group_id, Grade_level, Specialty_id) ___________________

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


Ответ:

 (1) SELECT Group_id, Grade_level, Specialty_id FROM Groups WHERE Grade_level=2  

 (2) VALUES (Group_id, Grade_level, Specialty_id FROM Groups WHERE Grade_level=2)  

 (3) SELECT * FROM Groups WHERE Grade_level=2  

 (4) SELECT Group_id, Grade_level, Specialty_id FROM Groups WHERE Grade_level=2 ORDER BY Grade_level  


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

Отношение Groups1 является пустым и имеет схему:

Groups1: Group_id (int PK), Grade_level (int), Specialty_id (int FK), Head_stud_id (int)

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

INSERT INTO Groups1 (Group_id, Grade_level, Specialty_id) SELECT Group_id, Grade_level, ’22,2’ FROM Groups WHERE Group_id=10 ORDER BY Grade_level

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


Ответ:

 (1) выражение ORDER BY недопустимо в подзапросе, использующемся в операторе INSERT  

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

 (3) строковая константа во фразе SELECT подзапроса не может быть преобразована в значение типа int  

 (4) подзапрос не заключен в скобки  


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

Отношение Worker1 имеет схему:

Worker1: Worker_id (int, PK), Worker_name (varchar (30)), Manager_id (int), Salary (float), Commission_pct (float), Branch_id (int, FK), Hire_date (timestamp)

Запрос SQL предназначен для копирования информации о сотрудниках отдела №20 из таблицы Worker в таблицу Worker1:

INSERT INTO Worker1 (Worker_id, Worker_name, Salary) ___________________

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


Ответ:

 (1) VALUES (Worker_id, Worker_name, Salary FROM Worker WHERE Branch_id=20)  

 (2) SELECT Worker_id, Worker_name, Salary FROM Worker WHERE Branch_id=20  

 (3) (SELECT Worker_id, Worker_name, Salary FROM Worker WHERE Branch_id=20)  

 (4) SELECT * FROM Worker WHERE Group_id=20 

 (5) AS SELECT Worker_id, Worker_name, Salary FROM Worker WHERE Branch_id=20 


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

Отношение Worker1 является пустым и имеет схему:

Worker1: Worker_id (int, PK), Worker_name (varchar (30)), Manager_id (int), Salary (float, NOT NULL), Commission_pct (float), Branch_id (int), Hire_date (timestamp)

Запрос SQL предназначен для вставки новой строки в таблицу Worker1 о сотруднике с именем Robin и окладом, равным среднему значению оклада в 20 отделе, рассчитываемому по данным таблицы Worker.

INSERT INTO Worker1 (Worker_id, Salary, Worker_name) ___________________

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


Ответ:

 (1) VALUES (12, CASE (Branch_id) WHEN 20 THEN AVG(Salary), ‘Robin’)  

 (2) VALUES (12, SELECT AVG(Salary) FROM Worker WHERE Branch_id=20, ‘Robin’)  

 (3) SELECT 12, AVG(Salary), ‘Robin’ FROM Worker WHERE Branch_id=20  

 (4) 12, SELECT AVG(Salary) FROM Worker WHERE Branch_id=20, ‘Robin’  


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

Отношение Branch1 является пустым и имеет схему:

Branch1: Branch_id (int PK), Branch_title (varchar (30)), Location_id (int, default=30)

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

INSERT INTO Branch1 (Branch_id, Branch_title) SELECT Branch_id, Branch_title, NULL FROM Branch WHERE Branch_id=20

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


Ответ:

 (1) подзапрос возвращает избыточное число значений 

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

 (3) значение NULL недопустимо во фразе SELECT 

 (4) подзапрос не заключен в скобки 


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

Фраза SET:


Ответ:

 (1) не является обязательной в запросе UPDATE 

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

 (3) может включать подзапросы 

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

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


Номер 2
Какие из перечисленных выражений могут следовать непосредственно за ключевым словом UPDATE:
				

Ответ:

 (1) название таблицы 

 (2) ключевое слово LIMIT 

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

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

 (5) ключевое слово TABLE 


Номер 3
Оператор UPDATE:
				

Ответ:

 (1) является оператором DDL 

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

 (3) может включать подзапросы во фразе SET 

 (4) является оператором DCL 

 (5) может включать подзапросы во фразе WHERE 


Номер 4
 

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


Ответ:

 (1) фраза SET 

 (2) фраза SET COLUMN 

 (3) фраза COLUMN 

 (4) фраза WHERE 

 (5) фраза SET VALUES 


Номер 5
Какие из перечисленных выражений могут следовать непосредственно за ключевым словом UPDATE:

Ответ:

 (1) ключевое слово CASCADE 

 (2) ключевое слово OBJECT 

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

 (4) ключевое слово TABLE 

 (5) название таблицы 


Номер 6

Оператор UPDATE:


Ответ:

 (1) Является оператором DCL 

 (2) Является оператором DML 

 (3) Всегда приводит к фиксации транзакции 

 (4) может включать подзапросы во фразе WHERE 


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

Запрос предназначен для снижения на 10% успеваемости по математике (Math_scope) и ин. языку (Lang_scope) среди студентов учебной группы №20.

UPDATE Students SET _______________ WHERE Group_id = 20

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


Ответ:

 (1) Math_scope*0.9 AND Lang_scope*0.9  

 (2) Math_scope = Math_scope*0.9 AND Lang_scope = Lang_scope*0.9  

 (3) Math_scope = Math_scope*0.9, Lang_scope = Lang_scope*0.9  

 (4) Math_scope, Lang_scope = (Math_scope*0.9, Lang_scope*0.9)  


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

Запрос предназначен для внесения изменений в записи о студентах учебной группы №20. Для указанных записей номер группы должен быть изменен на 30, а значение в поле Head_stud_id стать равным 15.

UPDATE Students __________________ WHERE Group_id = 20

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


Ответ:

 (1) COLUMN Head_stud_id = 15, Group_id =30  

 (2) SET Head_stud_id = 15, SET Group_id =30  

 (3) SET Head_stud_id = 15 AND Group_id =30  

 (4) SET Head_stud_id = 15, Group_id =30  

 (5) SET COLUMNS Head_stud_id = 15, Group_id =30 


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

Запрос предназначен для снижения баллов на 20% по математике (Math_scope) и ин. языку (Lang_scope) среди студентов учебной группы №10.

UPDATE Students ____ Math_scope = Math_scope*0.8_________ Lang_scope = Lang_scope*0.8 ____ Group_id = 10

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


Ответ:

 (1) Первый фрагмент: COLUMNS; второй фрагмент: cимвол ","; третий фрагмент: WHEN  

 (2) Первый фрагмент: ASSIGN; второй фрагмент: AND; третий фрагмент: IF  

 (3) Первый фрагмент: SET; второй фрагмент: cимвол ","; третий фрагмент: WHERE  

 (4) Первый фрагмент: SET; второй фрагмент: AND; третий фрагмент: WHERE  

 (5) Первый фрагмент: SET; второй фрагмент: cимвол ","; третий фрагмент: WHEN 


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

Запрос предназначен для снижения на 10% оклада (Salary) и премии (Commission_pct) сотрудникам отдела №10.

UPDATE Worker SET _______________ WHERE Branch_id = 10

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


Ответ:

 (1) Salary = Salary*0.9 AND Commission_pct = Commission_pct*0.9 

 (2) Salary = Salary*0.9, Commission_pct = Commission_pct*0.9 

 (3) Salary*0.9 AND Commission_pct*0.9 

 (4) Salary, Commission_pct = (Salary*0.9, Commission_pct*0.9) 


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

Запрос предназначен для внесения изменений в записи о сотрудниках отдела №10. Для указанных записей номер отдела должен быть изменен на 30, а значение в поле Manager_id стать равным 13.

UPDATE Worker __________________ WHERE Branch_id = 10

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


Ответ:

 (1) SET VALUES (Branch_id = 30, Manager_id = 13) 

 (2) SET (Branch_id = 30, Manager_id = 13) 

 (3) COLUMN Branch_id = 30, Manager_id = 13 

 (4) SET Branch_id = 30, Manager_id = 13 

 (5) SET Branch_id = 30 AND Manager_id = 13 


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

Запрос предназначен для снижения окладов (Salary) и премий (Commission_pct) на 10% у сотрудников отдела № 10.

UPDATE Worker ____ Salary = Salary*0.9_________ Commission_pct = Commission*0.9 ____ Branch_id = 10

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


Ответ:

 (1) Первый фрагмент: SET; второй фрагмент: cимвол ","; третий фрагмент: WHERE  

 (2) Первый фрагмент: COLUMNS; второй фрагмент: AND; третий фрагмент: IF  

 (3) Первый фрагмент: VALUES; второй фрагмент: AND; третий фрагмент: WHERE  

 (4) Первый фрагмент: SET; второй фрагмент: cимвол ","; третий фрагмент: WHEN  

 (5) Первый фрагмент: SET COLUMNS; второй фрагмент: cимвол ","; третий фрагмент: WHEN 


Упражнение 25:
Номер 1
Отношение Groups имеет схему:files 
Groups: Group_id (int PK), Grade_level (int), Specialty_id (int FK), Head_stud_id (int)

Запрос предназначен для перевода группы № 10 на третий курс (Grade_level=3) и назначения группе № 20 нового старосты (Head_stud_id) – студента с номером 15.

UPDATE Groups SET________________ __________________

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


Ответ:

 (1) первый фрагмент: Grade_level = 3, Head_stud_id = 15 второй фрагмент: WHERE Group_id = 10, 20 

 (2) первый фрагмент: Grade_level = 3, Head_stud_id = 15 второй фрагмент: WHERE Group_id = 10, Group_id= 20 

 (3) первый фрагмент: Grade_level = 3 WHERE Group_id = 10, Head_stud_id = 15 WHERE Group_id = 20 второй фрагмент: ничего не нужно 

 (4) первый фрагмент: Grade_level = CASE Group_id WHEN 10 THEN 3 END, Head_stud_id = CASE Group_id WHEN 20 THEN 15 END второй фрагмент: ничего не нужно 

 (5) первый фрагмент: Grade_level = CASE Group_id WHEN 10 THEN 3 ELSE Grade_level END, Head_stud_id = CASE Group_id WHEN 20 THEN 15 ELSE Head_stud_id END второй фрагмент: ничего не нужно 


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

Запрос предназначен для увеличения оценки по математике (Math_scope) студентам группы №20 на 10% и студентам группы №30 на 20%.

UPDATE Students SET________________ ____________________

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


Ответ:

 (1) первый фрагмент: Math_scope = Math_scope*1.1, Math_scope = Math_scope*1.2 второй фрагмент: WHERE Group_id = 20, 30 

 (2) первый фрагмент: Math_scope = Math_scope*1.1, Math_scope = Math_scope*1.2 второй фрагмент: WHEN Group_id = 20, Group_id= 30 

 (3) первый фрагмент: Math_scope = Math_scope*1.1 WHERE Group_id = 20 AND Math_scope = Math_scope*1.2 WHERE Group_id = 30 второй фрагмент: ничего не нужно 

 (4) первый фрагмент: Math_scope = CASE Group_id WHEN 20 THEN Math_scope*1.1 WHEN 30 THEN Math_scope*1.2 ELSE Math_scope END второй фрагмент: ничего не нужно 

 (5) первый фрагмент: Math_scope = CASE Group_id WHEN 20 THEN Math_scope*1.1 END, Math_scope = CASE Group_id WHEN 30 THEN Math_scope*1.2 END второй фрагмент: ничего не нужно 


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

Запрос предназначен для изменения специальности группы № 10 на специальность с идентификатором Specialty_id = 12 и назначения группе № 30 нового старосты Head_stud_id – студента с номером 17.

UPDATE Groups _________________ _________________

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


Ответ:

 (1) первый фрагмент: SET Specialty_id = CASE Group_id WHEN 10 THEN 12 ELSE Specialty_id END, Head_stud_id = CASE Group_id WHEN 30 THEN 17 ELSE Head_stud_id END второй фрагмент: ничего не нужно 

 (2) первый фрагмент: SET Specialty_id = 12, Head_stud_id = 17 второй фрагмент: WHERE Group_id = 10, 30 

 (3) первый фрагмент: SET Specialty_id = 12, Head_stud_id = 17 второй фрагмент: WHERE Group_id = 10, Group_id = 30 

 (4) первый фрагмент: SET Specialty_id = CASE Group_id WHEN 10 THEN 12 END, Head_stud_id = CASE Group_id WHEN 30 THEN 17 END второй фрагмент: ничего не нужно 

 (5) первый фрагмент: CASE Group_id WHEN 10 THEN SET Specialty_id = 12, WHEN 30 THEN SET Head_stud_id = 17 END второй фрагмент: ничего не нужно 


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

Запрос предназначен для перевода отдела № 10 в новое место расположения (Location_id=12) и задания отделу № 20 нового названия – Consulting.

UPDATE Branch SET________________ WHERE_____________

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


Ответ:

 (1) первый фрагмент: VALUES (Location_id = 12, Branch_title = ‘Consulting’) второй фрагмент: Branch_id = 10, 20  

 (2) первый фрагмент: Location_id = CASE Branch_id WHEN 10 THEN 12 END, Branch_title = CASE Branch_id WHEN 20 THEN ‘Consulting’ END второй фрагмент: ничего не нужно  

 (3) первый фрагмент: Location_id = 12 IF Branch_id = 10, Branch_title = ‘Consulting’ IF Branch_id = 20 второй фрагмент: ничего не нужно  

 (4) первый фрагмент: Location_id = 12 AND Branch_title = ‘Consulting’ второй фрагмент: Branch_id = 10, Branch_id= 20  

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


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

Запрос предназначен для увеличения премий сотрудникам, у которых оклад меньше 800, на 10% и уменьшения премий сотрудникам, у которых оклад выше 2000, на 20%.

UPDATE Worker SET________________ ____________________

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


Ответ:

 (1) первый фрагмент: Commission_pct = Commission_pct*1.1, Commission_pct = Commission_pct*0.8 второй фрагмент: WHERE Salary < 800, Salary > 2000  

 (2) первый фрагмент: Commission_pct = CASE WHEN Salary < 800 THEN Commission_pct*1.1 WHEN Salary > 2000 THEN Commission_pct*0.8 ELSE Commission_pct END второй фрагмент: ничего не нужно  

 (3) первый фрагмент: Commission_pct = Commission_pct*1.1, Commission_pct = Commission_pct*0.8 второй фрагмент: WHERE Salary < 800 AND Salary > 2000  

 (4) первый фрагмент: Commission_pct = Commission_pct*1.1 WHERE Salary < 800 AND Commission_pct = Commission_pct*0.8 WHERE Salary > 2000 второй фрагмент: ничего не нужно  


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

Запрос предназначен для увеличения сотруднику с номером 15 оклада на 20% и перевода сотрудника с номером 17 в отдел №20.

UPDATE Worker _________________ _________________

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


Ответ:

 (1) первый фрагмент: CASE Worker_id WHEN 15 THEN SET Salary = Salary*1.2, WHEN 17 THEN SET Branch_id = 20 END второй фрагмент: ничего не нужно  

 (2) первый фрагмент: SET Salary = Salary*1.2 AND Branch_id = 20 второй фрагмент: WHERE Worker_id = 15 AND 17  

 (3) первый фрагмент: SET Salary = Salary*1.2, Branch_id = 20 второй фрагмент: WHERE Worker_id = 15, Worker_id=17  

 (4) первый фрагмент: SET Salary = CASE Worker_id WHEN 15 THEN Salary*1.2 END, Branch_id = CASE Worker_id WHEN 17 THEN 20 END второй фрагмент: ничего не нужно  

 (5) первый фрагмент: SET Salary = CASE Worker_id WHEN 15 THEN Salary*1.2 ELSE Salary END, Branch_id = CASE Worker_id WHEN 17 THEN 20 ELSE Branch_id END второй фрагмент: ничего не нужно  


Упражнение 26:
Номер 1
Отношение Students состоит из кортежей:files 
				
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex284.210.010
11Tom153.98.020
Отношение Groups состоит из кортежей:
Group_idGroup_gradeHead_stud_idSpecialty_id
10515123
203NULL11

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

UPDATE Students SET Lang_scope = (SELECT AVG (Lang_scope)*1.1 FROM Students) WHERE Group_id IN (SELECT Group_id FROM Groups WHERE Group_grade = 3)

Среди предложенных вариантов выберите, каким, в итоге, останется отношение Students.


Ответ:

 (1) отношение Students останется без изменений, т.к. запрос содержит ошибку, и выполнен не будет  

 (2)
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex284.210.010
11Tom153.99.920
 

 (3)
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex284.210.010
11Tom153.99.020
 

 (4)
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex284.29.910
11Tom153.99.920
 


Номер 2
Отношение Students состоит из кортежей:files 
								
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex284.24.410
11Tom153.93.120

Отношение Groups состоит из кортежей:

Group_idGroup_gradeHead_stud_idRating
10515low
203NULLhigh

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

UPDATE Groups SET Rating = ‘HIGH’ WHERE Group_id IN (SELECT Group_id FROM Students WHERE (Math_scope + Lang_scope)/2 >= 4.2)

Среди предложенных вариантов выберите, каким, в итоге, останется отношение Groups.


Ответ:

 (1) отношение Groups останется без изменений, т.к. запрос содержит ошибку, и выполнен не будет  

 (2)
Group_idGroup_gradeHead_stud_idRating
10515High
203NULLhigh
 

 (3)
Group_idGroup_gradeHead_stud_idRating
10515Low
203NULLHigh
 

 (4)
Group_idGroup_gradeHead_stud_idRating
10515HIGH
203NULLhigh
 


Номер 3
Отношение Students состоит из кортежей:files 
								
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex284.210.010
11Tom153.98.020

Отношение Students1 состоит из кортежей:

Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
13Alexis124.612.010
15Li154.96.020

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

UPDATE Students SET Lang_scope = (SELECT MAX (Lang_scope)*1.1 FROM Students1) WHERE Group_id IN (SELECT Group_id FROM Students1 GROUP BY Group_id HAVING MIN (Lang_scope) > 6.0)

Среди предложенных вариантов выберите, каким, в итоге, останется отношение Students.


Ответ:

 (1) отношение Students останется без изменений, т.к. запрос содержит ошибку, и выполнен не будет  

 (2)
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex284.213.210
11Tom153.98.020
 

 (3)
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex284.211.010
11Tom153.98.020
 

 (4)
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex284.211.010
11Tom153.98.020
 


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

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

UPDATE Worker SET Salary = AVG (Salary), Manager_id = 11 WHERE Worker_name LIKE ‘J%’

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


Ответ:

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

 (2) соединить выражения для столбцов во фразе SET союзом AND вместо запятой 

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

 (4) поместить групповую функцию во фразе SET в подзапрос: (SELECT функция FROM Worker) 

 (5) вместо ключевого слова SET использовать словосочетание SET TABLE 


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

Отношение Branch состоит из следующих кортежей:

Branch_idBranch_titleLocation_idRating
10Accounting11High
20Finance12Low

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

UPDATE Branch SET Rating = ‘HIGH’ WHERE Branch_id = (SELECT Branch_id FROM Worker GROUP BY Branch_id HAVING AVG (Salary + Salary*Commission_pct)>1100)

Среди предложенных вариантов выберите, каким, в итоге, останется отношение Groups.


Ответ:

 (1) отношение Groups останется без изменений, т.к. запрос содержит ошибку, и выполнен не будет.  

 (2)
Branch_idBranch_titleLocation_idRating
10Accounting11High
20Finance12High
 

 (3)
Branch_idBranch_titleLocation_idRating
10Accounting11HIGH
20Finance12HIGH
 

 (4)
Branch_idBranch_titleLocation_idRating
10Accounting11HIGH
20Finance12Low
 


Номер 6
Отношение Worker состоит из кортежей: files
								
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11James1511000.81002.01.98
12Ronald191100NULL2015.07.98

Отношение Worker1 состоит из кортежей:

Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
13Tom169000.71020.05.98
14Alex188000.52021.06.98

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

UPDATE Worker SET Salary = (SELECT MAX (Salary)*1.1 FROM Worker1) WHERE Branch_id IN (SELECT Branch_id FROM Worker1 GROUP BY Branch_id HAVING MIN (Salary*Commission_pct) > 600)

Среди предложенных вариантов выберите, каким, в итоге, останется отношение Worker.


Ответ:

 (1) отношение Worker останется без изменений, т.к. запрос содержит ошибку, и выполнен не будет  

 (2)
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11James1512100.81002.01.98
12Ronald191100NULL2015.07.98
 

 (3)
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11James159900.81002.01.98
12Ronald19990NULL2015.07.98
 

 (4)
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11James159900.81002.01.98
12Ronald19990NULL2015.07.98
 

 (5)
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11James159900.81002.01.98
12Ronald191100NULL2015.07.98
 


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

Запрос предназначен для удаления записей о студентах учебной группы №20.

DELETE _________Students ____________ Group_id = 20

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


Ответ:

 (1) Первый фрагмент: FROM TABLE второй фрагмент: WHERE 

 (2) Первый фрагмент: ничего, второй фрагмент: WHERE 

 (3) Первый фрагмент: FROM, второй фрагмент: WHEN 

 (4) Первый фрагмент: FROM, второй фрагмент: IF 

 (5) Первый фрагмент: FROM, второй фрагмент: WHERE 


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

Запрос предназначен для удаления записей о студентах учебной группы №20, с баллом по математике (Math_scope), меньшим 3.5.

DELETE FROM _________Students ______________________________

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


Ответ:

 (1) первый фрагмент: TABLE, второй фрагмент: WHERE Group_id = 20 AND Math_scope < 3.5 

 (2) первый фрагмент: ничего, второй фрагмент: WHERE Group_id = 20 OR Math_scope < 3.5 

 (3) первый фрагмент: TABLE, второй фрагмент: WHEN Group_id = 20 AND Math_scope < 3.5 

 (4) первый фрагмент: ничего, второй фрагмент: IF Group_id = 20 OR Math_scope < 3.5 

 (5) первый фрагмент: ничего, второй фрагмент: WHERE Group_id = 20 AND Math_scope < 3.5 


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

Отношение Groups имеет схему:

Groups: Group_id (int PK), Grade_level (int), Specialty_id (int FK), Head_stud_id (int)

Запрос предназначен для удаления записей о студентах пятого курса (Grade_level).

DELETE _________Students ________________________

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


Ответ:

 (1) Первый фрагмент: FROM TABLE второй фрагмент: WHERE Group_id = (SELECT Group_id FROM Groups WHERE Grade_level = 5) 

 (2) Первый фрагмент: FROM второй фрагмент: WHERE Group_id IN (SELECT Group_id FROM Groups WHERE Grade_level = 5) 

 (3) Первый фрагмент: FROM второй фрагмент: WHEN Group_id IN (SELECT Group_id FROM Groups WHERE Grade_level = 5) 

 (4) Первый фрагмент: FROM TABLE второй фрагмент: IF Group_id IN (SELECT Group_id FROM Groups WHERE Grade_level = 5) 


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

Запрос предназначен для удаления записей о сотрудниках отдела №30.

DELETE _________Worker ____________ Branch_id = 30

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


Ответ:

 (1) Первый фрагмент: FROM, второй фрагмент: WHERE 

 (2) Первый фрагмент: ничего, второй фрагмент: WHERE 

 (3) Первый фрагмент: ROWS FROM, второй фрагмент: IF 

 (4) Первый фрагмент: FROM TABLE второй фрагмент: WHERE 

 (5) Первый фрагмент: FROM, второй фрагмент: WHEN 


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

Запрос предназначен для удаления записей о сотрудниках отдела №20, у которых в поле Manager_id имеется значение 13.

DELETE FROM _________Worker ______________________________

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


Ответ:

 (1) первый фрагмент: ничего, второй фрагмент: WHERE Branch_id = 20 OR Manager_id = 13 

 (2) первый фрагмент: ничего, второй фрагмент: WHERE Branch_id = 20 AND Manager_id = 13 

 (3) первый фрагмент: TABLE, второй фрагмент: WHEN Branch_id = 20 AND Manager_id = 13 

 (4) первый фрагмент: ничего, второй фрагмент: IF Branch_id = 20 OR Manager_id = 13 

 (5) первый фрагмент: TABLE, второй фрагмент: WHERE Branch_id = 20 AND Manager_id = 13  


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

Отношение Branch имеет схему

Branch: Branch_id (int PK), Branch_title (varchar (30)), Location_id (int, default=30)

Запрос предназначен для удаления записей о сотрудниках, работающих в отделе Accounting (Branch_title).

DELETE _________Worker ________________________

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


Ответ:

 (1) Первый фрагмент: FROM TABLE второй фрагмент: WHERE Branch_id = (SELECT Branch_id FROM Branch WHERE Branch_title = ‘Accounting’) 

 (2) Первый фрагмент: ROWS FROM второй фрагмент: WHERE Branch_id = (SELECT Branch_id FROM Branch WHERE Branch_title LIKE ‘Accounting’) 

 (3) Первый фрагмент: FROM второй фрагмент: WHERE Branch_id IN (SELECT Branch_id FROM Branch WHERE Branch_title = ‘Accounting’) 

 (4) Первый фрагмент: FROM второй фрагмент: WHEN Branch_id = (SELECT Branch_id FROM Branch WHERE Branch_title = ‘Accounting’) 


Упражнение 28:
Номер 1
Выражение предназначено для описания столбца Math_scope типа float в новой таблице Student1. Столбец не должен принимать значение NULL, и его значением по умолчанию должно быть значение 3.5.

CREATE TABLE Student1
(…..
Math_scope_____________________
……)

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


Ответ:

 (1) FLOAT DEFAULT Math_scope = 3.5 NOT NULL  

 (2) FLOAT IS NOT NULL DEFAULT (3.5)  

 (3) FLOAT, NOT NULL, DEFAULT 3.5  

 (4) NOT NULL FLOAT DEFAULT VALUE = 3.5  

 (5) FLOAT NOT NULL DEFAULT 3.5  


Номер 2

Ключевое слово CONSTRAINT в предложении CREATE TABLE:


Ответ:

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

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

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

 (4) не может использоваться при определении столбца вместе с фразой DEFAULT  


Номер 3

Оператор CREATE TABLE:


Ответ:

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

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

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

 (4) может включать фразу ORDER BY  

 (5) может включать фразу TEMPORARY 


Номер 4
К столбцам какого типа при создании таблицы с помощью оператора CREATE TABLE могут применяться параметры: precision, scale (точность, масштаб)?

Ответ:

 (1) float, real  

 (2) int, bit  

 (3) decimal, smallint  

 (4) numeric, decimal  


Номер 5

Ключевое слово CONSTRAINT в предложении CREATE TABLE:


Ответ:

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

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

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

 (4) может использоваться при определении столбца вместе с фразой PRIMARY KEY  


Номер 6

Оператор CREATE TABLE:


Ответ:

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

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

 (3) предназначен для создания таблиц  

 (4) может включать логические выражения  

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


Упражнение 29:
Номер 1
Выражение предназначено для описания столбца Salary типа int в новой таблице Worker1. Столбец не должен принимать значение NULL, и его значением по умолчанию должно быть значение 800.

					
CREATE TABLE Worker1
(…..
Salary_____________________
……)

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


Ответ:

 (1) INT NOT NULL DEFAULT 800  

 (2) INT NOT NULL WITH DEFAULT 800  

 (3) INT IS NOT NULL WHEN DEFAULT 800  

 (4) INT DEFAULT VALUE = 800 NOT NULL  

 (5) INT, NOT NULL, DEFAULT 800  


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

CREATE TABLE t1
nom INT PRIMARY KEY, 
name VARCHAR(30) NOT NULL DEFAULT ('noname'),
salary INT DEFAULT 300

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


Ответ:

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

 (2) удалить ограничение NOT NULL в определении столбца name 

 (3) заключить все выражение после фразы CREATE TABLE в скобки 

 (4) добавить непосредственно после первой строки предлог AS 


Номер 3
Какие из перечисленных выражений могут использоваться для определения полей, которые не могут принимать повторяющиеся значения, в предложении CREATE TABLE:
				

Ответ:

 (1) Book_id FLOAT IS NOT NULL  

 (2) Book_id FLOAT DIFFERENT  

 (3) Book_id FLOAT PRIMARY KEY  

 (4) Book_id FLOAT UNIQUE  


Номер 4
Какие из перечисленных выражений могут использоваться для определения полей со значением по умолчанию в предложении CREATE TABLE:

Ответ:

 (1) Branch_id INT DEFAULT (20) 

 (2) Branch_id INT 20 BY DEFAULT 

 (3) Branch_id INT DEFAULT VALUE = 20 

 (4) Branch_id INT WITH DEFAULT 20 

 (5) Branch_id INT DEFAULT 20 


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

CREATE TABLE t1
(
nom INT PRIMARY KEY, 
name VARCHAR(30) NOT NULL DEFAULT ('noname'),
salary DECIMAL(2, 3) DEFAULT 3
)

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


Ответ:

 (1) заменить значение 3 во фразе DEFAULT на значение, меньшее 1 

 (2) удалить фразу DEFAULT в определении столбца name  

 (3) изменить второй параметр в определении типа DECIMAL столбца salary на 1  

 (4) удалить скобки во фразе DEFAULT  


Номер 6
Какие из перечисленных выражений могут использоваться для определения полей, которые не могут принимать значение NULL, в предложении CREATE TABLE:

Ответ:

 (1) Person_id INT PRIMARY KEY 

 (2) Person_id INT IS NOT NULL 

 (3) Person_id INT NOT NULL 

 (4) Person_id INT NOT EQUALS NULL 

 (5) Person_id INT NOT EMPTY 


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

Ограничение FOREIGN KEY:


Ответ:

 (1) включает в себя ограничение UNIQUE 

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

 (3) обязательно должно содержать фразу ON DELETE 

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

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


Номер 2

Ограничение CHECK:


Ответ:

 (1) позволяет реализовывать простейшие ограничения бизнес-логики  

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

 (3) задает список допустимых значений столбца в виде CHECK (значение1, значение2, ...) 

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


Номер 3

Ограничение PRIMARY KEY:


Ответ:

 (1) включает в себя ограничение NOT NULL 

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

 (3) включает в себя ограничение UNIQUE 

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

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


Номер 4

Ограничение PRIMARY KEY:


Ответ:

 (1) абсолютно равнозначно комбинации ограничений NOT NULL и UNIQUE 

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

 (3) является ограничением ссылочной целостности  

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

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


Номер 5

Для определения ограничений могут использоваться ключевые слова:


Ответ:

 (1) NULL  

 (2) FOREIGN KEY REFERENCES  

 (3) CHECK 

 (4) RANGE  

 (5) PRIMARY KEY 


Номер 6

Ограничение FOREIGN KEY


Ответ:

 (1) включает в себя ограничение NOT NULL 

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

 (3) может быть в отношении только единственным 

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

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


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

Ответ:

 (1) UNIQUE  

 (2) PRIMARY KEY  

 (3) FOREIGN KEY  

 (4) NOT NULL  

 (5) CHECK  


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

Ответ:

 (1) CHECK  

 (2) UNIQUE  

 (3) NOT NULL  

 (4) PRIMARY KEY  

 (5) FOREIGN KEY  


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

Ответ:

 (1) NOT NULL 

 (2) CHECK 

 (3) UNIQUE 

 (4) PRIMARY KEY 

 (5) FOREIGN KEY 


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

Ответ:

 (1) CHECK 

 (2) UNIQUE 

 (3) NOT NULL 

 (4) PRIMARY KEY 


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

Ответ:

 (1) CHECK 

 (2) FOREIGN KEY 

 (3) NOT NULL 

 (4) PRIMARY KEY 

 (5) UNIQUE 


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

Ответ:

 (1) CHECK  

 (2) NOT NULL  

 (3) UNIQUE  

 (4) PRIMARY KEY  

 (5) FOREIGN KEY  


Упражнение 32:
Номер 1
Для создания таблицы Groups использовалась следующая команда:files 

CREATE TABLE Groups
(Group_id INT PRIMARY KEY,
 Grade_level INT,
 Head_stud_id INT,
 Specialty_id INT REFERENCES Specialties (Specialty_id) DEFAULT 20
) 

Отношение Groups состоит из кортежей:

Group_idGroup_gradeHead_stud_idSpecialty_id
1531510

Отношение Specialties состоит из следующих кортежей:

Specialty_idSpecialty_titleSpecialty_rating
10Account9.8
20Sales6.2

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

DELETE FROM Specialties WHERE Specialty_id=10

Укажите, каким в результате выполнения данного запроса окажется отношение Groups:


Ответ:

 (1) отношение Groups останется без изменений  

 (2) отношение Groups окажется пустым  

 (3)
Group_idGroup_gradeHead_stud_idSpecialty_id
15315NULL
 

 (4)
Group_idGroup_gradeHead_stud_idSpecialty_id
1531520
 


Номер 2
Для создания таблицы Students использовалась следующая команда:files 

CREATE TABLE Students
(Student_id INT PRIMARY KEY,
 Student_name VARCHAR(20),
 Head_stud_id INT,
 Math_scope FLOAT NOT NULL,
 Lang_scope FLOAT NOT NULL,
 Group_id INT REFERENCES Groups (Group_id) ON UPDATE CASCADE DEFAULT 20
) 

Отношение Students состоит из кортежей:

Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex283.510.010

Отношение Groups состоит из кортежей

Group_idGroup_gradeHead_stud_idSpecialty_id
10315123

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

UPDATE Groups SET Group_id=40 WHERE Group_id=10

Укажите, каким в результате выполнения данного запроса окажется отношение Students:


Ответ:

 (1) Отношение Students останется без изменений  

 (2)
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex283.510.0NULL
 

 (3)
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex283.510.040
 

 (4)
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex283.510.020
 


Номер 3
Для создания таблицы Students использовалась следующая команда:files 

CREATE TABLE Students
(Student_id INT PRIMARY KEY,
 Student_name VARCHAR(20),
 Head_stud_id INT,
 Math_scope FLOAT NOT NULL,
 Lang_scope FLOAT NOT NULL,
 Group_id INT REFERENCES Groups (Group_id) ON DELETE CASCADE DEFAULT 20
) 

Отношение Students состоит из кортежей:

Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex283.510.010

Отношение Groups состоит из кортежей

Group_idGroup_gradeHead_stud_idSpecialty_id
10315123

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

DELETE FROM Groups WHERE Group_id=10

Укажите, каким в результате выполнения данного запроса окажется отношение Students:


Ответ:

 (1) отношение Students останется без изменений  

 (2)
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex283.510.0NULL
 

 (3)
Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex283.510.020
 

 (4) отношение Students окажется пустым  


Номер 4
Для создания таблицы Worker использовалась следующая команда:files

CREATE TABLE Worker
(Worker_id INT PRIMARY KEY,
 Manager_id INT,
 Hire_date TIMESTAMP,
 Worker_name VARCHAR(20),
 Salary FLOAT NOT NULL, 
 Commission_pct FLOAT NOT NULL,
 Branch_id INT REFERENCES Branch(Branch_id) ON DELETE SET NULL DEFAULT 20
) 

Отношение Worker состоит из кортежей:

Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1510000.81020.05.98

Отношение Branch состоит из следующих кортежей:

Branch_idBranch_titleLocation_id
10Accounting11
20Accounting12

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

DELETE FROM Branch WHERE Branch_id=10

Укажите, каким в результате выполнения данного запроса окажется отношение Worker:


Ответ:

 (1) отношение Worker останется без изменений  

 (2)
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1510000.82020.05.98
 

 (3)
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1510000.8NULL20.05.98
 

 (4) отношение Worker окажется пустым  


Номер 5
Для создания таблицы Worker использовалась следующая команда:files

CREATE TABLE Worker
(Worker_id INT PRIMARY KEY,
 Manager_id INT,
 Hire_date TIMESTAMP,
 Worker_name VARCHAR(20),
 Salary FLOAT NOT NULL, 
 Commission_pct FLOAT NOT NULL,
 Branch_id INT REFENCES Branch (Branch_id) ON DELETE SET DEFAULT DEFAULT 20
) 

Отношение Worker состоит из кортежей:

Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1510000.81020.05.98

Отношение Branch состоит из кортежей:

Branch_idBranch_titleLocation_id
10Accounting11

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

UPDATE Branch SET Branch_id = 40 WHERE Branch_id = 10

Укажите, каким в результате выполнения данного запроса окажется отношение Worker:


Ответ:

 (1) отношение Worker останется без изменений, так как будет сгенерирована ошибка  

 (2)
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1510000.82020.05.98
 

 (3)
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1510000.8NULL20.05.98
 

 (4)
Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1510000.84020.05.98
 


Номер 6
Для создания таблицы Branch использовалась следующая команда:files

CREATE TABLE Branch
(Branch_id INT PRIMARY KEY,
 Branch_title VARCHAR(20),
 Location_id INT REFERENCES Location (Location_id) DEFAULT 20
) 

Отношение Branch состоит из кортежей:

Branch_idBranch_titleLocation_id
20Sales10

Отношение Location состоит из следующих кортежей:

Location_idCountry_nameCity_nameStreetBuilding
10Account9.8Zhukov12
20Sales 6.2Lenin13

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

UPDATE Location SET Location_id = 80 WHERE Location_id=10

Укажите, каким в результате выполнения данного запроса окажется отношение Branch:


Ответ:

 (1) отношение Branch останется без изменений  

 (2) отношение Branch окажется пустым  

 (3)
Branch_idBranch_titleLocation_id
20SalesNULL
 

 (4)
Branch_idBranch_titleLocation_id
20Sales20
 


Упражнение 33:
Номер 1
Запрос предназначен для создания таблицы Students, связанной с таблицей Groups ограничением ссылочной целостности по столбцам Students.Group_id, Groups.Group_id, гарантирующим, что при удалении записи о некоторой группе, записи о студентах, принадлежащих этой группе, автоматически будут переназначаться группе с номером 20.files 

CREATE TABLE Students
(Student_id INT PRIMARY KEY,
 Student_name VARCHAR(20),
 Math_scope FLOAT NOT NULL, 
 Lang_scope FLOAT NOT NULL,
 Group_id INT ________________________
) 

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


Ответ:

 (1) REFERENCES Groups (Group_id) ON DELETE SET DEFAULT 20  

 (2) REFERENCES Groups (Group_id) ON DELETE SET DEFAULT DEFAULT 20  

 (3) DEFAULT 20, CONSTRAINT fk_st FOREIGN KEY REFERENCES Groups (Group_id) ON DELETE SET DEFAULT  

 (4) DEFAULT 20, CONSTRAINT FOREIGN KEY REFERENCES Groups (Group_id) ON DELETE SET DEFAULT  

 (5) REFERENCES ON Groups ON DELETE SET DEFAULT DEFAULT = 20  


Номер 2
Запрос предназначен для создания таблицы Students, для которой установлено ограничение, гарантирующее, что столбец Student_id будет принимать только уникальные значения, отличные от NULL.files 

CREATE TABLE Students
(
Student_name VARCHAR(20),
Math_scope FLOAT NOT NULL, 
Lang_scope FLOAT NOT NULL,
Student_id INT  _____________________
) 

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


Ответ:

 (1) UNIQUE, NOT NULL  

 (2) NOT NULL, UNIQUE (Student_id)  

 (3) UNIQUE NOT NULL  

 (4) UNIQUE, CONSTRAINT pk_st NOT NULL (Student_id)  

 (5) NOT NULL, UNIQUE  


Номер 3
Запрос предназначен для создания таблицы Students с ограничением целостности, гарантирующим, что сумма в столбцах Math_scope и Lang_scope не будет меньше 4.files 

CREATE TABLE Students
(Student_id INT PRIMARY KEY,
 Student_name VARCHAR(20),
 Math_scope FLOAT NOT NULL, 
 Lang_scope FLOAT NOT NULL _____________________
) 

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


Ответ:

 (1) CHECK (Math_scope + Lang_scope >= 4)  

 (2) , CHECK (Math_scope + Lang_scope >= 4)  

 (3) , CONSTRAINT chek_total_bal CHECK (Math_scope + Lang_scope >= 4)  

 (4) , CHECK Math_scope + Lang_scope >= 4  

 (5) , CONSTRAINT CHECK (Math_scope + Lang_scope >= 4)  


Номер 4
Запрос предназначен для создания таблицы Worker с ограничением целостности, гарантирующим, что сумма (Salary + Salary*Commission_pct) не будет больше 5000.files

CREATE TABLE Worker
(Worker_id INT PRIMARY KEY,
 Manager_id INT,
 Hire_date TIMESTAMP,
 Worker_name VARCHAR(20),
 Branch_id INT,
 Salary FLOAT NOT NULL, 
 Commission_pct FLOAT NOT NULL________________
) 

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


Ответ:

 (1) CHECK (Salary + Salary*Commission_pct <=5000)  

 (2) CHECK Salary + Salary*Commission_pct <=5000  

 (3) , CONSTRAINT chk_sal CHECK (Salary + Salary*Commission_pct <=5000)  

 (4) , CHECK (Salary + Salary*Commission_pct <=5000)  

 (5) , CONSTRAINT CHECK (Salary + Salary*Commission_pct <=5000)  


Номер 5
Запрос предназначен для создания таблицы Worker, для которой установлено ограничение, гарантирующее, что столбец  Manager_id будет принимать только значения 1 и 2.files

CREATE TABLE Worker
(Worker_id INT PRIMARY KEY,
 Hire_date TIMESTAMP,
 Worker_name VARCHAR(20),
 Salary FLOAT NOT NULL, 
 Commission_pct FLOAT NOT NULL,
 Branch_id int,
 Manager_id int ______
) 

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


Ответ:

 (1) CHECK (Manager_id = 1 OR 2)  

 (2) CHECK (Manager_id = 1 OR Manager_id = 2)  

 (3) , CONSTRAINT CHECK (Manager_id IN (1,2))  

 (4) , CONSTRAINT chk_man CHECK (Manager_id IN (1,2))  

 (5) , CHECK (Manager_id IN (1,2))  


Номер 6
Запрос предназначен для создания таблицы Worker, первичным ключом которой является совокупность столбцов:files
				 
Worker_id, Manager_id.
CREATE TABLE Worker
(Worker_id INT _________,
 Worker_name VARCHAR (20),
 Salary FLOAT NOT NULL, 
 Commission_pct FLOAT NOT NULL,
 Manager_id INT ________________________
) 

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


Ответ:

 (1) первый фрагмент: PRIMARY KEY второй фрагмент: PRIMARY KEY  

 (2) первый фрагмент: CONSTRAINT pk_worker PRIMARY KEY второй фрагмент: CONSTRAINT pk_worker PRIMARY KEY  

 (3) первый фрагмент: ничего второй фрагмент: , PRIMARY KEY (Worker_id, Manager_id)  

 (4) первый фрагмент: ничего второй фрагмент: , CONSTRAINT PRIMARY KEY (Worker_id, Manager_id)  


Упражнение 34:
Номер 1
Для создания таблицы Students использовалась следующая команда:files 

CREATE TABLE Students
(Student_id INT PRIMARY KEY,
 Student_name VARCHAR(20),
 Head_stud_id INT,
 Math_scope FLOAT NOT NULL,
 Lang_scope FLOAT NOT NULL,
 Group_id INT REFERENCES Groups (Group_id)
) 

Отношение Students состоит из кортежей:

Student_idStudent_nameHead_stud_idMath_scopeLang_scopeGroup_id
12Alex283.510.010

Отношение Groups состоит из кортежей

Group_idGroup_gradeHead_stud_idSpecialty_id
10315123

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

DELETE FROM Groups WHERE Group_id=10

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


Ответ:

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

 (2) неверный синтаксис оператора DELETE  

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

 (4) для внешнего ключа Branch_id таблицы Students не задана секция ON DELETE, поэтому удаление любых записей таблицы Branch невозможно  


Номер 2
Для создания таблицы Students использовалась следующая команда:files 
CREATE TABLE Students
(Student_id INT PRIMARY KEY,
 Student_name VARCHAR(20),
 Math_scope FLOAT NOT NULL, 
 Lang_scope FLOAT NOT NULL, 
 CONSTRAINT ch_ls CHECK (Lang_scope > = SELECT AVG (Lang_scope) FROM Students1)
) 

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


Ответ:

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

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

 (3) в определении ограничения PRIMARY KEY не задано имя ограничения  

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


Номер 3
Для создания таблицы Students использовалась следующая команда:files 

CREATE TABLE Students
(Student_id INT PRIMARY KEY,
 Student_name VARCHAR(20),
 Math_scope FLOAT NOT NULL, 
 Group_id INT REFERENCES Groups (Group_id) ON DELETE CASCADE DEFAULT 10
) 

Отношение Groups состоит из кортежей

Group_idGroup_gradeHead_stud_idSpecialty_id
10315123

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

INSERT INTO Students (Student_id, Student_name, Math_scope, Group_id) VALUES (14, DEFAULT, '2.98', 20)

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


Ответ:

 (1) во фразе VALUES недопустимо использование ключевого слова DEFAULT, так как для поля Student_name не задано значение по умолчанию  

 (2) невозможно выполнить преобразование строки '2.98' в значение типа FLOAT  

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

 (4) ключевое слово INTO может использоваться только в словосочетании INTO TABLE  


Номер 4
Для создания таблицы Worker использовалась следующая команда:files

CREATE TABLE Worker
(Worker_id INT PRIMARY KEY,
 Manager_id INT PRIMARY KEY,
 Hire_date TIMESTAMP,
 Worker_name VARCHAR(20),
 Branch_id INT REFERENCES Branch,
 Salary DECIMAL(3, 2) NOT NULL, 
 Commission_pct FLOAT NOT NULL
) 

В результате выполнения запроса сервер БД генерирует ошибку. Укажите правильную причину возникновения ошибки, при условии, что первичным ключом в таблице Branch является столбец Branch_id


Ответ:

 (1) в определении таблицы не может дважды встречаться определение ограничения PRIMARY KEY  

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

 (3) некорректное определение типа столбца Salary  

 (4) в определении внешнего ключа не хватает словосочетания FOREIGN KEY  


Номер 5
Для создания таблицы Worker использовалась следующая команда:files

CREATE TABLE Worker
(Worker_id INT PRIMARY KEY,
 Manager_id INT REFERENCES Manager (Manager_nom),
 Hire_date TIMESTAMP,
 Worker_name VARCHAR (20),
 Salary FLOAT NOT NULL,
 Commission_pct FLOAT NOT NULL,
 Branch_id INT REFERENCES Branch (Branch_id),
 CONSTRAINT con123 NOT NULL (Manager_id)
) 

В результате выполнения запроса сервер БД генерирует ошибку. Укажите правильную причину ошибки при условии, что таблица Manager существует, и в ней присутствует столбец Manager_nom типа int:


Ответ:

 (1) в определении внешнего ключа пропущено словосочетание FOREIGN KEY  

 (2) в определении таблицы присутствует два ограничения FOREIGN KEY  

 (3) в определении ограничения PRIMARY KEY не задано имя ограничения  

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


Номер 6
Для создания таблицы Worker использовалась следующая команда:files

CREATE TABLE Worker
(Worker_id INT PRIMARY KEY,
 Manager_id INT,
 Hire_date TIMESTAMP,
 Worker_name VARCHAR(20),
 Salary DECIMAL(6, 2) NOT NULL,
 Commission_pct DECIMAL(3, 2) NOT NULL,
 Branch_id INT REFERENCES Branch (Branch_id) ON UPDATE SET NULL DEFAULT 20
 CHECK (Salary + Salary * Commission_pct >= 1800)
) 

Отношение Worker состоит из кортежей:

Worker_idWorker_nameManager_idSalaryCommission_pctBranch_idHire_date
11Tom1510000.91020.05.98

Отношение Branch состоит из кортежей

Branch_idBranch_titleLocation_id
10SalesNULL

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

UPDATE Worker SET Commission_pct = 0.8, Branch_id = 20 WHERE Branch_id=10

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


Ответ:

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

 (2) выражение Salary + Salary * Commission_pct для новой строки принимает значение, не превышающее 1800  

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

 (4) в таблице Branch отсутствует запись об отделе с номером 20  


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

Оператор ALTER TABLE может использоваться для:


Ответ:

 (1) добавления столбцов 

 (2) создания и удаления индексов любых столбцов таблицы 

 (3) удаления столбцов 

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


Номер 2

Фраза ALTER COLUMN в предложении ALTER TABLE может использоваться для:


Ответ:

 (1) определения нового ограничения DEFAULT 

 (2) создания нового столбца 

 (3) удаления существующего ограничения DEFAULT 

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

 (5) удаления существующего столбца 


Номер 3

Оператор DROP во фразе ALTER TABLE может использоваться для:


Ответ:

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

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

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

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


Номер 4
Для создания таблицы Worker использовалось следующее определение:files

CREATE TABLE Worker
(Worker_id INT PRIMARY KEY,
 Manager_id INT,
 Hire_date TIMESTAMP,
 Worker_name VARCHAR(20),
 Salary FLOAT NOT NULL,
 Commission_pct FLOAT NOT NULL,
 Branch_id INT REFERENCES Branch (Branch_id) ON DELETE SET NULL DEFAULT 20
) 

Укажите, какие фразы предложения ALTER TABLE позволят задать значение по умолчанию столбцу Salary


Ответ:

 (1) ADD DEFAULT 800 TO Salary  

 (2) ADD CONSTRAINT DEFAULT 800 FOR Salary  

 (3) ALTER COLUMN Salary FLOAT NOT NULL DEFAULT = 800  

 (4) MODIFY COLUMNS (Salary FLOAT NOT NULL DEFAULT = 800)  

 (5) ALTER COLUMN Salary SET DEFAULT 800 


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

Ответ:

 (1) DROP 

 (2) DROP COLUMN  

 (3) DELETE COLUMN 

 (4) DELETE 


Номер 6
Для создания таблицы Worker использовалось следующее определение:files

CREATE TABLE Worker
(Worker_id INT PRIMARY KEY,
 Manager_id INT,
 Hire_date TIMESTAMP,
 Worker_name VARCHAR(20),
 Salary FLOAT DEFAULT 800,
 Branch_id INT REFERENCES Branch (Branch_id),
)  

Запрос предназначен для вставки в таблицу Worker нового столбца Commission_pct c ограничением, устанавливающим минимальное значение для этого столбца, равное 0.1

ALTER TABLE Worker ___________________

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


Ответ:

 (1) ADD COLUMN Commission_pct CHECK (Commission_pct >= 0.1)  

 (2) ADD COLUMN Commission_pct FLOAT CHECK (Commission_pct >= 0.1)  

 (3) ADD COLUMN Commission_pct FLOAT DEFAULT 0.1  

 (4) ADD COLUMN Commission_pct FLOAT ADD CONSTRAINT c1 CHECK (Commission_pct >= 0.1)  


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

Отношение Groups имеет схему:

Groups: Group_id (int PK), Grade_level (int), Specialty_id (int FK), Head_stud_id (int)

Для создания представления используется запрос:

CREATE VIEW view1 (Id, Name_of_Student, Group) AS__________________________

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


Ответ:

 (1) SELECT Student_id, Student_name, Group_id FROM Students  

 (2) SELECT * FROM Students  

 (3) SELECT Student_id, Student_name, g.Group_id FROM Students s, Groups g WHERE s.Group_id = g.Group_id AND g.Specialty_id = 20  

 (4) Student_id Id, Student_name Name_of_Student, Group_id Group FROM Students  


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

Отношение Groups имеет схему:

Groups: Group_id (int PK), Grade_level (int), Specialty_id (int FK), Head_stud_id (int)

Для создания представления, в которое должны попасть только имена студентов второго курса, используется запрос:

CREATE VIEW view1 AS__________________________

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


Ответ:

 (1) (SELECT Student_name FROM Students JOIN Groups ON Students.Group_id = Groups.Group_id) WITH CHECK OPTION Grade_level = 2  

 (2) SELECT Student_name FROM Students, Groups WHERE Students.Group_id = Groups.Group_id AND Grade_level = 2  

 (3) (SELECT Student_name FROM Students JOIN Groups ON Students.Group_id = Groups.Group_id AND Grade_level = 2)  

 (4) WITH CHECK OPTION Grade_level=2 (SELECT Student_name FROM Students JOIN Groups ON Students.Group_id = Groups.Group_id)  


Номер 3
Отношение Student_grade имеет схему:files 
Student_grade: Grade_id (int PK), Lowest_total_scope (float), Highest_total_scope (float)

Отношение Students имеет схему:

Students: Student_id (int, PK), Student_name (varchar (30)), Head_stud_id (int), Math_scope (float, NOT NULL), Lang_scope (float, NOT NULL), Group_id (int, FK)

Для создания представления, в которое должны попасть только имена студентов с рейтингом (Grade_id), равным 1, используется запрос:

CREATE VIEW view1 ___ (SELECT Student_name FROM Students, Student_grade WHERE Math_scope + Lang_scope <= Highest_total_scope AND Math_scope + Lang_scope >= Lowest_total_scope AND Grade_id = 1)

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


Ответ:

 (1) AS  

 (2) ничего  

 (3) BASING ON  

 (4) AS SUBQUERY  

 (5) WITH CHECK OPTION  


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

Отношение Worker имеет схему:

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

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

CREATE VIEW view1 ___ (SELECT Worker_name FROM Worker w, Branch b WHERE w.Branch_id = b.Branch_id AND b.Branch_title LIKE ‘ACCOUNTING’ )

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


Ответ:

 (1) Ничего  

 (2) ON  

 (3) FROM  

 (4) AS  

 (5) WITH CHECK OPTION  


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

Отношение Branch имеет схему:

Branch: Branch_id (int PK), Branch_title (varchar (30)), Location_id (int)

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

CREATE _______SELECT Worker_name FROM Worker w, Branch b WHERE w.Branch_id = b.Branch_id AND Branch_title LIKE ‘Research’

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


Ответ:

 (1) VIEW AS  

 (2) view1 AS  

 (3) VIEW view1  

 (4) VIEW view1 AS SUBQUERY  

 (5) VIEW view1 AS  


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

Отношение Branch имеет схему:

Branch: Branch_id (int PK), Branch_title (varchar (30)), Location_id (int)

Для создания представления используется запрос:

CREATE VIEW view1 (Id, Worker_name, Branch) AS__________________________

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


Ответ:

 (1) SELECT Worker_id, Worker_name, Branch_id FROM Worker  

 (2) (Worker_id, Worker_name, Branch_id FROM Worker)  

 (3) SELECT * FROM Worker  

 (4) SELECT Worker_id, Worker_name, b.Branch_id FROM Worker w, Branch b WHERE w.Branch_id = b.Branch_id AND b.Branch_title LIKE ’Res%’  


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

Для создания представления использовалась команда:

CREATE VIEW view1 AS SELECT * FROM Students WHERE Group_id = 10 WITH CHECK OPTION

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

INSERT INTO view1 (Student_id, Student_name, Group_id) VALUES (10, ‘Peter’, 20)

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


Ответ:

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

 (2) нарушено ограничение целостности, заданное при создании представления view1  

 (3) после ключевого слова INTO не хватает слова VIEW  

 (4) ключевое слово VALUES является лишним  


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

Для создания представления использовалась команда:

CREATE VIEW view1 (St_name, St_no, Math_scope) AS SELECT * FROM Students WHERE Student_id = 10 WITH CHECK OPTION

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


Ответ:

 (1) после фразы WITH CHECK OPTION отсутствует логическое условие  

 (2) во фразе WITH CHECK OPTION пропущено название создаваемого ограничения  

 (3) число столбцов, заданных во фразе CREATE VIEW не совпадает с числом столбцов, возвращаемых подзапросом  

 (4) ключевое слово AS является лишним  

 (5) подзапрос не заключен в скобки  


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

Для создания индекса столбца Student_name используется запрос:

CREATE ______________

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


Ответ:

 (1) INDEX FOR Students (Student_name) 

 (2) INDEX index1 ON Students (Student_name) 

 (3) INDEX ON Students.Student_name 

 (4) INDEXES index1 FOR Students (Student_name) 


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

Для создания индекса столбца таблицы Worker_name таблицы Worker, используется запрос:

CREATE ______________

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


Ответ:

 (1) INDEX index1 ON Worker (Worker_name) 

 (2) INDEX TO Worker (Worker_name) 

 (3) INDEX index1 ON TABLE Worker COLUMN Worker_name 

 (4) INDEXES index1 FOR Worker (Worker_name) 


Номер 5

Фраза WITH CHECK OPTION в предложении CREATE VIEW:


Ответ:

 (1) создает новое ограничение  

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

 (3) является обязательной  

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

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


Номер 6

Представления:


Ответ:

 (1) представляют собой физические копии строк из существующих таблиц  

 (2) хранятся в системном каталоге (словаре данных)  

 (3) обязательно включают фразу SELECT  

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

 (5) могут создаваться на основе только одной таблицы  


Упражнение 38:
Номер 1
Запрос предназначен для предоставления привилегии на просмотр таблицы Students зарегистрированному пользователю базы данных User1: 
GRANT ________________User1

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


Ответ:

 (1) PERMISSION SELECT Students TO 

 (2) SELECT ON Students FOR 

 (3) SELECT ON Students TO 

 (4) SELECTION ON Students FOR 

 (5) SELECTION ON Students TO 


Номер 2
Запрос предназначен для удаления привилегии на обновление столбца Lang_scope таблицы Students у зарегистрированного пользователя базы данных User1. files 
REVOKE________________User1

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


Ответ:

 (1) UPDATE COLUMN Lang_scope IN Students FROM 

 (2) UPDATE (Lang_scope) ON Students FROM 

 (3) PRIVILEGE UPDATE ON Students (Lang_scope) TO 

 (4) PERMISSION UPDATE ON Lang_scope (Students) FOR 

 (5) UPDATE ON Lang_scope (Students) FROM 


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

Ответ:

 (1) WITH ADMIN OPTION 

 (2) WITH GRANT OPTION 

 (3) CAN GRANT 

 (4) CAN REGRANT PERMISSIONS 


Номер 4
Запрос предназначен для того, чтобы разрешить обновление столбца Salary таблицы Worker зарегистрированному пользователю базы данных User1. files
____________________User1

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


Ответ:

 (1) PERMIT UPDATE ON Worker (Salary) TO User1 

 (2) GRANT TO User1 UPDATE ON Worker (Salary) 

 (3) GRANT UPDATE TABLE Worker COLUMN Salary TO User1 

 (4) PERMIT UPDATE Worker (Salary) FOR User1 

 (5) GRANT UPDATE(Salary) ON Worker TO User1 


Номер 5
Запрос предназначен для того, чтобы запретить обновление значений в столбце (Salary) таблицы Worker зарегистрированному в базе данных пользователю User1. files
__________ UPDATE (Salary) ON Worker FROM User1

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


Ответ:

 (1) REVOKE PRIVILEGES 

 (2) REVOKE AS ANY USER 

 (3) REVOKE 

 (4) DENY AS ANY USER 

 (5) DELETE PRIVILEGES 


Номер 6
Запрос предназначен для предоставления привилегии на просмотр таблицы Worker зарегистрированному пользователю базы данных User1. files
__________________TO User1

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


Ответ:

 (1) GRANT SELECTION ON Worker 

 (2) GRANT SELECT ON Worker 

 (3) PERMIT SELECT FROM Worker 

 (4) PERMIT SELECT ON TABLE Worker 

 (5) GRANT SELECT FROM Worker 


Упражнение 39:
Номер 1
Запрос предназначен для удаления привилегии на вставку данных в таблицу Students у пользователя User1. files 
REVOKE FROM User1 INSERT ON Students 

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


Ответ:

 (1) вместо ключевого слова REVOKE следовало использовать ключевое слово DENY 

 (2) ключевое слово ON является лишним 

 (3) вместо слова FROM следовало использовать слово TO 

 (4) фраза INSERT должна идти сразу после слова REVOKE 


Номер 2
Запрос предназначен для предоставления привилегии на вставку данных в таблицу Students зарегистрированному в базе данных пользователю User1. files 
GRANT INSERTION ON Students TO User1

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


Ответ:

 (1) вместо ключевого слова ON следовало использовать ключевое слово IN после слова INSERTION 

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

 (3) после ключевого слова TO пропущено ключевое слово USER 

 (4) вместо слова INSERTION следовало использовать слово INSERT 


Номер 3
Запрос предназначен для предоставления привилегии на вставку данных в таблицу Students зарегистрированному в базе данных пользователю User1. files 
GRANT INSERT ON Students TO User1
WITH ADMIN OPTION

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


Ответ:

 (1) вместо предлога ON следовало использовать предлог IN после слова INSERT 

 (2) вместо слова INSERT следовало использовать слово INSERTION 

 (3) фраза WITH ADMIN OPTION является недопустимой 

 (4) вместо предлога TO следовало использовать предлог FOR 


Номер 4
				Запрос выполняется предназначен для того, чтобы запретить вставку данных в таблицу Worker зарегистрированному в базе данных пользователю User1. files
DROP INSERT ON Worker FROM User1

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


Ответ:

 (1) заменить слово INSERT словом INSERTION 

 (2) заменить предлог FROM предлогом TO 

 (3) заменить слово DROP словом DENY и заменить предлог FROM предлогом TO 

 (4) заменить слово DROP словом REVOKE 

 (5) заменить слово DROP словом DELETE 


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

Ответ:

 (1) SELECT 

 (2) INSERT 

 (3) DELETE 

 (4) REFERENCES 

 (5) UPDATE 


Номер 6
Запрос предназначен для удаления привилегии на вставку данных в таблицу Worker и просмотр этой же таблицы у пользователя User1. files
REVOKE INSERT AND SELECT ON Worker FROM User1

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


Ответ:

 (1) вместо ключевого слова REVOKE следовало использовать ключевое слово DENY 

 (2) после слова INSERT следовало добавить ON Worker 

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

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


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

Ответ:

 (1) READ COMMITTED  

 (2) READ UNCOMMITTED 

 (3) REPEATABLE WRITE 

 (4) SERIAL 

 (5) SEVERE 


Номер 2
Выберите из предложенных вариантов самый строгий (т.е. надежный или не допускающий нарушений целостности сохранения или представления данных) уровень изоляции транзакций (ISOLATION LEVEL)
				

Ответ:

 (1) REPEATABLE READ  

 (2) READ COMMITTED 

 (3) READ UNCOMMITTED 

 (4) SERIALIZABLE 


Номер 3
Укажите режим изоляции транзакций (ISOLATION LEVEL), который позволяет осуществлять чтение строк, измененных незафиксированными транзакциями.
				

Ответ:

 (1) REPEATABLE READ  

 (2) READ COMMITTED 

 (3) READ UNCOMMITTED 

 (4) SERIALIZABLE 


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

Ответ:

 (1) REPEATABLE READ 

 (2) SERIALIZABLE 

 (3) READ COMMITTED 

 (4) READ UNCOMMITTED 


Номер 5
Выберите команды (запросы), выполнение которых всегда приводит к завершению транзакции:
				

Ответ:

 (1) SAVE TRAN t  

 (2) INSERT INTO имя_таблицы VALUES (значения)  

 (3) ROLLBACK  

 (4) COMMIT  

 (5) CREATE TABLE имя таблицы (определение столбцов и ограничений)  


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

Ответ:

 (1) EXIT имя точки сохранения  

 (2) ROLLBACK  

 (3) CANCEL  

 (4) STOP  

 (5) ABORT  




Главная / Базы данных / SQL / Тест 1