
- •Работа с бд в архитектуре ”клиент-сервер”
- •2.Работа с утилитой bde Administrator
- •2.1. Назначение bde Administrator
- •2.2. Создание псевдонима бд
- •3. Работа с утилитой Windows Interactive sql (wisql)
- •3.1. Создание новой бд
- •3.2. Установка соединения
- •3.3. Создание таблиц бд
- •3.4. Просмотр структуры компонентов базы данных
- •4.2. Создание триггера
- •4.3. Значения old и new
- •4.4. Обеспечение каскадных воздействий
- •5. Работа с хранимыми процедурами
- •5.1. Понятие хранимой процедуры
- •5.2. Создание хранимой процедуры
- •6. Использование генераторов
- •7.3. Сбор статистики о бд
- •7.3.1. Статистические данные непосредственно о бд
- •7.3.2. Анализ бд
- •7.4. Регистрация пользователей
- •7.5. Поддержка базы данных
- •Validate record fragments - проверять фрагменты записей
- •8.Задание к лабораторной работе
- •Работа с утилитой Windows Interactive sql (wisql)
- •9. Работа с утилитой InterBase Server Manager.
- •Приложение 1
- •Формат sql-операторов (субд InterBase)
- •База данных
- •Создание базы данных
- •Определение типа данных
- •Домены Создание домена
- •Ограничения, накладываемые на значения полей, ассоциированных с доменом
- •Определение ограничения внешнего ключа и ссылочной целостности с родительской таблицей
- •Удаление столбца (столбцов) из таблицы бд
- •Обращение к хранимой процедуре (утилита wisql)
- •Оператор выбора select
- •Принудительная выдача выходных параметров (только хранимые процедуры)
- •Отъем привилегий
- •Приложение 2 Пример Script-файла
Обращение к хранимой процедуре (утилита wisql)
EXECUTE PROCEDURE имя [параметр [, параметр ...]];
Тело процедуры
[<объявление локальных переменных процедуры>]
BEGIN
<оператор>
[<оператор> ...]
END
Изменение хранимой процедуры
ALTER PROCEDURE ИмяПроцедуры
[ (входной_параметр тип данных [, входной_параметр тип данных...])] [RETURNS
(выходной_параметр тип_данных [, выходной_параметр тип_данных ...])] AS <тело процедуры>;
Удаление хранимой процедуры
DROP PROCEDURE ИмяПроцедуры;
Алгоритмический язык триггеров и хранимых процедур
Объявление локальных переменных
DECLARE VARIABLE <имя переменной > <тип данных>;
Оператор присваивания
Имя переменной = выражение;
Условный оператор
IF (<условие>) THEN
<оператор 1>
[ELSE <оператор 2>]
Оператор выбора select
Стандартный оператор SELECT InterBase, расширенный за счет предложения INTO:
SELECT [DISTINCT I ALL] {* ! <значение1> [, <значение2>…]}
FROM <тaблицal> [, < таблица2> ...]
[WHERE <условия поиска>]
[GROUP BY столбец [COLLATE collation]
[,столбец1 [COLLATE collation]…]
[HAVING < условия_поиска >]
[UNION <onepaтop_select>]
[PLAN <план выполнения запроса>]
[ORDER BY <список столбцов>]
INTO : переменная [, переменная...]
Оператор циклической выборки
FOR<оператор SELECT> DO <составной оператор>;
Принудительная выдача выходных параметров (только хранимые процедуры)
SUSPEND;
Оператор цикла
WHILE (<условие>) DO <оператор>
Выход из процедуры, триггера
EXIT;
Вложенный вызов другой хранимой процедуры
EXECUTE PROCEDURE имя[параметр[,параметр…]];[RETURNING_VALUES параметр [, параметр…]];
Инициация наступления события
POST EVENT "Имя события";
Обращение к старому и новому значениям столбца(только триггеры)
OLD.ИмяСтолбца
NEW.ИмяСтолбца
Триггеры
Создание триггера
CREATE TRIGGER ИмяТриггера FOR ИмяТаблицы
[ACTIVE ! INACTIVE]
{BEFORE ! AFTER}
{DELETE ! INSERT ! UPDATE}
[POSITION номер] AS <тело триггера>
Структура тела триггера
[<объявление локальных переменных процедуры>]
BEGIN
<оператор> [<оператор> ... ]
END
Изменение существующего триггера
ALTER TRIGGER ИмяТриггера FOR ИмяТаблицы
[ACTIVE ! INACTIVE]
{BEFORE ! AFTER}
{DELETE ! INSERT ! UPDATE}
[POSITION номер] AS <тело триггера>
Удаление триггера
DROP TRIGGER ИмяТриггера;
Генераторы
Создание генератора
CREATE GENERATOR ИмяГенератора;
Установка стартового значения генератора
SET GENERATOR ИмяГенератора ТО СтартовоеЗначение;
Транзакции
Старт транзакции
SET TRANSACTION [READ WRITE ! READ ONLY]
[WAIT ! NO WAIT]
[[ISOLATION LEVEL] {SNAPSHOT [TABLE STABILITY]
READ COMMITTED [[NO] RECORD_VERSION]}]
[RESERVING <список таблиц> [FOR [SHARED ! PROTECTED] [READ ! WRITE]],[<список таблиц>…];
События
Инициация наступления события
POST_EVENT "Имя события";
UDF (Функции, определяемые пользователем)
Объявление UDF (функций, определяемых пользователем) в базе данных
DECLARE EXTERNAL FUNCTION ИмяФункции
[<Тип данных> ! CSTRING (число) [, <Тип данных> ! CSTRING (число) ...]] RETURNS {< Тип данных > [BY VALUE] ! CSTRING (число)} ENTRY_POINT "<Имя функции в DLL>"
MODULE_NAME "< Имя DLL >";
Привилегии доступа
Предоставление привилегий доступа к таблицам БД, просмотрам, вызовам процедур
GRANT {
{ALL [PRIVILEGES] ! SELECT ! DELETE ! INSERT ! UPDATE
[(столбец [, столбец ...])]}
ON [TABLE] {ИмяТаблицы ! ИмяПросмотра}
TO {<объект> ! <список_пользователей>}
! EXECUTE ON PROCEDURE procname
TO {<объект > ! < список_пользователей>}
};
<объект > = PROCEDURE ИмяПроцедуры ! TRIGGER ИмяТриггера
! VIEW ИмяПросмотра ! [USER] ИмяПользователя ! PUBLIC [,<объект>]
< список_пользователей > = [USER] ИмяПользователя [, [USER] ИмяПользователя...] [WITH GRANT OPTION]