Практические задания по SQL

 

В таблице Products необходимо отсортировать товары по сорту (Sort), а затем по наименованию (поле Product)
SELECT Product, Sort, Price FROM Products ORDER BY Sort, Product;
SELECT Product, Sort, Price FROM Products ORDER BY 2,3;
SELECT Product, Sort, Price FROM Products ORDER BY 2, 1
SELECT Product, Sort, Price FROM Products ORDER BY Sort, 1;

 

Какое из условий предложения WHERE позволяет отобрать адреса клиентов из USA и Canada?
Country = 'USA' AND Country ='Canada'
Country = 'USA' OR Country ='Canada'
Country IN (‘USA’, ‘Canada’)
Country IN (‘USA’ AND ‘Canada’)

 

Выбрать поле "First Name" из таблицы "Persons".
SELECT Persons, FirstName;
SELECT FirstName FROM Persons;
Update FirstName FROM Persons;
Update FirstName SET Persons;

 

Выбрать все записи из таблицы "Persons" при условии, когда значение "FirstName" равно "Peter".
SELECT [all] FROM Persons like FirstName: 'Peter'
SELECT * FROM Persons WHERE FirstName: 'Peter'
SELECT * FROM Persons like 'Peter'
SELECT * FROM Persons WHERE FirstName = 'Peter'

 

Выбрать все записи из таблицы "Persons" при условии, когда значения в поле "FirstName" начинаются с 'a'.
SELECT * FROM Persons WHERE FirstName LIKE 'a%'
SELECT * FROM Persons LIKE FirstName '%a'
SELECT * FROM Persons WHERE FirstName = 'a'
SELECT * FROM Persons WHERE FirstName LIKE '%a'

 

Выбрать все записи из таблицы "Persons" при условии, когда значения в поле "FirstName" оканчиваются на 'n'.
SELECT * FROM Persons WHERE FirstName LIKE 'n%'
SELECT * FROM Persons LIKE FirstName '%n'
SELECT * FROM Persons WHERE FirstName = 'n'
SELECT * FROM Persons WHERE FirstName LIKE '%n'

 

Выбрать все записи из таблицы "Persons" при условии, когда значение "FirstName" равно 'Peter' и "LastName" равно 'Jackson'.
SELECT * FROM Persons WHERE FirstName = 'Peter' AND LastName = 'Jackson';
SELECT FirstName = 'Peter', LastName = 'Jackson' FROM Persons;
SELECT FirstName AND LastName FROM Persons WHERE FirstName = 'Peter' AND LastName = 'Jackson';
SELECT ALL* FROM Persons WHERE FirstName = 'Peter' AND LastName = 'Jackson';

 

Выбрать все записи из таблицы "Persons" при условии, что значение поля "LastName" расположено в алфавитном порядке (в т.ч. и равное) между "Hansen" и "Pettersen.
SELECT LastName > 'Hansen' AND LastName < 'Pettersen' FROM Persons;
SELECT * FROM Persons WHERE LastName BETWEEN 'Hansen' AND 'Pettersen';
SELECT * FROM Customers WHERE LastName > 'Hansen' AND 'LastName < Pettersen';
SELECT * FROM Persons WHERE LastName > 'Hansen', LastName <= 'Pettersen';

 

Выбрать все записи из таблицы "Persons" при условии, что значение поля "Birthday" приходится на лето 2009 г. (использовать для даты формат SQL Jet)
SELECT * FROM Persons WHERE Birthday > 01.06 AND Birthday < 31.08;
SELECT * FROM Persons WHERE Birthday BETWEEN #06/01/2009# AND #08.31.2009#;
SELECT * FROM Persons WHERE Birthday BETWEEN “июнь” AND “август;
SELECT * FROM Persons WHERE Birthday BETWEEN #01.06.2009# AND #31.08.2009#;

 

