- •Работа с сервером MySql при помощи терминального клиента mysql.Exe
- •Введение
- •Подсоединение к серверу и отсоединение от него
- •Создание пользователейMySqLи назначение прав доступа
- •Использованиеmysqlв пакетном режиме
- •Выполнение запросов
- •Создание и выбор базы данных
- •Работа с таблицами Типы данных столбцов
- •Просмотр существующих таблиц
- •Создание таблицы
- •Просмотр структуры таблицы
- •Модификация структуры таблицы
- •Переименование таблицы
- •Добавление данных в таблицу
- •Обновление (модификация) данных в таблице
- •Удаление строк в таблице
- •Удаление таблицы
- •Определение ключей в бд Определение первичных ключей
- •Определение внешних ключей
- •Задание на лабораторную работу
- •Содержание отчета
- •Работа с сервером MySql при помощи клиента dbForge Studio for MySql
- •Введение
- •Создание соединения и подключение к серверу бд
- •Создание и редактирование таблиц
- •Определение внешних ключей
- •Просмотр и редактирование данных
- •Построение диаграммы бд
- •Экспорт схемы и данных
- •Экспорт схемы и данных вDbForge Studio for MySql версии 4.5
- •Задание на лабораторную работу
- •Содержание отчета
- •Разработка хранимых процедур и функций на сервереMySql
- •Введение
- •Создание, запуск и удаление простой процедуры
- •Создание, запуск и удаление простой функции
- •Простые и системные переменные
- •Параметры процедур и функций
- •Операторы управления ходом выполнения программы
- •Курсоры
- •Задание на лабораторную работу
- •Содержание отчета
- •Исключения и триггеры
- •Исключения
- •ОператорSignal
- •Триггеры
- •Задание на лабораторную работу
- •Содержание отчета
- •Технологии программного доступа к данным
- •КомпонентыActiveX Data Objects
- •Создание главной формы приложения для работы с бд. Соединение с базой данных
- •Создание простой формы с использованием компонентаDataGrid(форма «Детали»)
- •Использование компонентовDbEdit, иDbLookupComboBox. Программный доступ к свойствам и методам компонентаAdoDataSet(форма «Поставщики»)
- •Реализация поиска и фильтрации в базе. Программный доступ к элементам набора данных (форма «Проекты)
- •Сортировка строк в компонентеDbGrid
- •Создание форм с выбором режима просмотра или редактирования. Работа с датой и временем (форма «Поставки»)
- •Работа с изображениями в бд
- •Имитация выпадающего списка в ячейке dbGrid
- •Вызов хранимой процедуры
- •Создание отчетов
- •Задание на лабораторную работу
- •Издания и публикации
- •Разработкаweb-приложений дляMySqLна языкеPhp
- •Установка и настройкаDenver
- •Соединение с бд и вывод данных
- •Задание на лабораторную работу
Операторы управления ходом выполнения программы
Условный оператор IF..THEN имеет следующий синтаксис:
IF<условие>THEN<оператор 1>
[ELSEIF<условие>THEN<оператор 2>] ...
[ELSE<оператор 3>]
ENDIF
Оператор CASEимеет следующий синтаксис:
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSEstatement_list]
ENDCASE
Самым простым оператором цикла является оператор LOOP, имеющий следующий синтаксис:
[Метка_начала:] LOOP
<оператор>
END LOOP [Метка_конца]
Операторы цикла выполняются до тех пор, пока внутри цикла не будет выполнен оператор LEAVE< Метка_начала >, который прерывает цикл с указанной меткой.
Оператор цикла с постусловием имеет следующий синтаксис:
REPEAT
<оператор>
UNTIL <условие_выхода>
END REPEAT
Цикл будет выполняться до тех пор, пока условие выхода не станет истинным.
Оператор цикла с предусловием имеет следующий синтаксис:
WHILE <условие_выполнения> DO
<оператор>
END WHILE
Цикл будет выполняться до тех пор, пока условие выполнения будет истинным.
Курсоры
Курсор представляет собой временную таблицу, получаемую в результате запроса, которая служит для построчной обработки данных. Курсор позволяет в цикле «перебирать» строки, выполняя над ними необходимые действия. Таки образом, курсор является таблицей, возможности которой выходят за рамки классической реляционной модели (в классическом отношении отсутствует понятие порядка следования строк – строки представляют собой множество).
Для объявления курсора используется следующий оператор:
DECLARE <имя_курсора> CURSOR FOR <SQL-выражение>;
Прежде чем курсор может быть использован, его необходимо открыть:
OPEN<имя_курсора>;
После открытия указатель курсора устанавливается на первую строку. Для доступа к текущей строке открытого курсора используется оператор:
FETCH<имя_курсора>INTO<имя_переменной> [,<имя_переменной>] ...
Этот оператор помещает значения строки курсора в переменные, количество и типы данных которых соответствуют схеме (столбцам) курсора. После выполнения оператора FETCHпроисходит автоматическое продвижение на следующую строку курсора. Если более нет доступных строк (достигнута последняя строка) происходит изменение значения переменной SQLSTATE в 02000. Для обработки этого события необходимо установить обработчик: HANDLER FOR SQLSTATE '02000'.
Следующий оператор закрывает курсор:
CLOSE<имя_курсора>;
Если оператор закрытия курсора не указан явно, то курсор закрывается автоматически при закрытии соответствующего блока подпрограммы.
Для примера создадим процедуру, которая изменяет имя каждой детали с определенным именем на имя, формируемое как «Имя-N», гдеN– порядковый номер в списке всех деталей «Gasket» в порядке возрастания веса детали. Имя детали передается в качестве параметра.
CREATEPROCEDUREParts_rename(PNameVARCHAR(20))
BEGIN
DECLARE Done INT DEFAULT 0;
DECLARE S VARCHAR(20);
DECLARE N,I INTEGER;
DECLARE Cur1 CURSOR FOR SELECT Part_ID, Part_name FROM Parts WHERE Part_name=PName ORDER BY WEIGHT;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN Cur1;
SET I=1;
REPEAT
FETCH Cur1 INTO N,S;
IF Done=0 THEN UPDATE Parts SET Part_name=CONCAT(S,’-’,I) WHERE Part_ID=N;
END IF;
SET I=I+1;
UNTIL Done END REPEAT;
CLOSE Cur1;
END
Содержимое таблицы до выполнения процедуры:
Содержимое таблицы после выполнения процедуры: