21. MySQL 8 CREATE PROCEDURE FUNCTION процедуры и функции
Написание собственных процедур и функций в MySQL может значительно упростить вашу работу с базами данных. Поговорим как создаются и вызываются процедуры и функции
Написание собственных процедур и функций в MySQL может значительно упростить вашу работу с базами данных. Поговорим как создаются и вызываются процедуры и функции
Пікірлер: 30
Спасибо за видео. Очень круто и понятно.
Обожаю ваше видео!
Спасибо! Много читал, но понял только после просмотра этого видео)
Отлично объяснение, спасибо за отличный ролиик:))
Спасибо, как раз то, что нужно!!!!
Единственный нормальный препод на руютубе!
@HtmllabRu
3 жыл бұрын
Рад, что ролики зашли)
Спасибо большое🙏
Спасибо большое
Спасибо, хорошее видео
@HtmllabRu
3 жыл бұрын
Спасибо 👍
Здравствуйте! Прошу прощения, за такое множество вопросов. Могли бы вы немного подробнее растолковать или направить по поводу таких моментов: 1. Как я понимаю, если я хочу вернуть запись таблицы, то правильный выбор будет использовать процедуру? 2.. Чтобы иметь подобие локальной переменной в процедуре (как можно делать в функции) - нужно воспользоваться OUT переменной? 3. Если я хочу избежать sql-инъекций, но в тоже время пользоваться удобствами функции, мне нужно как-то совмещать их с PREPARE?
@HtmllabRu
3 жыл бұрын
Приветствую) 1. Запись из таблицы можно получить обычным SELECT, а можно поместить его в процедуру и вызывать уже её 2. Если нужна локальная переменная используют DECLARE внутри процедуры. OUT нужен для создания входного параметра. 3. Всë верно👍
А что если нужно сделать функцию, которая выводит список, а не итоговое значение(count)? Существуют какие нибудь циклы чтобы записывать все в нашу исходящую переменную например через запятую или что-то вроде того?
@HtmllabRu
4 жыл бұрын
Есть функция GROUP_CONCAT (kzread.info/dash/bejne/Z2htp5elqt3Imbg.html) и есть циклы kzread.info/dash/bejne/k5tquK-gfsLSg5M.html
@olegpicik363
4 жыл бұрын
@@HtmllabRu спасибо большое!)
В бенче список процедур можно посмотреть не при проектировании базы, а при работе непосредственно с базой. Мне интересно есть ли какая то команда которая покажет список процедур или их структуру?
@HtmllabRu
3 жыл бұрын
В видео на 21:31 показан SELECT, который выбирает все процедуры отдельной базы - это не пригодилось?
@One-ze2ry
3 жыл бұрын
@@HtmllabRu, оно! пардон я запрос не полностью составил.
а где insert into для процедуры???
Хотелось бы узнать примеры реального применения, когда это делают, для чего это делают, почему этого не делают
@HtmllabRu
3 жыл бұрын
Когда нужно лаконично выполнять большие SQL-запросы и/или использовать (бизнес) логику, код может быть удобно представить в виде процедуры. Трафик между серверным языком программирования и сервером MySQL при этом может уменьшится, что интересно при размещении одного или нескольких серверов на «расстоянии» от серверного языка программирования. Как обосновать подход, когда процедуры не используются, убедительно не скажу. Можно сказать, что будут проблемы при миграции sql-кода на другую СУБД😊 Но вообще, видится более удобной идеей хранить бОльшую часть логики на стороне языка программирования
@user-xz4ko6dk5p
3 жыл бұрын
@@HtmllabRu спасибо за развёрнутый ответ
В консоли работают боги
спасибо. но я не понял куда их сувать ? вызывать в коде приложения?
@HtmllabRu
3 жыл бұрын
Можно и в приложении, но в курсе MySQL 8 они выполняются в консоли сервера, после его установки. Первые два видео: kzread.info/head/PLOQDek48BpZFeW02dfJM77FY4Fp5ilJ6n
@HtmllabRu
3 жыл бұрын
Присмотритесь к быстрой установке с MySQL Installer
Не совсем ясно, когда использовать функцию, а когда процедуру. И с входными-выходными параметрами смутно...
@HtmllabRu
4 жыл бұрын
Функцию следует создавать в случае, когда вам нужен возвращаемый результат - типа того, как работают встроенные функции. Процедуру - когда просто нужно выполнить фрагмент кода. У функций нет деления на входные/выходные параметры. А у процедур нужно указать, какой аргумент рассматривается как входной, а в какой будет помещаться результат расчётов