Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> кулинарная база, учебная задача 
:(
    Опции темы
WASAP
Дата 9.2.2009, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 9.2.2009

Репутация: нет
Всего: нет



Доброго времени суток! Я - новичок в SQL. У меня вот такое вот задание:

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

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

    Запишите на SQL:
–– Удалить сведения о блюдах, стоимость которых меньше средней стоимости их компонентов.
–– Добавить новый компонент.
–– Установить калорийность, равную 100 ккал, для блюд без указанной калорийности.



Я сделал вот так вот:

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

Delete from Блюдо where название_блюда in (Select Блюдо.Название_Блюда from Блюдо, Компонент, (Select блюдо, avg(стоимость) as СредСтоимКомп from Компонент group by Блюдо) t1 where Блюдо.Стоимость>t1.СредСтоимКомп and Блюдо.Название_блюда=t1.Блюдо) 


2.Добавить новый компонент
Код

Insert into компонент (Название_компонента, Калорийность, Вес, Белки, Жиры, Углеводы, Блюдо, Стоимость) values(‘Морковь’, 100, 100.00 ,25 ,32 ,43 , ‘Винигрет’, ‘5 руб’)


3.Установить калорийность, равную 100 ккал, для блюд без указанной калорийности. – а в блюдах нет поля калорийность! Выполним задание для компонентов, там есть поле калорийность.
По умолчанию поле Not Null, значит должно присваиваться какое то значение, можно задать при создании таблицы прописать - default 100.
Если по умолчанию не задано – то вероятнее всего в большинстве БД будет присваиваться значение 0.
Тогда запрос:
Код

 update компонент set калорийность=100 where калорийность=0



Проверьте пожалуйста правильность, добавьте какие-нибудь комментарии
PM MAIL   Вверх
DimW
Дата 9.2.2009, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



Цитата(WASAP @  9.2.2009,  14:50 Найти цитируемый пост)
3.Установить калорийность, равную 100 ккал, для блюд без указанной калорийности.

Цитата(WASAP @  9.2.2009,  14:50 Найти цитируемый пост)
where калорийность=0

а если калорийность равна -1?


PM MAIL ICQ   Вверх
Zloxa
Дата 9.2.2009, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(DimW @  9.2.2009,  16:28 Найти цитируемый пост)
а если калорийность равна -1?

Если уж быть СТОЛЬ дотошным, то следует обратить внимание, что калорийность просили установить для блюд а не для компонентов ;)))
WASAP, На первый взгляд, предоставленные Вами запросы выглядят вполне работоспособные. Кое что можно было бы попытаться переформулировать, но если речь идет об абстрактной базе на абстрактной платформе, то не понятно зачем. 


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
DimW
Дата 9.2.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



Цитата(Zloxa @  9.2.2009,  16:44 Найти цитируемый пост)
Если уж быть СТОЛЬ дотошным

вы на собеседование давно ходили?  smile 

PM MAIL ICQ   Вверх
Zloxa
Дата 9.2.2009, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(DimW @  9.2.2009,  16:51 Найти цитируемый пост)
вы на собеседование давно ходили? 

Задача больше характерна для лабы или же для домашки чем для собеседования ;)
А значит правильный ответ это тот, который доступен для понимания препода.
Мне очень понравилось замечание автора, мол т.к. значение нот нулл, то будем считать что "не задано"  есть суть ноль  smile)
Это похоже на "т.к. метлы нет, но плац должен быть подметен, будем подметать ломом, т.к. лом есть". 

А фигли делать, мы все учились понемногу. 
Страсть как обидно за наше образование, формулирующее подобные задания.

Я, вот, помнится, после успешной сдачи зачета по "Теория РСУБД", сделал для себя вывод: "РСУБД - вещь мало интересная, великогемморойная, и не имеет никакой практической ценности". Знал бы я тогда что это станет моей основной специализацией на определенный период жизни, был бы сильно удивлен....

Это сообщение отредактировал(а) Zloxa - 9.2.2009, 17:07


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
DimW
Дата 9.2.2009, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



Цитата(Zloxa @  9.2.2009,  17:06 Найти цитируемый пост)
Мне очень понравилось замечание автора, мол т.к. значение нот нулл, то будем считать что "не задано"  есть суть ноль  

так уж случилось - после сотрудничества с индусами всех во всем подозревать и искать подвох, если есть возможность то обязательно произойдет, а про собеседование - это я так...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.