Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
44
Добавлен:
02.05.2014
Размер:
115.2 Кб
Скачать

5. Построить sql-запрос для выборки сведений из бд, содержащей таблицы:

Блюдо (КодБл, НазвБл, Категория);

Продукт (КодПрод, НазвПрод, Калорийность);

Рецепт (КодБл, КодПрод, КолПродВБлюде).

Извлечь статистику уровней калорийности продукта: уровень калорийности, количество продуктов, имеющих эту калорийность, количество блюд, содержащих продукт этой калорийности. Не учитывать продукты, названия которых начинаются на «А» и блюда категории «Б». Упорядочить по убыванию.

РЕШЕНИЕ:

SELECT Продукт. Калорийность,

COUNT (distinct Продукт. КодПрод ) as ‘КодПрод’

COUNT (distinct Блюдо. КолБл) as ‘КодБл’

FROM Блюдо, Продукт, Рецепт

WHERE (Блюдо. КодБл=Рецепт. КодБл) and

( Продукт. КодПрод=Рецепт. КодПрод) and

Продукт. КодПрод not in

(SELECT КодПрод

FROM Продукт

WHERE НазвПрод LIKE ‘A%’)

and Блюдо. КодБл not in

(SELECT КодБл

FROM Блюдо

WHERE Категория=’Б’)

GROUP BY Продукт. Калорийность (?????)

ORDER BY Продукт. Калорийность desc; (???нужно писать Продукт.Калор-ть или просто GROUP BY Калорийность???)

Билет 9.

5. Блюдо (КодБл, НазвБл, Катег)

Продукт (КодПрод, НазвПрод, Калор)

Рецепт (КодБл, КодПрод, КодПродБл)

Извлечь коды и названия блюд, не содерж-ся в кол-ве более 100 единиц. Не должно быть ни одного продукта из тех, которые содержит блюдо «Солянка». Отсортировать ???рецепты в обратном порядке кодов блюд.

РЕШЕНИЕ:

Select КодБл, НазвБл

From Блюдо

Where NotExists (Select КодПрод

From Рецепт

WhereКолПродВБл >100

And КодПр In (Select РецКодПр

From Рецепт, Блюдо

Where (Рец.КодБл=Блюдо.КодБл)

And НазвБл= «Солянка»));

Order By КодБл Desc;

Билет 11.

5. Студент (КодСтуд, ФИОСтуд, Спец, Курс, Группа)

Предмет (КодПредм, НазвПредм, Объем, Спец, Курс)

Успев (КодСтуд, КодПредм, Оценка, Дата)

Извлечь студентов, которые имеют оценки и предметы, по которым получены оценки. Результат должен быть:

Код (Студ/Предм), Имя (ФИОСтуд/Назв), Тип (Студ/Предм), Сдач (Число оценок у студента/ по предметам). Упорядочить по типам, затем по именам.

РЕШЕНИЕ:

SELECT DISTINCT КодСтуд as ‘Код’,

ФИОСтуд as ‘Имя’,

Студет as ‘Тип’

FROM Студент

WHERE КодСтуд NOT IN

(SELECT КодСтуд

FROM Успев

WHERE Оценка is null)

UNION

SELECT DISTINCT КодПредм as ‘Код’,

НазвПредм as ’Имя’,

Предмет as ‘Тип’

FROM Предмет

WHERE КодПредм NOT IN

(SELECT КодПредм

FROM Успев

WHERE Оценка is null)

ORDER BY Тип

ORDER BY Имя

Билет 14.

5.???? Студент (КодСтуд, ФИО, Спец, Курс, Группа)

Предмет (КодПредм, НазвПр, Объем, Спец, Курс)

Успев (КодСт, КодПр, Оценка, Дата)

Извлечь статистику успеваемости студ группы: идентиф. гр. (спец., курс, группа), количество студентов в группе, количество предметов, по которым имеют оценки, средний балл. Не учитывать предметы объемом<15 часов. Упорядочить по идент. группы.

РЕШЕНИЕ:

SELECT (Ст. Спец, Ст. Курс, Ст. Гр) as Идент,

COUNT (DISTINCT Ст. КодСтуд) as КолСт,

COUNT (DISTINCT Успев. КодПр) as КолПр

FROM Студент LEFT JOIN Успеваем

ON Ст. КодСт=????

Билет 16

5. Извлечь номера и ФИО студентов, сдавших в точности те же предметы, которые сдал Иванов. Упорядочить в обратном алфавитном порядке.

РЕШЕНИЕ:

SELECT КодСт, ФИОСт

FROM Студент

WHERE NOT EXISTS (

SELECT *

FROM Успеваемость

WHERE КодСт in (

SELECT КодСт

FROM Студент

WHERE ФИО=’Иванов’

And Спец=’АСУ’

And Группа=’347’)

And КодПред not in (

SELECT КодПред

FROM Успеваемость

WHERE Успеваемость.КодСт=Студент.КодСт))

And NOT EXISTS (

SELECT *

FROM Успеваемость

WHERE КодСт in (

SELECT КодСт

FROM Успеваемость

WHERE Успеваемость.КодСт=Предмет.КодСт)

And КодПред not in (

SELECT КодПред

FROM Успеваемость

WHERE КодСт in(

SELECT КодСт

FROM Студент

WHERE ФИО=’Иванов’

And Спец=’АСУ’

And Группа=’347’)));

Билет 17

5) Извлечь номер и название предмета по котрым сдали на «отл» по крайней мере все те студенты, которые сдали на 4 и 5 «базы данных».

Студ(КодСт, ФИОСт, Спец, Курс, Группа)

Предмет( КодПр, НазвПред, Объем, Спец, Курс)

Успев( КодСт, КодПр, Оценка, Дата)

РЕШЕНИЕ:

SELECT КодПр, НазвПр

FROM Предмет

WHERE КодПр IN

(SELECT КодПр

FROM Успев

WHERE Оценка='отл'

AND КодСт IN

(SELECT КодСт

FROM Успев

WHERE (Оценка='отл' OR Оценка='хор') AND КодПр IN

(SELECT КодПр

FROM Предмет

WHERE НазвПр='базы данных')))

AND НазвПр<>'базы данных';

Соседние файлы в папке Материалы к экзамену