Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Sql (https://forum.antichat.xyz/showthread.php?t=69115)

lomerok 02.05.2008 18:29

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

что нетак ???

taha 02.05.2008 18:39

Код:

SELECT DISTINCT Product.maker, Laptop.speed
    FROM Product, Laptop
        WHERE Laptop.hd >= 10
              AND  Product.model = Laptop.model

Код:

ВЫБРАТЬ производителя и скорость лаптопа
  ИЗ Продуков и Лаптопов
    ГДЕ объем hd больше либо равен 10 и модель в таблице продуктов совпадает с моделью в таблице лаптопов


VDShark 02.05.2008 20:15

Вообще интереснее решать самому, а не просить решения =)
Тем более такие элементарные задачки... Там естьнеплохой справочник, и тд и тп =)
Уже сколько лет проекту - а он все еще актуален, и развивается :)

lomerok 02.05.2008 23:20

nepoluchaetsa samomu blin ...

Задание: 7
Найдите номера моделей и цены всех продуктов (любого типа) выпущенных производителем B (латинская буква).

SELECT Product.model, PC.price, Laptop.price, Printer.price FROM Product, PC, Laptop, Printer WHERE maker='B'

chto netak ?

taha 02.05.2008 23:37

У тебя в запросе ты запрашиваешь модель, цену пк, цену лаптопа, цену принтера фирмы 'B'! Должно быть 2 столбца, с моделью и ценой... А у тебя сколько будет?

Используй объединение UNION! хотябы самое тупое:

Код:

select product.model, pc.price
  from product, pc
    where product.maker='B' and product.model = pc.model

 union

  ДАЛЬШЕ ПРИДУМАЙ САМ!


lomerok 02.05.2008 23:44

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

lomerok 02.05.2008 23:45

что даёт Union ? объеденяет несколько запросов , ды ?

VDShark 02.05.2008 23:46

Цитата:

Сообщение от lomerok
vsoravno nevihodit

Про таблицу принтеров забыл

lomerok 02.05.2008 23:48

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

получилось , ура.......

lomerok 03.05.2008 05:25

Найдите производителя, выпускающего ПК, но не ПК-блокноты.

SELECT maker from product where type='pc'

что снова нетак ?7?

.Slip 03.05.2008 05:40

not блядь

taha 03.05.2008 08:31

AND
Код:

    product.maker not in (
    select product.maker
        from product
        where product.type = 'Laptop')

А вообще знаешь что? чего тебя так и дальше тащить? Вот почитай и сам, сам
http://www.sql.ru/docs/sql/u_sql/index.shtml

VDShark 03.05.2008 11:39

Обычная операция разности... Пофантазировал бы хоть немного сам что ли :)
А вообще тм на самом сайте есть справочник, ориентированный на эти задачи:
http://www.sql-ex.ru/help/select0.php

lomerok 04.05.2008 12:08

Задание: 8
Найдите производителя, выпускающего ПК, но не ПК-блокноты.

SELECT DISTINCT Product.maker
FROM Product,PC,Laptop WHERE type='pc' and Product.model<>Laptop.model

что нетак б всю ману пролистал ниче невыходит ........

lomerok 04.05.2008 12:16

никанает ......Ж(((

lomerok 04.05.2008 12:20

вотак работает , но не та как нужно...


SELECT DISTINCT maker
FROM Product,Laptop WHERE type='pc' and Product.model<>Laptop.model

taha 04.05.2008 12:23

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')


.acme 04.05.2008 12:23

SELECT DISTINCT maker
FROM Product,Laptop WHERE type='pc' and not Product.model=Laptop.model

lomerok 04.05.2008 12:29

всем спасиба .. работает на ура ... буду дальше биться головой в монитор ...

lomerok 04.05.2008 12:42

Найдите принтеры, имеющие самую высокую цену. Вывести: model, price

Как пишется "Самое большое"
SELECT model ,price FROM Printer WHERE price

krypt3r 04.05.2008 13:20

lomerok, если ты будешь каждый вопрос оттуда постить, то знаний по SQL у тебя не прибавится

lomerok 04.05.2008 13:24

ну дк в мануале я ничего про ето не нашол .....

presidentua 04.05.2008 13:27

Цитата:

Сообщение от lomerok
Найдите принтеры, имеющие самую высокую цену. Вывести: model, price
Как пишется "Самое большое"
SELECT model ,price FROM Printer WHERE price

SELECT model,price FROM Printer ORDER BY price LIMIT 5

lomerok 04.05.2008 13:29

Цитата:

Сообщение от presidentua
SELECT model,price FROM Printer ORDER BY price LIMIT 5

Incorrect syntax near 'LIMIT'.

krypt3r 04.05.2008 13:29

Это нахождения максимального значения в колонке-то нету в мануале? о_О
ЗЫ
Код:

select model, price from printer where price = (select max(price) from printer)

lomerok 04.05.2008 13:35

спасибо krypt3r

presidentua 04.05.2008 13:36

Цитата:

Сообщение от lomerok
Incorrect syntax near 'LIMIT'.

Добавь кавычки...

lomerok 04.05.2008 13:44

Цитата:

Сообщение от presidentua
Добавь кавычки...

дабавлял ....

Задание: 11
Найти тех производителей ПК, все модели ПК которых имеются в таблице PC.

ввожу :
SELECT DISTINCT maker FROM Product,PC WHERE PC.model=Product.model and type='pc' and not type='Laptop' and not type='Printer'

в чем ошибка ???
вроде всё верно ....

krypt3r 04.05.2008 13:44

presidentua, код
Код:

SELECT model,price FROM Printer ORDER BY price LIMIT 5
Выведет первые 5 записей, отсортированных по полю price в порядке возрастания. Это совсем не подходит к условиям

lomerok 04.05.2008 13:52

Задание: 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

Цитата:

Сообщение от krypt3r
presidentua, код
Код:

SELECT model,price FROM Printer ORDER BY price LIMIT 5
Выведет первые 5 записей, отсортированных по полю price в порядке возрастания. Это совсем не подходит к условиям

Согласен. Выведет 5 принтеров с самой большой ценой. Но не с максимальной. Просто условия не совсем четко звучат.


Время: 02:05