Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материалы к экзамену / ответы на билеты 2002.doc
Скачиваний:
39
Добавлен:
02.05.2014
Размер:
86.02 Кб
Скачать

Билет №7

1.

Покупатель (код_покупателя, ФИО_покупателя)

Товар (код_товара, назв_товара)

Покупка (код_покупателя, код_товара,дата_покупки, время_покупки, кол_единиц_товара)

2.(я исправила)

SelectРецепт_Блюдо.ном_бл, Рецепт_Блюдо.назв_бл, Продукт.назв_прод, Рецепт_Блюдо.кол_прод_в_блюде

From (

Select Блюдо.ном_бл As ном_бл,

Блюдо.назв_бл Asназв_бл,

Рецепт.кол_прод_в_блюдеAsкол_прод_в_блюде,

Рецепт.ном_прод Asном_прод

From Блюдо Left Join Рецепт On

Рецепт.ном_бл = Блюдо.ном_бл

) As Рецепт_Блюдо Left Join Продукт On

Продукт.ном_прод = Рецепт_Блюдо.ном_прод

Билет №8

1.

Товар (код_товара, назв_товара, срок_гарантии, цена, код_категории_товара)

Категория (код_категории_товара, назв_категории)

2.

SelectБлюдо.ном_бл

FromБлюдо

Where Блюдо.ном_бл Not In (

Select Блюдо.ном_бл

From Блюдо

Where ( Select Count(*) As прод_count

From Рецепт

Where Рецепт.ном_бл = Блюдо.ном_бл)>1)

Билет №9

1.

Покупатель (код_покупателя, ФИО_покупателя, стаж_покупателя, код_категории_покупателя+код_товара, дата_покупки)

Категория (код_категории_покупателя, назв_категории) или Покупка(код_покуп-ля,код_товара,дата_п)

2.

SelectРецепт_нов.ном_бл, Блюдо.назв_бл, сум_кол_прод_в_блюде, сум_калорийность

From(

SelectРецепт.ном_блAsном_бл,sum(Рецепт.кол_прод_в_блюде * Продукт.калорийность)AsСум_калорийность,

Count{sum}(Рецепт.кол_прод_в_блюде)Asсум_кол_прод_в_блюде

From Рецепт, Продукт

WhereПродукт.ном_прод = Рецепт.ном_прод

GroupByРецепт.ном_бл)AsРецепт_нов,

Блюдо

WhereРецепт_нов.сум_калорийность <500

AndБлюдо.ном_бл = Рецепт_нов.ном_бл

{sum, если считать поле кол_прод_в_блюде;

count, если считать поле ном_пр, т.е. сколько разных продуктов в блюде)

Билет №10 Задача 2

SELECT ном_бл, назв_бл

FROM блюдо xb

WHERE ном_бл IN (

SELECT ном_бл

FROM рецепт XР

WHERE кол_прод_в_блюде > 100

AND ном_пр IN (

SELECT ном_пр

FROM рецепт YР

WHERE ном_бл IN (

SELECT ном_бл

FROM блюдо Yb

WHERE назв_бл= "жюльен")));

Билет №11

Задача 2

SELECT ном_бл, назв_бл

FROM Блюдо

WHERE ном_бл IN (

SELECT ном_бл

FROM Рецепт

WHERE кол_прод_в_блюде > 100 AND

NOT EXISTS (

SELECT *

FROM Рецепт

WHERE ном_бл IN (

SELECT ном_бл

FROM Блюдо

WHERE назв_бл = 'Солянка') AND

ном_пр NOT IN (

SELECT ном_пр

FROM Рецепт

WHERE Блюдо.ном_бл = Рецепт.ном_бл)));

Билет №12

Задача 2(-)

SELECT product.kal, COUNT(distinct product.nom_prod) AS k_prod, COUNT (bludo.nom_bl)

AS k_bl

FROM product, bludo, recept

WHERE product.nom_prod=recept.nom_prod And bludo.nom_bl=recept.nom_bl

GROUP BY product.kal;

Иринина(-)

SELECT калорийность, count(ном_пр) AS к_прод, (select count(рецепт.ном_бл) from рецепт, продукт where рецепт.ном_пр=продукт.ном_пр AND продукт.калорийность=Р.калорийность) AS к_блюд

FROM продукт AS р

GROUP BY калорийность;

Билет №13

Задача 2

