Приветствую.
Можете простыми словами объяснить что есть курсор (cursor) в базах данных, так чтобы это стало понятно раз и навсегда?
В вики есть эта информация, но оно написано довольно-таки непонятно.
weranda, это не контекст.
Вот ты придешь к доктору и скажешь, "мне нужно лекарство от от сердца". Он у тебя спросит "какое лекарство, от какой болезни? высокое давление, низкое?" а ты ему "просто от сердца"
FanatPHP, тогда так. Читаю книгу/урок и там написано: подключитесь к БД, создайте сессию, создайте курсор, сформируйте запрос на выборку, отправьте запрос, получите данные и что-то с ними сделайте. Из этого понятно все, но непонятна роль курсора. Сложно объяснить, когда не понимаешь какую-то штуковину. Пока этот курсор мне кажется чем-то вспомогательным, но необходимость его применения ускользает от меня. Может быть, это какой-то аттавизм, который стоило бы разработчикам внедрить глубоко в код, чтобы он вообще не появлялся, но из-за непонимания всех тонкостей работы с БД это, вероятно, вовсе не так.
При работе через апи, например из какого-нибудь языка программирования, курсор ты действительно не видишь. И по сути он тебе нужен только в хранимых процедурах
Давай попробую на пальцах. Представь у тебя многоэтажный склад (таблица). На каждом этаже хранятся коробки (данные). Чтобы добраться до данных (SELECT) надо на лифте подняться на нужный этаж и достать (FETCH) эти коробки. Вот лифт - это и есть твой курсор, если всё очень и очень упростить.
По сути курсор - это возможность реализовать цикл по каком-то слепку отбора. С кучей рюшек. Включая учитывать или не учитывать на каждом шаге цикла изменения с прошлых шагов.
Почти всегда можно вместо курсора использовать временную таблицу (локальную, глобальную, memory)