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

Основы SQL - тест 8

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

Пусть дана таблица Автор с полями

Фамилия VARCHAR(50)
Пол CHAR(3)
Дата_рождения DATETIME NOT NULL
Телефон CHAR(9)
Количество_трудов INT
Город VARCHAR(15)

Укажите правильный оператор добавления записи.


Ответ:

 (1) INSERT INTO Автор(Фамилия, дата_рождения, телефон) VALUES('Иванов','2/09/78','12-34-56') 

 (2) INSERT INTO Автор(Фамилия, дата_рождения) VALUES( 'Иванов','2/09/78') 

 (3) INSERT INTO Автор(Фамилия, телефон) VALUES( 'Иванов','12-34-56') 

 (4) INSERT INTO Автор VALUES( 'Иванов','2/09/78','12-34-56') 


Номер 2

Дана таблица Билет с полями:

номер_места CHAR(3)
номер_рейса CHAR(6)
дата_продажи DATETIME
стоимость MONEY
фамилия_пассажира VARCHAR(20) NOT NULL

Укажите правильный оператор добавления записи.


Ответ:

 (1) INSERT INTO Билет(номер_места, номер_рейса, дата_продажи, стоимость, фамилия_пассажира) VALUES(’12’,’1’,’12.2.04’,12.6,’Матвеев’)  

 (2) INSERT INTO Билет VALUES( ’12’,’1’,’12.2.04’,12.6,’Матвеев’) 

 (3) INSERT INTO Билет(номер_рейса, дата_продажи, стоимость, фамилия_пассажира, номер_места) VALUES('1',’12.2.04’,12.6,’Матвеев’,'12')  

 (4) INSERT INTO Билет(номер_места, номер_рейса, дата_продажи, стоимость) VALUES('12','1',’12.2.04’,12.6)  


Номер 3

Пусть дана таблица Блюдо с полями

Название_блюда VARCHAR(20)
Тип_блюда VARCHAR(20)
Время_приготовления INT
Калорийность INT NOT NULL
Повар VARCHAR(20)
Стоимость MONEY NOT NULL

Укажите правильный оператор добавления записи.


Ответ:

 (1) INSERT INTO Блюдо(Название_блюда, Время_приготовления, Калорийность, Повар,Стоимость,тип_блюда) VALUES ( ‘Жаркое’,500,’Медведев’,23, 34.9,’Второе’) 

 (2) INSERT INTO Блюдо VALUES ( ‘Жаркое’,23,500,’Медведев’,34.9,’Второе’) 

 (3) INSERT INTO Блюдо(Название_блюда, Время_приготовления, Калорийность, Повар, Стоимость, тип_блюда) VALUES ( ’Жаркое’,23,500,’Медведев’,34.9,’Второе’) 


Номер 4
Пусть дана таблица Город с полями
Код_ГородаCHAR(5) NOT NULL
НазваниеVARCHAR(20)
РегионVARCHAR(30)
ТарифMONEY NOT NULL
Укажите правильный оператор добавления записи.

Ответ:

 (1) INSERT INTO Город(Код_Города, Название, Тариф, Регион) VALUES('456', 'Симбирск',67.8,'Поволжье')  

 (2) INSERT INTO Город VALUES('456', 'Симбирск',67.8,'Поволжье')  

 (3) INSERT INTO Город VALUES('456', 'Симбирск','Поволжье',67.8)  

 (4) INSERT INTO Город(Код_Города, Название, Регион) VALUES('456', 'Симбирск','Поволжье')  


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

Пусть дана таблица Автор с полями

Фамилия VARCHAR(50)
Пол CHAR(3)
Дата_рождения DATETIME NOT NULL
Телефон CHAR(9)
Количество_трудов INT
Город VARCHAR(15)

Удалить информацию об авторах, не имеющих телефона (в этом случае это поле Null).


Ответ:

 (1) DELETE FROM Автор WHERE Телефон Is Null 

 (2) DELETE Телефон FROM Автор WHERE Телефон=0 

 (3) DELETE Телефон FROM Автор WHERE Телефон =’’ 


Номер 2

Дана таблица Билет с полями:

номер_места CHAR(3)
номер_рейса CHAR(6)
дата_продажи DATETIME
стоимость MONEY
фамилия_пассажира VARCHAR(20) NOT NULL

Удалить данные о билетах, проданных за прошлый месяц.


Ответ:

 (1) DELETE FROM Билет WHERE дата_продажи<GETDATE()-31  

 (2) DELETE FROM Билет WHERE Month(дата_продажи)=Month(GETDATE ())-1  

 (3) DELETE FROM Билет WHERE дата_продажи=Month(GETDATE())-1  

 (4) DELETE FROM Билет WHERE Month(дата_продажи)=GETDATE()/31-1  


Номер 3
				

Пусть дана таблица Блюдо с полями

Название_блюда VARCHAR(20)
Тип_блюда VARCHAR(20)
Время_приготовления INT
Калорийность INT NOT NULL
Повар VARCHAR(20)
Стоимость MONEY

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


Ответ:

 (1) DELETE FROM Блюдо WHERE Повар Is Null OR Повар =’’ OR Стоимость Is Null OR Стоимость=0 

 (2) DELETE FROM Блюдо WHERE Повар Is Null OR Стоимость Is Null OR 0 

 (3) DELETE FROM Блюдо WHERE Повар Is Null OR Стоимость Is Null 

 (4) DELETE FROM Блюдо WHERE Повар=’’ OR Стоимость=0 


Номер 4

Пусть дана таблица Город с полями

Код_Города CHAR(5) NOT NULL
Название VARCHAR(20)
Регион VARCHAR(30)
Тариф MONEY

Удалить сведения о городах, для которых не указаны регион и телефонный тариф.


Ответ:

 (1) DELETE FROM Город WHERE (Регион Is Null Or Регион=’’) AND (Тариф Is Null Or Тариф=0) 

 (2) DELETE FROM Город WHERE Регион Is Null AND (Тариф Is Null Or Тариф=0) 

 (3) DELETE FROM Город WHERE Регион Is Null AND Регион=’’AND Тариф Is Null AND Тариф=0 

 (4) DELETE FROM Город WHERE Регион Is Null AND Тариф Is Null 


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

Пусть дана таблица Книга с полями:

Код_Книги INT
Название VARCHAR(50) NOT NULL
Цена MONEY
Тематика VARCHAR(50) NOT NULL
Издательство VARCHAR(50) NOT NULL
Код_Автора INT NOT NULL

Увеличить на 50% цену книг, вышедших в издательстве «АСТ».


Ответ:

 (1) UPDATE Книга SET Цена = Цена*1.5 WHERE Издательство="АСТ" 

 (2) UPDATE Книга SET Цена = Цена*0.5 WHERE Издательство="АСТ" 

 (3) UPDATE Книга SET Цена = Цена*50% WHERE Издательство="АСТ" 

 (4) UPDATE Книга Цена = Цена*1.5 WHERE Издательство="АСТ" 


Номер 2
				

Дана таблица Билет с полями:

номер_места CHAR(3)
номер_рейса CHAR(6)
дата_продажи DATETIME
стоимость MONEY
фамилия_пассажира VARCHAR(20) NOT NULL

Увеличить на 10% стоимость билетов на рейсы 23-45 и 56-78.


Ответ:

 (1) UPDATE Билет SET стоимость=стоимость*1.1 WHERE номер_рейса='23-45' OR номер_рейса='56-78' 

 (2) UPDATE Билет SET стоимость=стоимость*1.1 WHERE номер_рейса='23-45' AND номер_рейса='56-78’ 

 (3) UPDATE Билет SET стоимость=стоимость*1.1 WHERE номер_рейса=23-45 OR 56-78 

 (4) UPDATE Билет стоимость=стоимость*1.1 WHERE номер_рейса='23-45' OR номер_рейса='56-78' 


Номер 3
				

Пусть дана таблица Блюдо с полями

Название_блюда VARCHAR(20)
Тип_блюда VARCHAR(20)
Время_приготовления INT
Калорийность INT NOT NULL
Повар VARCHAR(20)
Стоимость MONEY NOT NULL

Установить калорийность, равную 100 ккал, для блюд без указанной калорийности.


Ответ:

 (1) UPDATE Блюдо SET Калорийность = 100 WHERE Калорийность Is Null Or Калорийность=0 

 (2) UPDATE Блюдо SET Калорийность = 100 WHERE Калорийность=’’ 

 (3) UPDATE Блюдо Калорийность = 100 WHERE Калорийность Is Null Or Калорийность=0 

 (4) UPDATE Блюдо SET Калорийность = 100 WHERE Калорийность Is Null Or 0 


Номер 4
				

Пусть дана таблица Город с полями

Код_Города CHAR(5) NOT NULL
Название VARCHAR(20)
Регион VARCHAR(30)
Тариф MONEY NOT NULL

Увеличить телефонный тариф на 15% для городов Поволжья и Нечерноземья.


Ответ:

 (1) UPDATE Город SET Тариф = Тариф*1.15 WHERE Регион=’Поволжье’ OR Регион=’Нечерноземье’ 

 (2) UPDATE Город SET Тариф = Тариф*0.15 WHERE Регион=’Поволжье’ OR Регион=’Нечерноземье’ 

 (3) UPDATE Город Тариф = Тариф*1.15 WHERE Регион=’Поволжье’ OR Регион=’Нечерноземье’ 

 (4) UPDATE Город SET Тариф = Тариф*1.15 WHERE Регион=’Поволжье’ AND Регион=’Нечерноземье’ 


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