SELECT bludo.nazv_bl AS n1, product.nazv_prod AS n2, recept.kol_prod_v_bludo AS kol

FROM bludo, product, recept

WHERE bludo.nom_bl=recept.nom_bl

AND product.nom_prod=recept.nom_prod

UNION

SELECT bludo.nazv_bl AS n1, " " AS n2, " " AS kol

FROM bludo

WHERE nom_bl NOT IN (SELECT DISTINCT nom_bl FROM recept)

UNION SELECT " " AS n1, nazv_prod AS n2, " " AS kol

FROM product

WHERE nom_prod NOT IN (SELECT DISTINCT nom_prod FROM recept);

Билет №14

Задача 2

SELECT блюдо.ном_бл, [назв_бл]

FROM Блюдо

WHERE NOT EXISTS (

SELECT ном_пр

FROM Рецепт1

WHERE кол_прод_в_блюде > 100 AND

рецепт1.ном_бл = блюдо.ном_бл AND

ном_пр NOT IN (

SELECT ном_пр

FROM Рецепт1, блюдо

WHERE рецепт1.ном_бл = блюдо.ном_бл AND

назв_бл = 'Солянка'));

Билет №15

Задача 2

SELECT [stud].[no_st], [stud].[fio], MIN([uspev].[ocenka]) AS minoc, MAX([uspev].[ocenka]) AS maxoc, AVG([uspev].[ocenka]) AS Sredn

FROM stud, uspev

WHERE stud.no_st = uspev.no_st AND stud.no_st IN ( SELECT uspev.no_st FROM uspev GROUP BY uspev.no_st HAVING AVG(uspev.ocenka) >"4.7")

GROUP BY [stud].[no_st], [stud].[fio];

Билет №16

Задача 2

select блюдо.назв_бл, sum(продукт.калорийность*рецепт.кол_прод_в_блюде) as Калорийность

from (блюдо inner join рецепт on блюдо.ном_бл=рецепт.ном_бл) inner join продукт on рецепт.ном_прод=продукт.ном_прод

group by блюдо.ном_бл, блюдо.назв_бл

having sum(продукт.калорийность*рецепт.кол_прод_в_блюде)>

any (select sum(продукт.калорийность*рецепт.кол_прод_в_блюде)

from рецепт inner join продукт on рецепт.ном_прод=продукт.ном_прод

where рецепт.ном_бл=123

groupbyном_бл)

Билет №17

Задача 2

SELECT [spec], [kurs], MIN([uspev].[ocenka]) AS minocen, MAX([uspev].[ocenka]) AS maxocen, AVG([uspev].[ocenka]) AS Sredn

FROM stud, uspev

WHERE [stud].[no_st]=[uspev].[no_st]

GROUP BY [spec], [kurs];

Билет №18

Задача 2

SELECT продукт.ном_пр, [назв_пр], Блюдо.ном_бл, [назв_бл]

FROM продукт, блюдо

WHERE ном_пр NOT IN ( SELECT ном_пр FROM рецепт1 WHERE рецепт1.ном_бл = блюдо.ном_бл);

Билет №19

Задача 2

SELECT nom_bl AS nom, nazv_bl as nazv, "bludo" as type

FROM bludo WHERE kat="diet"

UNION (

SELECT nom_prod AS nom, nazv_prod as nazv, "product" as type

FROM product WHERE kal<500 )

ORDER BY nazv;

Билет20

Задача 2

SELECT [no_st], [fio]

FROM stud

WHERE stud.no_st IN (SELECT no_st FROM uspev WHERE (no_pr IN (SELECT uspev.no_pr FROM uspev, stud WHERE uspev.ocenka<5 AND stud.fio="Иванов П.С." AND stud.no_st=uspev.no_st)) GROUP BY no_st HAVING max(ocenka)<5);

Билет21

Задача 2

Вариант 0 (Иринин) супер (+)

SELECT [блюдо].[категория], min(калорийность) AS мин, max(калорийность) AS макс, avg(калорийность) AS сред

FROM блюдо, (SELECT блюдо.ном_бл AS ном_бл, калорийность

FROM (блюдо inner join рецепт on [блюдо].[ном_бл]=[рецепт].[ном_бл]) inner join продукт on [продукт].[ном_прод]=[рецепт].[ном_прод]

GROUP BY блюдо.ном_бл,калорийность)

WHERE [блюдо].[ном_бл]=ном_бл

