Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания лабы БД программисты.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
797.7 Кб
Скачать

Лабораторная работа №6 Тема: Создание таблиц бд реляционным способом

Цель: Познакомиться с SQL-запросом. Создать таблицу реляционным способом.

Задание:

  1. Изучить компонент Query.

  2. Написать SQL – запрос создания таблиц.

  3. Создать таблицы реляционным способом.

  4. Отобразить таблицы в Delphi.

  5. Оформить отчет.

Создание таблицы БД реляционным способом основано на использовании 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;