Язык SQL – практическое использование

реклама
Практическая часть
Язык SQL – практическое использование
Создать структуру базы
1. Таблица ITEM_GROUP (категория предметов)
a. GROUP_ID – идентификатор записи
i. Тип INTEGER
ii. Первичный ключ
b. NAME – название категории
i. Тип VARCHAR(50)
ii. Не может принимать нулевые значения
c. PARENT_GROUP_ID – ссылка на родительскую категорию
i. Внешний ключ на таблицу ITEM_GROUP
ii. Может принимать нулевые значения
2. Таблица ITEM (предмет) со следующими колонками:
a. ITEM_ID – идентификатор записей в таблице
i. тип INTEGER
ii. первичный ключ
b. NAME – название предмета
i. тип VARCHAR(50)
ii. нулевые значения не допускаются
c. PRICE – цена предмета
i. тип INTEGER
ii. нулевые значения не допускаются
d. DESCRIPTION
i. тип VARCHAR(255)
ii. может принимать нулевые значения
e. GROUP_ID – ссылка на категорию
i. Внешний ключ – связь с таблицей ITEM_GROUP
3. Таблица CUSTOMER (клиент) со следующими колонками:
a. CUSTOMER_ID – идентификатор записи
i. Тип INTEGER
ii. Первичный ключ
b. EMAIL – адрес электронной почты клиента
i. Тип VARCHAR(255)
1
Практическая часть
ii. Нулевые значения не допускаются
4. Таблица ORDER со следующими колонками:
a. ORDER_ID – идентификатор записи в таблице
i. тип INTEGER
ii. первичный ключ
b. ITEM_ID – ссылка на предмет
i. Внешний ключ – связь с таблицей ITEM
ii. нулевые значения не допускаются
c. CUSTOMER_ID – ссылка на клиента
i. Внешний ключ, связь с таблицей CUSTOMER
ii. нулевые значения не допускаются
d. STATUS – статус заказа
i. Тип VARCHAR(50)
ii. Не может принимать нулевые значения
e. TIME_OF_PLACING – время размещения заказа
i. Тип TIMESTAMP
ii. Не может быть NULL
2
Практическая часть
Заполнить базу данными
1. Таблица ITEM_GROUP:
a. Корневая категория 'Winter sport’
b. Категория ‘Snowboards’ с родительской категорией WINTER SPORT
c. Категория ‘Skies’ с родительской категорией WINTER SPORT
d. Корневая категория Games
e. Категория ‘Football’ с родительской категорией Games
f.
Категория ‘Basketball’ с родительской категорией Games
g. Категория ‘Volleyball’ с родительской категорией Games
2. Таблица ITEM:
a. Burton Snowboard, 500 USD
b. Fisher ski, 400 USD
c. Mizuno volleyball shoes, 150 USD
3. Таблица CUSTOMER:
a. Customer1@mail.com
b. Customer2@mail.com
4. Таблица ORDER
a. Заказы клиента 1
i. Burton Snowboard, дата ’05 Jan 2013’, статус INCOMPLETED
ii. Mizuno volleyball shoes, дата ’01 Dec 2012’, статус COMPLETED
b. Заказы клиента 1
i. Fisher ski, дата ’15 Jan 2013’, статус COMPLETED
3
Практическая часть
Осуществить выборку данных
1. Найти все товары из категории SKI
2. Найти все товары, на которые есть незавершенные заказы.
3. Найти названия всех товаров, которые заказал Клиент 1
4. Найти идентификаторы клиентов, которые сделали больше одного заказа
5. Найти идентификаторы клиентов, которые имеют незавершенные заказы из
категории WINTER SPORT (включая подкатегории)
Используем реляционную базу данных Derby
Сайт программы:
http://db.apache.org
Документация:
http://db.apache.org/derby/manuals/index.html#latest
https://builds.apache.org/job/Derby-docs/lastSuccessfulBuild/artifact/trunk/out/ref/index.html
Для доступа к базе используем клиент Squirrel:
http://db.apache.org/derby/integrate/SQuirreL_Derby.html
Результат представить в виде трех файлов:
1. create_db.sql – c SQL запросами для создания структуры базы
2. init_db.sql – с SQL запросами для заполнения базы данными
3. select.sql – с SQL запросами для выборки данных
4
Скачать