Sql

Discussion in 'PHP' started by lomerok, 2 May 2008.

  1. lomerok

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    Уроки СКУЛЯ на 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

    что нетак ???
     
    3 people like this.
  2. taha

    taha Elder - Старейшина

    Joined:
    20 Aug 2006
    Messages:
    399
    Likes Received:
    330
    Reputations:
    251
    Code:
    SELECT DISTINCT Product.maker, Laptop.speed
         FROM Product, Laptop
            WHERE Laptop.hd >= 10
                  AND  Product.model = Laptop.model
    Code:
    ВЫБРАТЬ производителя и скорость лаптопа
      ИЗ Продуков и Лаптопов
        ГДЕ объем hd больше либо равен 10 и модель в таблице продуктов совпадает с моделью в таблице лаптопов
     
    #2 taha, 2 May 2008
    Last edited: 2 May 2008
  3. VDShark

    VDShark Elder - Старейшина

    Joined:
    1 Feb 2007
    Messages:
    260
    Likes Received:
    158
    Reputations:
    62
    Вообще интереснее решать самому, а не просить решения =)
    Тем более такие элементарные задачки... Там естьнеплохой справочник, и тд и тп =)
    Уже сколько лет проекту - а он все еще актуален, и развивается :)
     
  4. lomerok

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    nepoluchaetsa samomu blin ...

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

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

    chto netak ?
     
  5. taha

    taha Elder - Старейшина

    Joined:
    20 Aug 2006
    Messages:
    399
    Likes Received:
    330
    Reputations:
    251
    У тебя в запросе ты запрашиваешь модель, цену пк, цену лаптопа, цену принтера фирмы 'B'! Должно быть 2 столбца, с моделью и ценой... А у тебя сколько будет?

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

    Code:
    select product.model, pc.price
      from product, pc
        where product.maker='B' and product.model = pc.model
    
     union
    
       ДАЛЬШЕ ПРИДУМАЙ САМ!
    
     
  6. lomerok

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    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
     
  7. lomerok

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    что даёт Union ? объеденяет несколько запросов , ды ?
     
  8. VDShark

    VDShark Elder - Старейшина

    Joined:
    1 Feb 2007
    Messages:
    260
    Likes Received:
    158
    Reputations:
    62
    Про таблицу принтеров забыл
     
  9. lomerok

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    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

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

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    Найдите производителя, выпускающего ПК, но не ПК-блокноты.

    SELECT maker from product where type='pc'

    что снова нетак ?7?
     
  11. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    976
    Reputations:
    783
    not блядь
     
  12. taha

    taha Elder - Старейшина

    Joined:
    20 Aug 2006
    Messages:
    399
    Likes Received:
    330
    Reputations:
    251
    AND
    Code:
        product.maker not in (
         select product.maker
            from product
             where product.type = 'Laptop')
    А вообще знаешь что? чего тебя так и дальше тащить? Вот почитай и сам, сам
    http://www.sql.ru/docs/sql/u_sql/index.shtml
     
    1 person likes this.
  13. VDShark

    VDShark Elder - Старейшина

    Joined:
    1 Feb 2007
    Messages:
    260
    Likes Received:
    158
    Reputations:
    62
    Обычная операция разности... Пофантазировал бы хоть немного сам что ли :)
    А вообще тм на самом сайте есть справочник, ориентированный на эти задачи:
    http://www.sql-ex.ru/help/select0.php
     
    2 people like this.
  14. lomerok

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    Задание: 8
    Найдите производителя, выпускающего ПК, но не ПК-блокноты.

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

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

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    никанает ......Ж(((
     
  16. lomerok

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    вотак работает , но не та как нужно...


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

    taha Elder - Старейшина

    Joined:
    20 Aug 2006
    Messages:
    399
    Likes Received:
    330
    Reputations:
    251
    /showpost.php?p=674738&postcount=12
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    Code:
    select distinct product.maker
    from product
    where product.type='PC' and
        product.maker not in (
        select product.maker
        from product
        where product.type = 'Laptop')
     
    #17 taha, 4 May 2008
    Last edited: 4 May 2008
  18. .acme

    .acme Elder - Старейшина

    Joined:
    8 Nov 2007
    Messages:
    126
    Likes Received:
    36
    Reputations:
    4
    SELECT DISTINCT maker
    FROM Product,Laptop WHERE type='pc' and not Product.model=Laptop.model
     
  19. lomerok

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    всем спасиба .. работает на ура ... буду дальше биться головой в монитор ...
     
  20. lomerok

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    Найдите принтеры, имеющие самую высокую цену. Вывести: model, price

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