Материал: 2391

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

DELETE FROM ADMIN_PAY.Pay WHERE T_number = 0 AND Sum_pay = 0;

48

2. УПРАЖНЕНИЯ НА SQL

2.1. База данных «Книжное дело»

На рисунке 21 представлен фрагмент упрощенной схемы данных для выполнения индивидуальных заданий. Прежде чем приступить к выполнению заданий необходимо в новой базе данных с названием DB_BOOKS создать таблицы со структурой, показанной в таблицах 7–11, установить связи между таблицами, затем заполнить тестовыми данными.

Purchases

 

 

Books

 

 

 

Authors

Code_book

 

 

Code_book

 

 

 

Code_author

Date_order

 

 

Title_book

 

 

 

Name_author

Code_delivery

 

 

Code_author

 

 

 

Birthday

Type_purchase

 

 

Pages

 

 

 

 

Cost

 

 

Code_publish

 

 

 

 

Amount

 

 

 

 

 

 

 

Code_purchase

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Deliveries

 

 

Publishing_ho

 

 

 

 

 

 

use

 

Code_delivery

Name_delivery

Name_company

Address

Phone

INN

Code_publish

Publish

City

Рис. 21. Фрагмент базы данных «Книжное дело»

Связь между таблицами осуществляется с помощью следующих пар полей с типом связи «один-ко-многим» соответственно:

1.Books.Code_book - Purchases.Code_book;

2.Deliveries.Code_delivery - Purchases.Code_delivery;

3.Authors.Code_author - Books.Code_author;

4.Publising_house.Code_publish - Books.Code_publish.

Таблица 7

Покупки (название таблицы Purchases)

Название поля

Тип поля

Описание поля

Code_book

Integer

Код закупаемой книги

Date_order

Datetime

Дата заказа книги

Code_delivery

Integer

Код поставщика

Type_purchase

Bit

Тип закупки (опт/ розница)

Cost

Money

Стоимость единицы товара

Amount

Integer

Количество экземпляров

49

Code_purchase

 

Integer

Код покупки

 

 

 

 

Таблица 8

 

Справочник книг (название таблицы Books)

 

 

 

 

 

Название поля

 

Тип поля

Описание поля

Code_book

 

Integer

Код книги

 

Title_book

 

Char

Название книги

 

Code_author

 

Integer

Код автора

 

Pages

 

Integer

Количество страниц

 

Code_publish

 

Integer

Код издательства

 

 

 

 

Таблица 9

Справочник авторов (название таблицы Authors)

 

 

 

 

 

Название поля

 

Тип поля

Описание поля

Code_author

 

Integer

Код автора

 

Name_ author

 

Char

Фамилия, имя, отчество автора

 

Birthday

 

Datetime

Дата рождения

 

 

 

 

Таблица 10

Справочник поставщиков (название таблицы Deliveries)

 

 

 

 

 

Название поля

 

Тип поля

Описание поля

Code_delivery

 

Integer

Код поставщика

 

Name_delivery

 

Char

Фамилия, и., о. ответственного лица

 

Name_company

 

Char

Название компании-поставщика

 

Address

 

Char

Юридический адрес

 

Phone

 

Numeric

Телефон контактный

 

INN

 

Char

ИНН

 

Таблица 11

Справочник издательств (название таблицы Publishing_house)

Название поля

Тип поля

Описание поля

Code_publish

Integer

Код издательства

Publish

Char

Издательство

City

Char

Город

2.2. Упражнения с использованием операторов обработки данных для БД «Книжное дело»

Сортировка.

1. Выбрать все сведения о книгах из таблицы Books и отсортировать результат по коду книги (поле Code_book).

50

2.Выбрать из таблицы Books коды книг, названия и количество страниц (поля Code_book, Title_book и Pages), отсортировать результат по названиям книг (поле Title_book по возрастанию) и по полю Pages (по убыванию).

3.Выбрать из таблицы Deliveries список поставщиков (поля Name_delivery, Phone и INN), отсортировать результат по полю INN (по убыванию).

Изменение порядка следования полей.