Даны таблицы

CREATE TABLE Автор (Код_Автора INT , Фамилия VARCHAR(50) NULL, Имя VARCHAR(50) NULL, Отчество VARCHAR(50) NULL, Пол VARCHAR(50) NOT NULL , Дата_рождения DATETIME , Телефон CHAR(9)) CREATE TABLE Книга (Код_Книги INT, Название VARCHAR(50) NOT NULL, Цена MONEY, Тематика VARCHAR(50) NOT NULL, Издательство VARCHAR(50) NOT NULL, Код_Автора INT NOT NULL)

Удалить сведения об авторах, чьи произведения не издаются.


Ответ:

 (1) DELETE FROM Автор WHERE Код_Автора NOT IN (SELECT Код_Автора FROM Книга) 

 (2) DELETE FROM Автор WHERE Код_Автора IN (SELECT Код_Книги FROM Книга) 

 (3) DELETE FROM Автор WHERE Код_Автора <>(SELECT Код_Автора FROM Книга) 

 (4) DELETE FROM Автор WHERE NOT EXISTS (SELECT Код_Автора FROM Книга) 


Номер 3

Даны таблицы

CREATE TABLE Блюдо (Название_блюда VARCHAR(20) NOT NULL, Время_приготовления INT NOT NULL, Общая_калорийность INT NOT NULL, Номер_рецепта INT, Повар VARCHAR(20), Стоимость_блюда MONEY) CREATE TABLE Компонент (Название_компонента VARCHAR(20), Калорийность INT NOT NULL, Жиры INT, Белки INT, Блюдо VARCHAR(20), Углеводы INT, Стоимость_компонента MONEY NOT NULL)

Удалить сведения о блюдах, стоимость которых меньше средней стоимости компонентов.


Ответ:

 (1) DELETE FROM Блюдо WHERE Стоимость_блюда-(SELECT AVG( Стоимость_компонента) FROM Компонент)<0 

 (2) DELETE FROM Блюдо WHERE Стоимость_блюда<(SELECT AVG( Стоимость_компонента) FROM Компонент) 

 (3) DELETE FROM Блюдо WHERE Стоимость_блюда< AVG(Стоимость_компонента) 

 (4) DELETE FROM Блюдо WHERE Стоимость_блюда<AVG(Стоимость_компонента) FROM Компонент 


Номер 4

Даны таблицы

CREATE TABLE Город (Код_Города INT, Название VARCHAR(20) NOT NULL, Тариф MONEY) CREATE TABLE Разговор (Код_Разговора INT, Код_Города INT NOT NULL, Фамилия IVARCHAR(20), Дата DATETIME NOT NULL, Продолжительность INT NOT NULL)

Удалить информацию о городах, с которыми не было ни одного телефонного разговора.


Ответ:

 (1) DELETE FROM Город WHERE Код_Города NOT IN (SELECT Код_Города FROM Разговор) 

 (2) DELETE FROM Город WHERE Код_Города <>(SELECT Код_Города FROM Разговор) 

 (3) DELETE FROM Город WHERE COUNT(Фамилия)=0 FROM Разговор 

 (4) DELETE FROM Город WHERE 0=(SELECT COUNT(Фамилия) FROM Разговор) 


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

Даны таблицы Автор и Книга. Удалить сведения об авторах, издавших только одну книгу.

CREATE TABLE Автор ( Код_Автора INT , Фамилия VARCHAR(50)) CREATE TABLE Книга ( Код_Книги INT, Название VARCHAR(50), Цена MONEY, Код_Автора INT)

Ответ:

 (1) DELETE FROM Автор WHERE Автор.Код_Автора In (SELECT Книга.Код_Автора       FROM Книга       GROUP BY Книга.Код_Автора       HAVING Count(Книга.Название)=1) 

 (2) DELETE FROM Автор WHERE Автор.Код_Автора = (SELECT Книга.Код_Автора       FROM Книга       GROUP BY Книга.Код_Автора       HAVING Count(Книга.Название)=1) 

 (3) DELETE FROM Автор WHERE Count(Книга.Название)=1 

 (4) DELETE FROM Автор WHERE EXISTS (SELECT Книга.Код_Автора       FROM Книга       GROUP BY Книга.Код_Автора       HAVING Count(Книга.Название)=1) 


Номер 3
				

Даны таблицы Город и Разговор. Удалить данные об абонентах, суммарная продолжительность телефонных разговоров которых оказалась меньше 10 мин.

CREATE TABLE Город ( Код_Города INT , Название VARCHAR(20) NOT NULL, Тариф MONEY) CREATE TABLE Разговор (Код_Разговора INT, Код_Города INT NOT NULL, Фамилия VARCHAR(20), Дата DATETIME, Продолжительность INT)