Выбрать все записи из таблицы 'Persons',отсортировав их по полю FirstName в убывающем порядке.
SELECT * FROM Persons ORDER BY - 'FirstName';
SELECT * FROM Persons ORDER BY 'FirstName' DESC;
SELECT * FROM Persons WHERE FirstName ORDER BY 'FirstName' DESC;
SELECT * FROM Persons SORT REVERS 'FirstName';

 

Вставить новую запись c полями 'Jimmy', 'Jackson' в таблицу 'Persons'.
INSERT INTO Persons VALUES ('Jimmy','Jackson');
INSERT ('Jimmy','Jackson'); INTO Persons;
INSERT VALUES ('Jimmy','Jackson') INTO Persons;

 

Вставить значение 'Olsen' в поле 'LastName' таблицы 'Persons'.
INSERT ('Olsen') INTO LastName FROM Persons
INSERT INTO Persons ('Olsen') INTO LastName;
INSERT INTO Persons (LastName) VALUES ('Olsen');

 

Как можно заменить значение 'Hansen' на 'Nilsen' в поле 'LastName' таблицы 'Persons'?
UPDATE Persons SET LastName='Hansen' INTO LastName = 'Nilsen';
SAVE Persons SET LastName='Nilsen' WHERE LastName ='Hansen' ;
SAVE Persons SET LastName = 'Hansen' INTO LastName = 'Nilsen';
UPDATE Persons SET LastName='Nilsen' WHERE LastName = 'Hansen';

 

Как удалить записи из таблицы "Persons' при условии, что значение FirstName равно 'Peter'?
DELETE FirstName = 'Peter' FROM Persons;
DELETE ROW FirstName = 'Peter' FROM Persons;
DELETE FROM Persons WHERE FirstName = 'Peter' ;

 

Как подсчитать количество записей в таблице 'Persons'?
SELECT NUMBER FROM Persons;
SELECT COLUMNS FROM Persons;
SELECT COUNT(*) FROM Persons;
SELECT COUNT Persons;

 

Какой из запросов будет равнозначен запросу: SELECT * FROM Music, Tracks WHERE Music.Id=Tracks.Music_Id;
SELECT * FROM Music INNER JOIN Tracks ON Music.Id=Tracks.Music_Id;
SELECT * FROM Music INNER JOIN Tracks IN Music.ID=Tracks.Music_Id;
SELECT * FROM Music INNER JOIN Music.Id ON Tracks = Tracks.Music_Id;
SELECT * FROM Music.Id INNER JOIN Tracks.Music_Id IN Tracks=Music;

 

