Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инструментальные средства разработки корпоратив...doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
603.65 Кб
Скачать

Тема 4. Эффективное выполнение запросов для извлечения данных

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

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

Фамилия VARCHAR(5O),

Пол CHAR(3),

Дата_рождения DATETIME,

Телефон CHAR(9),

Количество_трудов INT,

Город VARCHAR(15)

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

 SELECT Фамилия, Количество_трудов FROM Автор WHERE Количество_трудов>10 And Количество_трудов<=20

 SELECT Фамилия, Количество_трудов FROM Автор WHERE Количество_трудов Between 10 And 20

 SELECT Фамилия, Количество_трудов FROM Автор WHERE Количество_трудов Between 11 And 20

 SELECT Фамилия, Количество_трудов FROM Автор WHERE Количество_трудов >=11 Or Количество_трудов<= 19

2. Пусть дана таблица Автор. Требуется найти города, в которых живут молодые авторы (до 25 лет), издавшие более 10 книг.

 SELECT Город FROM Автор WHERE Дата„рождения>'1/1/1980' AND Количество_трудов>10

 SELECT Город, Дата_рождения,Количество_трудов FROM Автор

WHERE Дата_рождения>25 AND Количество_трудов>10

 SELECT Город FROM Автор WHERE Дата_рождения > 25 OR Количество_трудов > 10

 SELECT DISTINCT Город FROM Автор WHERE Дата_рождения > '1/1/1980' OR Количество_трудов>10

3. Пусть дана таблица Автор. Требуется определить авторов, фамилии которых начинаются с буквы «Б» или «Г» и содержат слог «ор».

 SELECT Фамилия FROM Автор WHERE (Фамилия Like "Б%" Or Фамилия Like "Г%") And Фамилия Like “%ор%”

 SELECT Фамилия FROM Автор WHERE Фамилия Like "Б%" And Фамилия Like "Г%" And Фамилия Like “%ор%”

 SELECT Фамилия FROM Автор WHERE (Фамилия Like "Б%" And Фамилия Like "Г_") And Фамилия Like “_ор_”

 SELECT Фамилия FROM Автор WHERE (Фамилия Like "Б _%" And Фамилия Like "Г%_") And Фамилия Like “%ор%”

Тема5. Вычисления и подведение итогов в запросах. Построение нетривиальных запросов

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

5.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,

Количество INT)

Требуется рассчитать общую стоимость тиража и 5% налог с продаж для книг каждого автора.

      • SELECT Название, Цена*Количество AS Стоимость, Цена * Количество * 0.05 AS Налог FROM Книга

      • SELECT Название, Цена*Количество, Цена*Количество*0.05 FROM Книга

 SELECT Название, Стоимость = Цена*Количество,

Налог = Цена * Количество*0.05 FROM Книга

 SELECT Название, @S = Цена * Количество, @р = Цена * Количество * 0.05 FROM Книга

На какую сумму были проданы книги каждого автора?

 SELECT Автор.Фамилия, Sum(Книга.Цена*Книга.Количество) AS Стоимость FROM Книга INNER JOIN Автор.

ON Книга.КодАвтора=Автор.КодАвтора GROUP BY Автор.Фамилия

 ‘SELECT Автор.Фамилия,

Стоимость= (Книга.Цена*Книга.Количество) FROM Книга INNER JOIN Автор ON Книга.КодАвтора=Автор.КодАвтора GROUP BY Автор.Фамилия

 SELECT Автор.Фамилия,

Sum(Книга.Цена*Книга.Количество) AS Стоимость FROM Книга INNER JOIN Автор ON Книга.КодАвтора=Автор.КодАвтора

 SELECT Автор.Фамилия,

Sum(Цена* Количество) AS Стоимость FROM Книга INNER JOIN Автор

ON Книга.КодАвтора=Автор.КодАвтора GROUP BY Автор.Фамилия

5.2. Необходимо определить число различных наименований проданных в издательстве «ACT» книг, количество книг каждого наиме­нования и вырученную сумму.

 SELECT Count(Название) AS Кол_Название,

Sum(Количество) AS Общее_Количество,

Sum(Цена*Количество) AS Общ_Стоимость

FROM Книга

WHERE Издательство="ACT"

 SELECT Count(Название) AS Кол_Название,

Sum(Количество) AS Общее_Количество,

Sum(Цена*Количество) AS Общ_Стоимость

FROM Книга

GROUP BY Издательство="АСТ"

 SELECT Count(Название) AS Кол_Название,

Sum(Количество) AS Общее_Количество,

Sum(Цена*Количество) AS Общ_Стоимость

FROM Книга

GROUP BY Издательство WHERE Издательство="АСТ"

 SELECT Count(Название) AS Кол_Название,

Sum(Количество) AS Общее_Количество,

Sum(Цена*Количество) AS Общ_Стоимость

FROM Книга

GROUP BY Название

HAVING Издательство = "ACT"