Просмотр полной версии : Sql
Уроки СКУЛЯ на http://sql-ex.ru/
--------------------------------------------------------------------------------------
Краткая информация о базе данных "Компьютерная фирма":
Схема БД состоит из четырех отношений:
Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, screen, price)
Printer(code, model, color, type, price)
Отношение Product представляет производителя (maker), номер модели (model) и тип (PC - ПК, Laptop - ПК-блокнот или Printer - принтер). Предполагается, что номера моделей уникальны для всех производителей и типов продуктов. В отношении PC для каждого номера модели, обозначающего ПК, указаны скорость -speed (процессора в мегагерцах), общий объем RAM (в мегабайтах), размер диска -hd (в гигабайтах), скорость считывающего устройства CD (например, 4х) и цена - price. Отношение Laptop аналогично отношению РС за исключением того, что вместо скорости CD содержится размер экрана -screen (в дюймах). В отношении Printer для каждой модели принтера указывается, является ли он цветным - color ('y', если цветной), тип принтера - type (лазерный - Laser, струйный - Jet или матричный - Matrix) и цена.
---------------------------------------------------------------------------
Задание: 6
Укажите производителя и скорость для тех ПК-блокнотов, которые имеют жесткий диск объемом не менее 10 Гбайт.
---------------------------------------------------------------------------
SELECT (SELECT maker FROM PC) speed FROM Laptop WHERE hd>=10
что нетак ???
SELECT DISTINCT Product.maker, Laptop.speed
FROM Product, Laptop
WHERE Laptop.hd >= 10
AND Product.model = Laptop.model
ВЫБРАТЬ производителя и скорость лаптопа
ИЗ Продуков и Лаптопов
ГДЕ объем hd больше либо равен 10 и модель в таблице продуктов совпадает с моделью в таблице лаптопов
Вообще интереснее решать самому, а не просить решения =)
Тем более такие элементарные задачки... Там естьнеплохой справочник, и тд и тп =)
Уже сколько лет проекту - а он все еще актуален, и развивается :)
nepoluchaetsa samomu blin ...
Задание: 7
Найдите номера моделей и цены всех продуктов (любого типа) выпущенных производителем B (латинская буква).
SELECT Product.model, PC.price, Laptop.price, Printer.price FROM Product, PC, Laptop, Printer WHERE maker='B'
chto netak ?
У тебя в запросе ты запрашиваешь модель, цену пк, цену лаптопа, цену принтера фирмы 'B'! Должно быть 2 столбца, с моделью и ценой... А у тебя сколько будет?
Используй объединение UNION! хотябы самое тупое:
select product.model, pc.price
from product, pc
where product.maker='B' and product.model = pc.model
union
ДАЛЬШЕ ПРИДУМАЙ САМ!
select product.model, pc.price
from product, pc
where product.maker='B' and product.model = pc.model
union
select product.model, laptop.price
from product , laptop
where product.maker='b' and product.model = laptop.model
vsoravno nevihodit
что даёт Union ? объеденяет несколько запросов , ды ?
vsoravno nevihodit
Про таблицу принтеров забыл
select product.model, pc.price
from product, pc
where product.maker='B' and product.model = pc.model
union
select product.model, laptop.price
from product , laptop
where product.maker='b' and product.model = laptop.model
union select product.model,printer.price
from product , printer
where product.maker='b' and product.model = printer.model
получилось , ура.......
Найдите производителя, выпускающего ПК, но не ПК-блокноты.
SELECT maker from product where type='pc'
что снова нетак ?7?
AND
product.maker not in (
select product.maker
from product
where product.type = 'Laptop')
А вообще знаешь что? чего тебя так и дальше тащить? Вот почитай и сам, сам
http://www.sql.ru/docs/sql/u_sql/index.shtml
Обычная операция разности... Пофантазировал бы хоть немного сам что ли :)
А вообще тм на самом сайте есть справочник, ориентированный на эти задачи:
http://www.sql-ex.ru/help/select0.php
Задание: 8
Найдите производителя, выпускающего ПК, но не ПК-блокноты.
SELECT DISTINCT Product.maker
FROM Product,PC,Laptop WHERE type='pc' and Product.model<>Laptop.model
что нетак б всю ману пролистал ниче невыходит ........
вотак работает , но не та как нужно...
SELECT DISTINCT maker
FROM Product,Laptop WHERE type='pc' and Product.model<>Laptop.model
https://forum.antichat.ru/showpost.php?p=674738&postcount=12
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
select distinct product.maker
from product
where product.type='PC' and
product.maker not in (
select product.maker
from product
where product.type = 'Laptop')
SELECT DISTINCT maker
FROM Product,Laptop WHERE type='pc' and not Product.model=Laptop.model
всем спасиба .. работает на ура ... буду дальше биться головой в монитор ...
Найдите принтеры, имеющие самую высокую цену. Вывести: model, price
Как пишется "Самое большое"
SELECT model ,price FROM Printer WHERE price
lomerok, если ты будешь каждый вопрос оттуда постить, то знаний по SQL у тебя не прибавится
ну дк в мануале я ничего про ето не нашол .....
presidentua
04.05.2008, 13:27
Найдите принтеры, имеющие самую высокую цену. Вывести: model, price
Как пишется "Самое большое"
SELECT model ,price FROM Printer WHERE priceSELECT model,price FROM Printer ORDER BY price LIMIT 5
SELECT model,price FROM Printer ORDER BY price LIMIT 5
Incorrect syntax near 'LIMIT'.
Это нахождения максимального значения в колонке-то нету в мануале? о_О
ЗЫ select model, price from printer where price = (select max(price) from printer)
presidentua
04.05.2008, 13:36
Incorrect syntax near 'LIMIT'.
Добавь кавычки...
Добавь кавычки...
дабавлял ....
Задание: 11
Найти тех производителей ПК, все модели ПК которых имеются в таблице PC.
ввожу :
SELECT DISTINCT maker FROM Product,PC WHERE PC.model=Product.model and type='pc' and not type='Laptop' and not type='Printer'
в чем ошибка ???
вроде всё верно ....
presidentua, код
SELECT model,price FROM Printer ORDER BY price LIMIT 5
Выведет первые 5 записей, отсортированных по полю price в порядке возрастания. Это совсем не подходит к условиям
Задание: 11
Найти тех производителей ПК, все модели ПК которых имеются в таблице PC.
----------
SELECT DISTINCT maker FROM Product,PC WHERE PC.model=Product.model and not(type='Laptop' and type='Printer')
nтоже нефурычит ...
presidentua
04.05.2008, 13:53
presidentua, код
SELECT model,price FROM Printer ORDER BY price LIMIT 5
Выведет первые 5 записей, отсортированных по полю price в порядке возрастания. Это совсем не подходит к условиям
Согласен. Выведет 5 принтеров с самой большой ценой. Но не с максимальной. Просто условия не совсем четко звучат.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot