Изучаем MySQL | Урок №33 - Начало

Опубликовано: 29.06.2017

видео Изучаем MySQL | Урок №33 - Начало

SQL запросы. Уровни изолированности транзакций в реляционных базах данных.

Длительно страдал с этим вопросом. Литературы в вебе не достаточно, в особенности на российском языке. Пришлось поспрашивать на забугорных форумах, поглубже покопаться в мануалах и объяснить себе некие непонятные моменты. Итак, кратко о хранимых процедурах в MySQL.



Stored procedures - что это?

Хранимые процедуры появились начиная с 5 версии MySQL. Они позволяют заавтоматизировать сложные процессы на уровне MySQL, ежели использовать для этого наружные скрипты. Это даёт нам более высшую скорость выполнения, т.к. мы не гоняем огромное количество запросов, а всего только один раз вызываем ту либо иную функцию (либо функцию).


SQL запрос EXPLAIN и EXPLAIN QUERY PLAN в базах данных SQLite: оптимизация SQL запросов.

Что для этого необходимо? Установите MySQL сервер версии 5 либо выше (dev.mysql.com/downloads). Процедуры можно создавать как запросы, к примеру через командную строчку MySQL, но для удобства советую скачать MySQL GUI Tools (dev.mysql.com/downloads/gui-tools). Данный пакет содержит в себе три программки - MySQL Administrator, MySQL Query Browser и MySQL Migration Toolkit. Нам пригодятся 1-ые две. (Хотя возможно обойтись одним MySQL Query Browser, но все эти $$ в хранимых процедурах время от времени могут сбить с толку).


видеокурс о хостинге FatCow, MySQL (базы данных)

1-ая хранимая процедура

Итак, открываем MySQL Administrator, подключаемся к серверу MySQL и создаем новейшую схему (базу данных): щелкните Catalogs, изберите Create New Schema в области Schemata (Ctrl+N). Назовите ее как-нибудь (к примеру db). Откройте только-только сделанную схему, изберите вкладку Stored procedures и щелкните кнопку Create Stored Proc. Назовите свою функцию procedure1. В тело процедуры (меж BEGIN и END) вчеркните последующее:

И нажмите Execute SQL - процедура сотворена. Откройте MySQL Query Browser, изберите свою схему (db) и вчеркните последующий запрос:

Вуала! Поздравляю.

Переменные в MySQL

Для того, чтоб извлечь каку-то пользу от хранимых процедур в MySQL, вам придется поработать с переменными. Потому что это не заходи в рамки данной статьи, покажу только несколько примеров.

Обыкновенные переменные

DECLARE iVar INT DEFAULT ;

SET iVar = 5;

SELECT * FROM `data` WHERE `id` = iVar;DECLARE iVar INT DEFAULT ;

SELECT COUNT(*) INTO iVar FROM `data`;

Системные переменные

SET @iVar = 5;

SELECT @iVar;

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

Характеристики в хранимых процедурах

Тут тоже всё довольно легко. Изменяем первую строчку, объявляющая саму функцию:

CREATE PROCEDURE `procedure1`(IN iInput1 INT, IN iInput2 INT)

Тут, ключевое слово IN показывает на то, что параметр указан только для чтения. Дальше с этим параметром работаем как с обыкновенной переменной снутри процедуры:

Условия, Циклы. IF THEN ELSE, WHILE

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