V. SQL-код и запросы для работы с базой данных




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

Изначально, SQL был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций:

· создание в базе данных новой таблицы;

· добавление в таблицу новых записей;

· изменение записей;

· удаление записей;

· выборка записей из одной или нескольких таблиц (в соответствии с заданным условием);

· изменение структур таблиц.

Со временем, SQL усложнился — обогатился новыми конструкциями, обеспечил возможность описания и управления новыми хранимыми объектами (например, индексы, представления, триггеры и хранимые процедуры) — и стал приобретать черты, свойственные языкам программирования.

При всех своих изменениях, SQL остаётся единственным механизмом связи между прикладным программным обеспечением и базой данных. В то же время, современные СУБД, а, также, информационные системы, использующие СУБД, предоставляют пользователю развитые средства визуального построения запросов.

Каждое предложение SQL — это либо запрос данных из базы, либо обращение к базе данных, которое приводит к изменению данных в базе. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов:

· запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта);

· запросы на получение данных;

· запросы на добавление новых данных (записей)

· запросы на удаление данных;

· обращения к СУБД.

Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы — это операции над таблицами.

Постоим запросы для нашей базы данных.

Создание таблицы «Автостоянка» для нашей базы данных SQL – коде будет выглядеть следующим образом:

CREATE TABLE AUTOSTAY (

NUMAS INTEGER NOT NULL,

ADDRESS VARCHAR(30) default null,

TEL INTEGER default null

);

Создание первичного ключа для данной таблицы будет состоять в следующем запросе:

ALTER TABLE AUTOSTAY ADD PRIMARY KEY (NUMAS);

Остальные запросы по созданию таблиц и первичных ключей приведены в приложении А.

Для работы с базой данных необходимо чтобы таблицы были заполнены информацией. Запрос на заполнение таблицы «Автостоянка» будет выглядеть таким образом:

INSERT INTO AUTOSTAY (NUMAS, ADDRESS, TEL) VALUES (1, 'Орел Приборостроительная', 12344);

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

select count(*) from client

Результат запроса:

Рисунок 2 – Визуализация запроса.

Для того, чтобы узнать сколько мест на каждой автостоянке, нужно выполнить данный запрос:

select numas as "Номер стоянки",count(numm) as "Количество мест" from stmesto group by numas

Результат запроса:

Рисунок 3 – Визуализация запроса.

Руководству автостоянки необходимо уточнить клиентов и их автомобили, это можно выполнить следующим запросом:

select c.fio,a.govnum,a.mark from client c,autom a where c.numpasp=a.numpasp

Результат запроса:

Рисунок 4 – Визуализация запроса.

Клиент запросил данные о том, какой у него номер договора и дата окончания действия договора, для этого нужно выполнить запрос так:

select c.fio,d.numdog,d.dateout from client c,documents d where d.numpasp=c.numpasp

Результат запроса:

Рисунок 5 – Визуализация запроса.

В данном запросе будет выводиться клиент, у которого самое большое количество автомобилей, зарегистрированных в сети автостоянки:

select c.fio from client c,autom a where c.numpasp=a.numpasp group by a.numpasp,c.fio having count(a.govnum)=(select max(field) from (select count(aa.govnum) as field from autom aa group by aa.numpasp))

Результат запроса:

Рисунок 6 – Визуализация запроса.

Следующим важным шагом является создание триггеров. Триггер представляет собой специальный тип хранимых процедур, запускаемых сервером автоматически при попытке изменения данных в таблицах, с которыми триггеры связаны. Каждый триггер привязывается к конкретной таблице. Все производимые им модификации данных рассматриваются как одна транзакция. В случае обнаружения ошибки или нарушения целостности данных происходит откат этой транзакции. Тем самым внесение изменений запрещается. Отменяются также все изменения, уже сделанные триггером.

Например, запрос на создание генератора для поля NUMAS таблицы "AUTOSTAY" будет выглядеть в SQL – коде так:

CREATE GENERATOR GEN_NUMAS;

SET GENERATOR GEN_NUMAS TO 0;



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: