Скачать 1.91 Mb.
|
Задание 2. Создайте просмотр rent_cost, который позволит просмотреть данные таблицы Rent.
CREATE VIEW RENT_COST AS SELECT Тур, Rn FROM Rent
Выбор просмотра RENT_COST Поскольку просмотр — это виртуальная таблица, то можно модифицировать ее данные. Однако это возможно, если запрос соответствует трем условиям:
Такой запрос называют модифицируемый (updatable). Если в определении просмотра нарушено хотя бы одно из выше перечисленных условий, то он — не модифицируемый (read-only). rent_cost —. модифицируемый запрос. Чтобы убедиться, можете переоценить стоимость аренды однокомнатных квартир.
UPDATE RENT_COST SET Rn = 70 WHERE Rn = 60
Задание 3..
CREATE VIEW REALTY_COST AS SELECT ADR, RN FROM REALTY, RENT WHERE RENT.TYP = REALTY.TYP
UPDATE REALTY_COST SET RN = 60 WHERE RN = 70 Задание 4. Выполнить отбор информации об объекте и владельцах недвижимости в таблицах базы данных Exmpl.gdb. Задание 5. Проверить информацию об арендованных объектах недвижимости на введенный период. Контрольный вопросы
SELECT * FROM REALTY_COST Лабораторная работа 28 Создание и использование хранимых процедур. Цель работы: Научится создавать, ставить на выполнение, редактировать и удалять хранимую процедуру. Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен уметь:
знать:
Краткие теоретические и учебно-методические материалы по теме лабораторной работы Хранимая процедура — это отдельная программа, написанная на процедурном языке используемого сервера баз данных. Существует две разновидности хранимых процедур: процедуры выбора (аналог SELECT-запросов) и исполняемые процедуры. Процедуры выбора возвращают наборы данных, которые состоят из строк или отдельных значений. Исполняемые процедуры не возвращают данные. Они предназначены для исполнения команд, например, delete. Синтаксис объявления хранимой процедуры: CREATE PROCEDURE ИмяПроцедуры [(вхПараметр <�тип> [,вхПараметр <�тип> ...])] [RETURNS (выхПараметр <�тип> [,выхПараметр <�тип> ...])] AS <�телоПроцедуры> [;] Для передачи процедуре значений из вызывающего приложения используют вхПараметр. Для возвращения результатов хранимой процедуры — выхПараметр. Тело процедуры имеет формат: [DECLARE VARIABLE имяПерем <�тип>; [DECLARE VARIABLE имяПерем <�тип>," . . . ] ] BEGIN < оператор> [...] [<�оператор>] END Ключевые слова declare variable объявляют локальные переменные процедуры. Изменение и удаление хранимых процедур Изменение хранимой процедуры производится оператором ALTER PROCEDURE ИмяПроцедуры [(вхПараметр <�тип> [,вхПараметр <.тип > ...])] [RETURNS(выхПараметр <�тип> [,выхПараметр <�тип> ...])] AS <�тело процедуры>; После выполнения оператора alter procedure предыдущее определение процедуры заменяется новым определением параметров, переменных и тела процедуры. Для удаления хранимой процедуры из базы данных используется оператор: DROP PROCEDURE ИмяПроцедуры; Исполнение хранимых процедур Запуск исполняемой хранимой процедуры производят командой execute procedure, а процедуры выбора — select. Возвращение данных Хранимые процедуры позволяют возвращать единичные данные, например, максимальное значение столбца. Такие процедуры можно исполнять, используя компонент TQuery.
В качестве примера приведем процедуру выбора, которая по значению номера арендатора (Tenant_No) возвращает все номера (Lease_ID) и даты(Lease_Date) заключенных с ним договоров. Ход работы: 1. Сохраните в текстовом файле StoredProc.sql код скрипта создания хранимой процедуры Get__Lease_Data. Код скрипта StoredProc.sql SET TERM ^; CREATE PROCEDURE Get_Lease_Data ( Tenant__No SMALLINT) RETURNS (Lease_ID SMALLINT, LeaseJDate TIMESTAMP) AS BEGIN FOR SELECT DISTINCT Lease.NLease, Lease.LDate FROM Tenant, Lease WHERE Tenant.NTn = :Tenant_No AND Lease.NTn = Tenant.NTn INTO :Lease_ID, :Lease_Date DO SUSPEND; END ^ Примечание: Поясним команду set term. Точка с запятой (;) для утилиты Interactive SQL означает конец оператора. Другими словами, каждый оператор, заключенный в разделители, должен быть исполнен. Чтобы этого не произошло в момент создания хранимой процедуры, команда set term назначает разделитель операторов ^ взамен точки с запятой. Он не инициирует исполнение команд.
Ход работы: Создадим исполняемую хранимую процедуру Add_0wner.
CREATE PROCEDURE Add_0wner (NOn SMALLINT, Ow CHAR(10), AdO CHAR(20)) AS BEGIN INSERT INTO OWNER (NOn, Ow, AdO) VALUES (:NOn, :Ow, :AdO); SUSPEND; END 4. Исполните процедуру следующей командой: EXECUTE PROCEDURE Add_0wner (4,'Моренко','Сумская 6') 5. Чтобы изменения вступили в силу, выполните команду Transactions/Commit.
Ход работы:
select * from Get_Lease_Data. Результат исполнения команды. 2. Измените значение входного параметра на 2 и вы увидите, что в отличие от просмотра хранимая процедура позволяет реализовать динамический запрос.
В случаях, когда сервер базы данных (например, Sybase) поддерживает метод OPEN компонента TStoredProc, то предпочтительнее использовать его. Для InterBase-сервера это не так, поэтому рассмотрим возвращение наборов данных с помощью компонента TQuery. Ход работы:
Ход работы:
CREATE PROCEDURE GET_Last_Realt RETURNS (Last_Realt CHAR(20)) AS BEGIN /* Выбрать адрес недвижимости, договор на аренду которой заключался последним */ SELECT Adr FROM Lease WHERE (LDate IN (SELECT MAX(LDate) FROM Lease)) INTO :Last_Realt; SUSPEND; END
Возвращение данных с помощью TQuery
Хранимые процедуры можно применять для возвращения некоторого результата. Например, суммарной стоимости аренды объектов одним из арендаторов. Создайте процедуру Get_SumRent, используя скрипт SumRent.sql Код скрипта SumRent.sql CREATE PROCEDURE Get_SumRent(Tenant CHAR(10)) RETURNS (Rent_SUM INTEGER) AS BEGIN SELECT SUM(Rent.Rn) FROM Tenant, Lease, Realty, Rent WHERE (Tenant.Tn = :Tenant) AND (Lease.NTn = Tenant.NTn) AND (Realty.AdR = Lease.AdR) AND (Rent.Тур = Realty.Тур) GROUP BY Tenant.Tn, Rent.Rn INTO :Rent_SUM; SUSPEND; END Такие хранимые процедуры следует исполнять, используя компонент TStoredProc. Ход работы:
|
Республики башкортостан Государственное бюджетное образовательное учреждение среднего профессионального образования |
Республики башкортостан Государственное бюджетное образовательное учреждение среднего профессионального образования |
||
Республики Мордовия Государственное бюджетное образовательное учреждение... Федерации от 22 июня 2010 года №678. Организация – разработчик Государственное бюджетное образовательное учреждение Республики Мордовия... |
Республики Татарстан Государственное бюджетное образовательное учреждение... Государственное бюджетное образовательное учреждение среднего профессионального образования |
||
Областное государственное бюджетное образовательное учреждение среднего... Областное государственное бюджетное образовательное учреждение среднего профессионального образования |
Отчет о результатах самообследования государственное бюджетное образовательное... Полное наименование образовательного учреждения в соответствии с Уставом Государственное бюджетное образовательное учреждение среднего... |
||
Отчет о результатах самообследования государственное бюджетное образовательное... Полное наименование образовательного учреждения в соответствии с Уставом Государственное бюджетное образовательное учреждение среднего... |
Образовательное государственное бюджетное учреждение среднего профессионального... Министерство здравоохранения иркутской области образовательное государственное бюджетное учреждение |
||
Республики Татарстан Государственное автономное образовательное учреждение... Государственное автономное образовательное учреждение среднего профессионального образования |
Республики Татарстан Государственное автономное образовательное учреждение... Государственное автономное образовательное учреждение среднего профессионального образования |
||
Республики Башкортостан Государственное автономное образовательное... Городская студенческая научно-практическая конференция «Наука. Фантазия. Реальность», посвященная Году экологии |
Республики Мордовия Государственное бюджетное образовательное учреждение... Разработка проекта основной профессиональной образовательной программы в соответствии с фгос-3: опыт, проблемы, перспективы |
||
Данные учреждения среднего профессионального образования Государственное бюджетное образовательное учреждение среднего профессионального образования Колледж декоративно-прикладного искусства... |
Среднего профессионального образования «государственный медицинский... Областное государственное образовательное бюджетное учреждение среднего профессионального образования |
||
Программам Государственное бюджетное образовательное учреждение среднего... Государственное бюджетное образовательное учреждение среднего профессионального образования |
Отчет о результатах самообследования (по состоянию на 01 апреля 2014г.) Полное наименование образовательного учреждения в соответствии с Уставом: государственное бюджетное образовательное учреждение начального... |
Поиск |