
- •Лабораторная работа №1 Тема: Анализ предметной области задачи. Проектирование структуры базы данных
- •Постановка задачи
- •Лабораторная работа №2 Тема: Создание таблиц бд инструментальным способом
- •Задания:
- •Лабораторная работа №5 Тема: Определение отношений между таблицами
- •Задание:
- •Лабораторная работа №6 Тема: Создание таблиц бд реляционным способом
- •Задание:
- •Лабораторная работа №7 Тема: Навигация нд. Модификация нд
- •Задание:
- •Лабораторная работа №9 Тема: Поиск записей
- •Лабораторная работа №10 Тема: Запросы
- •Задание:
- •Лабораторная работа №11 Тема: Запросы с параметром. Динамический запрос
- •Задание:
- •Лабораторная работа №12 Тема: Простой отчет (Rave Report, qReport)
- •Задание:
- •Создание простейшего отчёта с помощью qReport
- •Лабораторная работа №13 Тема: Отчет с группировкой. Отчет со связанными таблицами
- •Задание:
- •Создание отчёта с группировкой (qReport)
- •Создание отчёта с группировкой (Rave Report)
- •Создание отчёта для связных нд (qReport)
- •Лабораторная работа №14 Тема: Экспорт и импорт данных в Word, Excel
- •Задание:
- •Экспорт в ms excel
- •Экспорт в ms Word
- •Лабораторная работа №15 Тема: Экспорт и импорт данных в Calc, Writer
Лабораторная работа №6 Тема: Создание таблиц бд реляционным способом
Цель: Познакомиться с SQL-запросом. Создать таблицу реляционным способом.
Задание:
Изучить компонент Query.
Написать SQL – запрос создания таблиц.
Создать таблицы реляционным способом.
Отобразить таблицы в Delphi.
Оформить отчет.
Создание таблицы БД реляционным способом основано на использовании SQL – запросов.
В качестве набора данных, который обеспечивает возможность создания и применения SQL – запросов, рассматривается компонент Query.
Основное свойство Query – SQL, в процессе проектирования приложения в этом свойстве необходимо сформировать некоторый предварительный запрос SQL, который показал бы, с какой таблицей будет проводиться работа.
Для связи Query с базой данных служит свойство DatabaseName (в нашем случае это Oplata).
Создание таблицы осуществляется с помощью оператора CREATE TABLE, имеющего следующее описание:
CREATE TABLE Имя_таблицы
(Имя_поля Тип_данных,
. . .
Имя_поля Тип_данных
[PRIMARY KEY (Список_полей)])
Обязательно должно быть указано имя таблицы, а также имя и тип хотя бы одного поля. Для таблиц в формате Paradox должен определён первичный ключ. С этой целью указывается описатель PRIMARY KEY и затем в скобках перечисляется список полей, образующих первичный ключ. Ключевые поля должны располагаться в начале списка полей создаваемой таблицы.
Для визуального отображения создаваемых с помощью запросов таблиц необходимо воспользоваться невизуальными компонентами Table и DataSource.
Создание таблиц:
1) Spec2.db
Query1.Close;
Query1.DatabaseName:='Oplata';
Query1.SQL.Clear;
Table1.DatabaseName:='Oplata';
Table1.TableName:='Spec2';
DataSource1.DataSet:=Table1;
if not Table1.Exists then
begin
Query1.SQL.Add('create table Spec2');
Query1.SQL.Add('(kod_spec char(4), nazvanie char(30), srok_ob numeric, plata_b money, plata_k money');
Query1.SQL.Add(',primary key(kod_spec) )');
Query1.ExecSQL;
end;
DBGrid1.DataSource:=DataSource1;
Table1.Open;
2) Dogovor2.db
Query1.Close;
Query1.DatabaseName:='Oplata';
Query1.SQL.Clear;
Table4.DatabaseName:='Oplata';
Table4.TableName:='Dogovor2';
DataSource4.DataSet:=Table4;
if not Table4.Exists then
begin
Query1.SQL.Add('create table Dogovor2');
Query1.SQL.Add('(nom_dogovora char(10), kod_styd char(4), data date, symma money');
Query1.SQL.Add(',primary key(nom_dogovora))');
Query1.ExecSQL;
end;
DBGrid4.DataSource:=DataSource4;
Table4.Open;
3) Gryppa2.db
Query1.Close;
Query1.DatabaseName:='Oplata';
Query1.SQL.Clear;
Table3.DatabaseName:='Oplata';
Table3.TableName:='Gryppa2';
DataSource3.DataSet:=Table3;
if not Table3.Exists then
begin
Query1.SQL.Add('create table Gryppa2');
Query1.SQL.Add('(Nazvanie_gr char(4), kyrator char(20), kod_spec char(4)');
Query1.SQL.Add(',primary key(nazvanie_gr))');
Query1.ExecSQL;
end;
DBGrid3.DataSource:=DataSource3;
Table3.Open;
4) Stydent2.db
Query1.Close;
Query1.DatabaseName:='Oplata';
Query1.SQL.Clear;
Table2.DatabaseName:='Oplata';
Table2.TableName:='Stydent2';
DataSource2.DataSet:=Table2;
if not Table2.Exists then
begin
Query1.SQL.Add('create table Stydent2');
Query1.SQL.Add('(Kod_styd char(4),nazvanie_gr char(4),FIO char(20),forma_ob char(10),Nom_ser_pasp_st char(15),Nom_ser_pasp_rod char(15),Propiska char(15)');
Query1.SQL.Add(',primary key(Kod_styd))');
Query1.ExecSQL;
end;
DBGrid2.DataSource:=DataSource2;
Table2.Open;
5) Plat_por2.db
Query1.Close;
Query1.DatabaseName:='Oplata';
Query1.SQL.Clear;
Table5.DatabaseName:='Oplata';
Table5.TableName:='Plat_por2';
DataSource5.DataSet:=Table5;
if not Table5.Exists then
begin
Query1.SQL.Add('create table Plat_por2');
Query1.SQL.Add('(Nom_pl_por char(10), Nom_dogovora char(10), Data_opl date');
Query1.SQL.Add(',primary key(Nom_pl_por))');
Query1.ExecSQL;
end;
DBGrid5.DataSource:=DataSource5;
Table5.Open;