Выбрать все записи из таблицы "Сведения" при условии, что значение поля "Дата_рожд" приходится на лето 1990 г. (использовать для даты формат SQL Jet)
SELECT Фам, Имя, Дата_Рожд FROM Сведения WHERE Дата_Рожд>=#06/01/1990# AND Дата_Рожд<=#08/31/1990#;
SELECT Фам, Имя, Дата_Рожд FROM Сведения WHERE Дата_Рожд BETWEEN #06/01/1990# AND Дата_Рожд<=#08/31/1990#;
SELECT Фам, Имя, Дата_Рожд FROM Сведения WHERE Дата_Рожд BETWEEN #06/01/1990# AND #08/31/1990#;
SELECT Фам, Имя, Дата_Рожд FROM Сведения WHERE Дата_Рожд IN (#06/01/1990# , #08/31/1990#);

 

В таблице Успеваемость Группа, Семестр Оц_Матем, Оц_Инф, Оц_Экон для каждой группы найти средний балл по каждому предмету за каждый семестр. Найти ошибку в запросе SELECT Группа, Avg(Оц_Матем) , Avg(Оц_Инф) , Avg(Оц_Экон) FROM Успеваемость GROUP BY Группа;
Группировка должна выполняться по всем выводимым полям
Недопустимо использование предложения GROUP BY
В группу должно быть включено не только поле Группа, но и поле Семестр
В группу должно быть включено поле Оц_Матем

 

В таблице Успеваемость c полями Группа, Оц_Матем, Оц_Инф, Оц_Экон для каждой группы найти средний балл по каждому предмету.
SELECT Группа, Avg(Оц_Матем) , Avg(Оц_Инф), Avg(Оц_Экон) FROM Успеваемость GROUP BY ГруппА;
SELECT Avg(Группа), Avg(Оц_Матем) , Avg(Оц_Инф), Avg(Оц_Экон) FROM Успеваемость GROUP BY Группа;
SELECT Группа, Avg(Оц_Матем) , Avg(Оц_Инф), Avg(Оц_Экон) FROM Успеваемость HAVING Группа;
SELECT Группа, Avg(Оц_Матем) , Avg(Оц_Инф), Avg(Оц_Экон) FROM Успеваемость GROUP BY Группа HAVING Группа=”Э87”

 

Табл. Ведомость содержит поля: № Smallint, Наим_товара Char(30), код Char(5, кол_во Smallint, Отп_цена Real, Розн_цена Real, Абс_прибыль Real. Какие поля будут выведены при выполнении запроса: SELECT * FROM Ведомость WHERE Отп_цена BETWEEN 150 AND 250;
Поля, имеющие тип данных Char
Поля, имеющие тип данных Real
Поля, имеющие типы данных Smallint
Все поля

 

Табл. Ведомость содержит поля: № Smallint, Наим_товара Char(30), код Char(5, кол_во Smallint, Отп_цена Real, Розн_цена Real, Абс_прибыль Real. Какие записи будут выведены при выполнении запроса: SELECT * FROM Ведомость WHERE Отп_цена BETWEEN 150 AND 250;
Все записи
Записи, в которых значение поля Отп_цена равно 150 или значение поля Отп_цена равно 250
Записи, в которых значение поля Отп_цена больше 150 или значение поля Отп_цена меньше 250
Записи, в которых значение поля Отп_цена находятся в интервале от 150 до 250, не включая эти значения.
Записи, в которых значение поля Отп_цена находятся в интервале от 150 до 250, включая эти значения.

 

Запрос Модели на создание таблицы имеет вид: CREATE TABLE Модели (Код Int, Модель Char(15), Мощность Smallint, Цвет Char(15), Зав_цена Int, Торг_наценка Smallint, Розн_цена Int); Будет ли создана таблица в результате выполнения запроса?
Да, так как определены все имена полей и типы данных
Нет, так как значения полей Модель и Цвет могут выйти за границы диапазона типа Char
Нет, так как имя запроса не должно совпадать с именем создаваемой таблицы
Да, так как имя запроса совпадает с именем создаваемой таблицы

 

Необходимо удалить таблицу Сведения, содержащую записи. Какими командами Вы воспользуетесь?
DROP TABLE Сведения;
DELETE FROM Сведения; DROP TABLE Сведения;
SELECT DISTINCT Сведения; DROP TABLE Сведения;
DELETE FROM Сведения;

 

Необходимо удалить таблицу Сведения, не содержащую записи. Какими командами Вы воспользуетесь?
DROP TABLE Сведения;
DELETE FROM Сведения; DROP TABLE Сведения;
SELECT DISTINCT Сведения; DROP TABLE Сведения;
DELETE FROM Сведения;

 

Из таблицы Счета необходимо вывести значения поля Тип_счета, исключив дублирование записей. Как должен выглядеть запрос?
DELETE FROM Счета WHERE Тип_счета =”ВД”;
SELECT DISTINCT ТИП_СЧЕТА FROM СЧЕТА;
SELECT ТИП_СЧЕТА FROM СЧЕТА;
DELETE FROM Клиенты WHERE DISTINCT ТИП_СЧЕТА

 

Поля Количество, Опт_цена и Опт_стоимость таблицы Ведомость имеют тип Smallint. Будет ли обновлено поле Опт_стоимость в результате выполнения запроса UPDATE Ведомость SET Опт_стоимость=[Опт_цена]*[Количество]; если Количество=150, Опт_цена = 3220?
Да, так как запрос составлен верно
Нет, так как диапазон получаемых значений превысит диапазон типа Smallint.
Нет, так как запрос составлен неверно. Запрос должен иметь вид: UPDATE Опт_стоимость SET Ведомость=[Опт_цена]*[Количество];
Нет, так как запрос должен иметь вид: UPDATE Опт_стоимость FROM Ведомость WHERE Опт_стоимость=Опт_цена*Количество;

 

Таблица Ведомость содержит поля: № Smallint, Наим_тов Char(30), Кол_во Smallint, Отп_цена Real, Розн_цена Real. Что будет выведено в результате запроса: SELECT * FROM Ведомость WHERE Наим_тов IN ("Яблоки","Орехи");
Вернет все строки, имеющие отношение к товарам Яблоки, Орехи
Вернет все строки типа Char, имеющие отношение к товарам Яблоки, Орехи
Вернет все строки типа Real, имеющие отношение к товарам Яблоки, Орехи
Вернет все строки, не имеющие отношения к товарам Яблоки, Орехи

 

Запрос на создание таблицы имеет имя Модель. В результате выполнения какого запроса будет создана таблица Модели?
CREATE TABLE Модель (Код_модели Int, Модель Char(15),, Зав_цена Int, Торг_наценка Smallint, Розн_цена Int);
CREATE TABLE Модель (Код модели Int, Модель Char(15), Цвет Зав цена Int, Торг наценка Smallint, Розн цена Int);
CREATE TABLE Модели (Код_модели Int, Модель Char(15), Зав_цена Int, Торг_наценка Smallint, Розн_цена Int)
CREATE Модели AS TABLE (Код модели Int, Модель Char(15), Зав цена Int, Торг наценка Smallint, Розн цена Int);

 

Будет ли работать следующий запрос: SELECT COUNT * FROM Tracks;
Нет, так как справа и слева * отсутствуют круглые скобки
Нет, так как не указано имя поля, по которому находится количество
Да, так как символ * возвращает все поля таблицы Tracks
Нет, так как не используется предложение GROUP BY
Нет, так как не используется предложение ORDER BY

 

Будет ли работать следующий запрос: SELECT Tracks_Music.Id, COUNT(N_Tracks) FROM Tracks ORDER BY Tracks_Music.Id GROUP BY N_Tracks;
Нет, так как в группу должно быть включено поле N_Tracks
Нет, так как предложения GROUP BY и ORDER BY расположены не в том порядке
Да, так как в группу включено поле N_Tracks
Нет, так как в группу должны быть включены поля Tracks_Music.Id и N_Tracks

 

Будет ли работать следующий запрос: SELECT SUM(St_tov), Kod_tov FROM Vedomost GROUP BY 1 AND 2;
Да, так как при использовании предложения GROUP BY допустима ссылка на столбцы с помощью целых чисел
Да, так как в предложении GROUP BY допустимо использование AND
Нет, так как в предложении GROUP BY нельзя ссылаться на столбцы с помощью целых чисел и нельзя использовать слово AND
Нет, так как вместо предложения GROUP BY необходимо использовать предложение ORDER BY

 

Что произойдет при выполнении следующего оператора: DELETE FROM Employee_Tbl WHERE Emp_Id IN (SELECT Emp_Id FROM Employee_Pay_Tbl);
Все строки, выбранные из таблицы Employee_Tbl, будут использованы оператором DELETE для удаления из таблицы Employee_Pay_Tbl соотвутствующих записей
Все строки, выбранные из таблицы Employee_Pay_Tbl, будут использованы оператором DELETE для удаления из таблицы Employee_Tbl соответствующих записей
Будут удалены значения ключевого поля Emp_Id из таблиц Employee_Tbl и Employee_Pay_Tbl
Будут удалены таблицы Employee_Tbl и Employee_Pay_Tbl

 

Найти ошибку в запросе: SELECT Music_Id, N_Tracks ORDER BY Tracks FROM Tracks;
Вместо предложения ORDER BY необходимо использовать GROUP BY.
Необходимо записать ORDER BY Music_Id FROM Tracks;
Необходимо поменять местами предложение ORDER BY и FROM Tracks
Необходимо записать: FROM Tracks GROUP BY Music_Id, N_Tracks;

 

Есть ли ошибка в запросе: SELECT Music_Id, N_Tracks FROM Tracks WHERE Music_Id=345 ORDER BY 1;
Нельзя ссылать на столбцы с помощью целых чисел
Ошибок нет
Недопустимо использование предложения ORDER BY.
Вместо предложения WHERE необходимо использовать предложение HAVING

 

В таблице Ведомость исправьте код товара с 31654 на 31655
UPDATE Kod_tov SET Ведомость WHERE Kod_tov IN 31654 ON 31655;
UPDATE Kod_tov SET Ведомость=31655;
UPDATE Ведомость SET Kod_tov=31655 WHERE Kod_tov=31654;
UPDATE Kod_tov SET Ведомость=31655 WHERE Kod_tov=31654;

 

Таблица Ведомость содержит поля: № Smallint, Наим_товара Char(30), Количество Smallint, Опт_цена Smallint, Опт_стоимость Smallint. В результате выполнения какого запроса будет рассчитано поле Опт_стоимость?
UPDATE Ведомость SET Опт_стоимость=[Опт_цена]*[Количество];
UPDATE Опт_стоимость SET Ведомость =[Опт_цена]*[Количество];
UPDATE Опт_стоимость SET Ведомость WHERE Опт_стоимость=[Опт_цена]*[Количество];
UPDATE Опт_стоимость SET [Опт_цена]*[Количество] FROM Ведомость;

 

В таблице Начисления с полями Код, Сумма, Месяц увеличить на 40% начисления за июнь.
UPDATE Начисления SET Сумма = [Сумма]*1.4 WHERE Месяц="июнь";
UPDATE Начисления WHERE Месяц="июнь" SET Сумма = [Сумма]*1.4;
UPDATE Начисления SET Сумма = [Сумма]*40% WHERE Месяц="июнь";
UPDATE Начисления SET Сумма = [Сумма]*40% GROUP BY (июнь);

 

Вставить значения ‘40’ в поле ‘Код_нач’ и значение 'Пособие' в поле 'Вид_ нач’ таблицы 'Справочник'.
INSERT (40) INTO ‘Код_нач’ FROM 'Справочник'
INSERT INTO 'Справочник' (' Пособие ') INTO 'Вид_ нач’;
INSERT INTO Справочник (Код_нач, Вид_нач) VALUES (40, 'Пособие');
INSERT INTO Справочник (40, 'Пособие') VALUES (‘Код_нач’, 'Вид_ нач’)

 

В таблице Менеджеры с полями №_менеджера Smallint, ФИО Char(25), Категория Smallint менеджеру Рогальскому Б. изменить категорию с 1 на 2
UPDATE Менеджеры SET Категория = 2 WHERE ФИО Like “Рогальский”;
UPDATE Менеджеры SET Категория = 2 WHERE ФИО Like “Рогальский*”;
UPDATE Менеджеры SET Категория = 2 WHERE ФИО=“Рогальский Б”;
UPDATE Менеджеры SET ФИО=“Рогальский Б”; WHERE Категория = 2

 

В таблице Счета с полями №_счета, Остаток, Тип_счета проиндексиовать поле Остаток, увеличив его на 10% для владельцев счетов типа “ВД”.
UPDATE Счета SET Остаток=1.1*Остаток WHERE Тип_счета="ВД";
UPDATE Счета SET Остаток=10%*Остаток WHERE Тип_счета="ВД";
UPDATE Остаток SET Остаток=10%*Остаток WHERE Тип_счета="ВД";
UPDATE Тип_счета SET Остаток=10%*Остаток WHERE Тип_счета="ВД";