4.Выбрать все поля из таблицы Deliveries таким образом, чтобы в результате порядок столбцов был следующим: Name_delivery, INN, Phone, Address, Code_delivery.

5.Выбрать все поля из таблицы Publishing_house таким образом, чтобы в результате порядок столбцов был следующим: Publish, City, Code_publish.

Выбор некоторых полей из двух таблиц.

6.Выбрать из таблицы Books названия книг и количество страниц

(поля Title_book и Pages), а из таблицы Authors выбрать имя соответствующего автора книги (поле Name_ author).

7.Выбрать из таблицы Books названия книг и количество страниц

(поля Title_book и Pages), а из таблицы Deliveries выбрать имя соответствующего поставщика книги (поле Name_delivery).

8.Выбрать из таблицы Books названия книг и количество страниц

(поля Title_book и Pages), а из таблицы Publishing_house выбрать название соответствующего издательства и места издания (поля Publish и City).

Условие неточного совпадения.

9.Выбрать из справочника поставщиков (таблица Deliveries) названия компаний, телефоны и ИНН (поля Name_company, Phone и INN),

укоторых название компании (поле Name_company) начинается с ‘ОАО’.

10.Выбрать из таблицы Books названия книг и количество страниц

(поля Title_book и Pages), а из таблицы Authors выбрать имя соответствующего автора книг (поле Name_ author), у которых название книги начинается со слова ‘Мемуары’.

11.Выбрать из таблицы Authors фамилии, имена, отчества авторов (поле Name_ author), значения которых начинаются с ‘Иванов’.

Точное несовпадение значений одного из полей.

51

12.Вывести список названий издательств (поле Publish) из таблицы Publishing_house, которые не находятся в городе ‘Москва’ (условие по полю City).

13.Вывести список названий книг (поле Title_book) из таблицы Books, которые выпущены любыми издательствами, кроме издательства

‘Питер-Софт’ (поле Publish из таблицы Publishing_house).

Выбор записей по диапазону значений (Between).

14.Вывести фамилии, имена, отчества авторов (поле Name_author) из таблицы Authors, у которых дата рождения (поле Birthday) находится в диапазоне 01.01.1840 – 01.06.1860.

15.Вывести список названий книг (поле Title_book из таблицы Books) и количество экземпляров (поле Amount из таблицы Purchases), которые были закуплены в период с 12.03.2003 по 15.06.2003 (условие по полю Date_order из таблицы Purchases).

16.Вывести список названий книг (поле Title_book) и количество страниц (поле Pages) из таблицы Books, у которых объем в страницах укладывается в диапазон 200 – 300 (условие по полю Pages).

17.Вывести список фамилий, имен, отчеств авторов (поле Name_author) из таблицы Authors, у которых фамилия начинается на одну из букв диапазона ‘В’ – ‘Г’ (условие по полю Name_author).

Выбор записей по диапазону значений (In).

18.Вывести список названий книг (поле Title_book из таблицы Books) и количество (поле Amount из таблицы Purchases), которые были поставлены поставщиками с кодами 3, 7, 9, 11 (условие по полю

Code_delivery из таблицы Purchases).

19.Вывести список названий книг (поле Title_book) из таблицы Books, которые выпущены следующими издательствами: ‘Питер-Софт’, ‘Альфа’, ‘Наука’ (условие по полю Publish из таблицы Publishing_house).

20.Вывести список названий книг (поле Title_book) из таблицы Books, которые написаны следующими авторами: ‘Толстой Л.Н.’, ‘Достоевский Ф.М.’, ‘Пушкин А.С.’ (условие по полю Name_author из таблицы Authors).

Выбор записей с использованием Like.

21.Вывести список авторов (поле Name_author) из таблицы Authors, которые начинаются на букву ‘К’.

22.Вывести названия издательств (поле Publish) из таблицы Publishing_house, которые содержат в названии сочетание ‘софт’.

23.Выбрать названия компаний (поле Name_company) из таблицы Deliveries, у которых значение оканчивается на ‘ский’.

52

Источник: https://studfile.net/preview/16408448/