В начало

БД Подписка на журналы

 

            Нужно создать локальную базу данных «Podpislka_Na_Jurnali» в среде «Interbase 6.6».

            Запускаем «IBConsole», переходим на локальный сервер, вводим пароль. Далее кликаем правой кнопкой мыши на разделе «Databases» и выбираем пункт «Create Database…». В появившемся окне вводим путь и расширение файла базы данных,  также устанавливаем размер страницы, диалект SQL, кодировку и кличку.

            Далее переходим к созданию таблиц посредством SQL-запросов, для этого из окна «IBConsole» запускаем утилиту «Interactive SQL».

CREATE TABLE Klienti (

id INTEGER NOT NULL,

FIO VARCHAR(30),

PRIMARY KEY (id));

COMMIT;

            Заполняем таблицу «Klienti» данными, для этого выбираем таблицу в дереве, кликаем по ней два раза и переходим на закладку «Data».

Рис. 1. Таблица «Klienti»

 

            Потом пишем запрос на создание таблицы «Periodichnost», в которой будет храниться периодичность издания того или иного журнала.

CREATE TABLE Periodichnost(

id INTEGER NOT NULL,

Periodichnost VARCHAR(15),

PRIMARY KEY (id));

COMMIT;

 

            Сразу же заполняем ее, таблицу «Periodichnost».

Рис. 2. Таблица «Periodichnost» с данными

           

            Далее создаем таблицу «Jurnali», в которую занесем названия журналов и их периодичность.

CREATE TABLE Jurnali (

id INTEGER NOT NULL,

Nazvanie VARCHAR(20),

Periodichnost INTEGER,

PRIMARY KEY (id),

FOREIGN KEY (Periodichnost) REFERENCES Periodichnost(id));

COMMIT;

 

            Заполняем таблицу «Jurnali» некоторыми подходящими значениями.

Рис. 3. Заполненная таблица «Jurnali»

 

            Теперь, после создания трех таблиц можно создать таблицу «Podpiski».

CREATE TABLE Podpiski(

id INTEGER NOT NULL,

Data DATE,

id_Klienta INTEGER,

id_jurnala INTEGER,

PRIMARY KEY (id),

FOREIGN KEY (id_klienta) REFERENCES Klienti(id),

FOREIGN KEY (id_jurnala) REFERENCES Jurnali(id));

COMMIT;

 

Рис. 4. Таблица «Podpiski»

 

            Теперь, если есть необходимость получить вместо «id» надо создать и выполнить запрос с левым соединением таблиц.

SELECT P.Data, K.FIO, J.Nazvanie

FROM Podpiski P

LEFT JOIN Klienti K ON P.id_klienta = K.id

LEFT JOIN Jurnali J ON P.id_jurnala = J.id;

           

Из результата запроса видно кто на что подписан, т.е. что любит читать.

Рис. 5. Результат выполнения запроса