GROUP BY [блюдо].[категория];

Вариант1 (с каля-баля)

SELECT [bludo].[kat], min(kal) AS minimum, max(kal) AS maximum, avg(kal) AS average

FROM bludo, [SELECT bludo.nom_bl AS nom_bl, SUM(recept.kol_prod_v_bludo*product.kal) AS kal

FROM bludo, product, recept

WHERE [bludo].[nom_bl]=[recept].[nom_bl] And [product].[nom_prod]=[recept].[nom_prod]

GROUP BY bludo.nom_bl]. AS [%$##@_Alias]

WHERE [bludo].[nom_bl]=nom_bl

GROUP BY [bludo].[kat];

Вариант2 (без каля-баля)

SELECT [bludo].[kat], min(kal) AS minimum, max(kal) AS maximum, avg(kal) AS average

FROM bludo,([SELECT bludo.nom_bl AS nom_bl, SUM(recept.kol_prod_v_bludo*product.kal) AS kal

FROM bludo, product, recept

WHERE [bludo].[nom_bl]=[recept].[nom_bl] And [product].[nom_prod]=[recept].[nom_prod]

GROUP BY bludo.nom_bl)

WHERE [bludo].[nom_bl]=nom_bl

GROUP BY [bludo].[kat];

Билет №22

Задача 2

SELECT stud.no_st, stud.fio, minimum, maximum, average

FROM stud, [SELECT stud.no_st AS no_st, min(uspev.ocenka) AS minimum, max(uspev.ocenka) AS maximum, avg(uspev.ocenka) AS average

FROM stud, uspev

WHERE stud.no_st=uspev.no_st

GROUP BY stud.no_st]. AS [%$##@_Alias]

WHERE average>

(SELECT avg([ocenka])

FROM uspev

WHERE no_st=992027

GROUP BY [no_st];)

AND stud.no_st=no_st;

Билет №23

Задача 2

SELECT [stud].[spec], [uspev].[ocenka], count([uspev].[no_st]) AS kolvo_st, count([uspev].[no_pr]) AS kolvo_pr

FROM stud, uspev

WHERE [stud].[no_st]=[uspev].[no_st]

GROUP BY stud.spec, uspev.ocenka;

Билет №24

Задача 2

SELECT no_pr AS no, fio, "Преподаватель" AS kateg

FROM prepod

UNION SELECT no_st AS no, fio, "Студент" AS kateg

FROM stud

WHERE no_st IN(SELECT no_st FROM rukov)

ORDER BY fio;

Билет №25

Задача 2

SELECT stud.no_st, stud.fio, predm.naim_pr AS naim_pr, uspev.ocenka AS ocenka

FROM stud, predm, uspev

WHERE stud.no_st=uspev.no_st

AND predm.no_pr=uspev.no_pr

UNION SELECT stud.no_st, stud.fio, " " AS naim_pr, " " AS ocenka

FROM stud

WHERE stud.no_st NOT IN (SELECT DISTINCT no_st FROM uspev);

Билет №26

Задача 2

SELECT stud.no_st, stud.fio, predm.no_pr AS nop, predm.naim_pr AS name

FROM stud, predm

WHERE

predm.kurs=stud.kurs

AND NOT EXISTS(

SELECT no_st, no_pr

FROM uspev

WHERE uspev.no_pr=predm.no_pr

AND uspev.no_st=stud.no_st)

UNION SELECT stud.no_st, stud.fio, NULL AS nop, NULL AS name

FROM stud, predm

WHERE stud.no_st NOT IN(

SELECT stud.no_st

FROM stud, predm

WHERE predm.kurs=stud.kurs

AND NOT EXISTS(

SELECT no_st, no_pr

FROM uspev

WHERE uspev.no_pr=predm.no_pr

AND uspev.no_st=stud.no_st));

Билет №27

Задача 2

SELECT [stud].[no_st], [stud].[fio]

FROM stud, uspev

WHERE stud.no_st=uspev.no_st AND uspev.no_pr IN (SELECT DISTINCT [uspev].[no_pr] AS no_pr FROM uspev, stud WHERE [stud].[fio]="AAA" And [stud].[no_st]=[uspev].[no_st] And [uspev].[ocenka]=5)

GROUP BY [stud].[no_st], [stud].[fio]

HAVING min(uspev.ocenka)=5 AND max(uspev.ocenka)=5;

Билет №28

Задача 2