Ответ:

 (1) DELETE FROM Разговор WHERE Разговор.Фамилия = (SELECT Разговор.Фамилия FROM Разговор GROUP BY Разговор.Фамилия HAVING Sum(Разговор.Продолжительность)<10) 

 (2) DELETE FROM Разговор WHERE Разговор.Фамилия In (SELECT Разговор.Фамилия       FROM Разговор       GROUP BY Разговор.Фамилия       HAVING Sum(Разговор.Продолжительность)<10) 

 (3) DELETE FROM Разговор GROUP BY Разговор.Фамилия HAVING Разговор.Фамилия In ( SELECT Разговор.Фамилия       FROM Разговор       GROUP BY Разговор.Фамилия       HAVING Sum(Разговор.Продолжительность)<10) 

 (4) DELETE FROM Разговор WHERE Разговор.Фамилия In (SELECT Разговор.Фамилия       FROM Разговор       GROUP BY Разговор.Фамилия       WHERE Sum(Разговор.Продолжительность)<10) 


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

Увеличить на 50% цену книг, издаваемых самым большим тиражом.


Ответ:

 (1) UPDATE Книга SET Книга.Цена = Книга.Цена*1.5 WHERE Книга.Количество= (SELECT Max(Книга.Количество)       FROM Книга) 

 (2) UPDATE Книга SET Книга.Цена = Книга.Цена*1.5 WHERE Книга.Количество=Max(Книга.Количество) 

 (3) UPDATE Книга SET Книга.Цена = Книга.Цена*1.5 WHERE Книга.Количество= Max(SELECT Книга.Количество)       FROM Книга) 

 (4) UPDATE Книга.Цена = Книга.Цена*1.5 WHERE Книга.Количество= (SELECT Max(Книга.Количество)       FROM Книга) 


Номер 2

Увеличить на 10% стоимость билетов, проданных в день вылета рейса.


Ответ:

 (1) UPDATE Билет SET Билет.Стоимость = Билет.Стоимость*1.1 WHERE Билет.Дата_продажи in( SELECT Рейс.Дата_вылета       FROM Билет INNER JOIN Рейс       ON Билет.Номер_рейса=Рейс.Номер_рейса       WHERE Рейс.Дата_вылета=Билет.Дата_продажи) 

 (2) UPDATE Билет SET Билет.Стоимость = Билет.Стоимость*1.1 WHERE Билет.Дата_продажи = ( SELECT Рейс.Дата_вылета       FROM Билет INNER JOIN Рейс       ON Билет.Номер_рейса=Рейс.Номер_рейса       WHERE Рейс.Дата_вылета=Билет.Дата_продажи) 

 (3) UPDATE Билет SET Билет.Стоимость = Билет.Стоимость*1.1 WHERE Билет.Дата_продажи=Рейс.Дата_вылета 

 (4) UPDATE Билет SET Билет.Стоимость = Билет.Стоимость*1.1 FROM Билет INNER JOIN Рейс ON Билет.Номер_рейса=Рейс.Номер_рейса WHERE Рейс.Дата_вылета=Билет.Дата_продажи 


Номер 3
Уменьшить на 50% продолжительность телефонных разговоров тех абонентов, которые за последний месяц сделали более 1000 звонков позволяет код:

Ответ:

 (1) UPDATE Разговор SET Разговор.Продолжительность = Разговор.Продолжительность*0.5 WHERE Разговор.Фамилия In ( SELECT Разговор.Фамилия       FROM Разговор WHERE Month(Разговор.Дата)=Month(GETDATE())-1       GROUP BY Разговор.Фамилия       HAVING count(Разговор.Фамилия)>1000 ) 

 (2) UPDATE Разговор SET Разговор.Продолжительность = Разговор.Продолжительность*0.5 WHERE Разговор.Фамилия = ( SELECT Разговор.Фамилия       FROM Разговор WHERE Month(Разговор.Дата)=Month(GETDATE())-1       GROUP BY Разговор.Фамилия       HAVING count(Разговор.Фамилия)>1000 ) 

 (3) UPDATE Разговор SET Разговор.Продолжительность = Разговор.Продолжительность*0.5 HAVING Разговор.Фамилия In ( SELECT Разговор.Фамилия       FROM Разговор WHERE Month(Разговор.Дата)=Month(GETDATE())-1       GROUP BY Разговор.Фамилия       HAVING count(Разговор.Фамилия)>1000 ) 

 (4) UPDATE Разговор SET Разговор.Продолжительность = Разговор.Продолжительность*0.5 WHERE Разговор.Фамилия In ( SELECT Разговор.Фамилия       FROM Разговор WHERE Month(Разговор.Дата)=Month(GETDATE())-1       GROUP BY Разговор.Фамилия       WHERE count(Разговор.Фамилия)>1000 ) 




Главная / Базы данных / Основы SQL / Тест 8