Язык запросов SQL

         

Структура базы данных магазина спорттоваров



Рисунок 3.3. Структура базы данных магазина спорттоваров


Таблица CUSTOMER поддерживает отношение с таблицей INVOICE, используя их общий столбец CustomerlD. А отношение таблицы INVOICE с таблицей INVOICE_LINE поддерживается с помощью общего столбца InvoiceNumber. Отношение же таблицы PRODUCT с таблицей INVOICE_LINE поддерживается с помощью общего столбца ProductDD. В сущности эти отношения и делают саму базу реляционной, т.е. работающей на основе отношений.

Чтобы получить информацию о тех клиентах, которые купили лыжное оборудование, необходимы данные из следующих полей: FirstName, LastName, Street, City, State и Zipcode из таблицы CUSTOMER; Category — из таблицы PRODUCT; InvoiceNumber — из таблицы INVOICE, а также LineNumber— из таблицы INVOICE_LINE. Нужное представление можно создавать поэтапно, используя для этого следующие команды:

CREATE VIEW SKI_CUST1 AS

    SELECT FirstName,

         LastName, Street,

         City,

         State,

         Zipcode,

         InvoiceNumber

    FROM CUSTOMER JOIN INVOICE

    USING (CUSTOMER_ID) ;

CREATE VIEW SKI_CUST2 AS

   SELECT FirstName,

          LastName,

         Street,



         City,

         State,

         Zipcode,

         ProductID

    FROM SKI_CUST1 JOIN INVOICE_LINE

   USING (InvoiceNumber) ;

CREATE VIEW SKI_CUST3 AS

SELECT FirstName,

         LastName,

         Street,

         City,

         State,

         Zipcode,

         Category

    FROM SKI_CUST2 JOIN PRODUCT

   USING (ProductID) ;

CREATE VIEW SKI_CUST AS

   SELECT DISTINCT FirstName,

         LastName,

         Street,

         City,

         State,

         Zipcode

   FROM SKI_CUST3

   WHERE CATEGORY = 'Ski' ;

Эти операторы CREATE VIEW соединяют данные из множества таблиц, используя для этого оператор JOIN. Диаграмма всего этого процесса показана на Рисунок 3.4.



Содержание раздела