Иллюстрированный самоучитель по SQL для начинающих

Компоненты SQL

Создание многотабличного представления

Чтобы получать ответы на имеющиеся вопросы, часто приходится выбирать данные не менее чем из двух таблиц. Скажем, вы работаете в магазине спорттоваров, и для рассылки рекламы по почте вам нужен список клиентов, купивших у вас в прошлом году лыжное снаряжение. Скорее всего, потребуется информация из следующих таблиц: CUSTOMER (клиент), PRODUCT (товар), INVOICE (счет-фактура) и INVOICE_LINE (строка счета-фактуры). На их основе можно создать многотабличное представление, которое покажет нужные данные. Создав представление, его можно использовать снова и снова. При каждом таком использовании представление отображает последние изменения в таблицах, на основе которых это представление создано.

В базе данных магазина спорттоваров имеются четыре таблицы: CUSTOMER, PRODUCT, INVOICE и INVOICE_LINE. Структура каждой из них показана в табл. 3.1.

Таблица 3.1. Таблицы базы данных магазина спорттоваров.

Таблица Столбец Тип данных Ограничение
CUSTOMER Customer iD (идентификационный номер клиента) INTEGER NOT NULL (не может быть неопределенным значением)
FirstName (имя) CHARACTER (15)  
LastName (фамилия) CHARACTER (20) NOT NULL
Street (улица) CHARACTER (25)  
City (ГОРОД) CHARACTER (20)  
State (штат) CHARACTER (2)  
Zipcode (ПОЧТОВЫЙ КОД) INTEGER  
Phone (телефон) CHARACTER (13)  
PRODUCT Product id (идентификационный номер товара) INTEGER NOT NULL
Name (название) CHARACTER (25)  
Description (описание) CHARACTER (30)  
Сategory (категория) CHARACTER (15)  
Vendor id (идентификационный номер поставщика) INTEGER  
VendorName (наименование поставщика) CHARACTER (30)  
INVOICE InvoiceNumber (номер счета-фактуры) INTEGER NOT NULL
CustomeriD (идентификационный номер покупателя) INTEGER  
InvoiceDate (дата выписки счета-фактуры) DATE  
Totalsale (всего продано на сумму) NUMERIC (9.2)  
TotalRemitted (всего оплачено) NUMERIC (9.2)  
Formof Payment (форма платежа) CHARACTER (10)  
INVOICE_LINE LineNumber (номер строки) INTEGER NOT NULL
InvoiceNumber (номер счета-фактуры) INTEGER  
Product id (идентификационный номер товара) INTEGER  
Quantity (количество) INTEGER  
SalePrice (продано по цене) NUMERIC (9.2)  
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.