SQL является декларативным языком (то есть фокусируется на «что», а не «как»). Следовательно, его определение (ansi) не содержит процедурных процедур и блоков.
Большинство реализаций поставщиков заполняют этот пробел, встраивая свой собственный процедурный язык - TSQL в случае Microsoft, PL / SQL в случае Oracle и т. Д. (Не уверен в Mysql, SQLlite и т. Д.) - и даже они не выполняют точного соответствия функций. с Java (без анонимных кодовых блоков).
Каждая операция SQL работает с набором и возвращает набор.
Таким образом, «mytable» - это набор, «select from mytable» - это набор, а «select from (select from mytable)» - это набор.
Так что это своего рода невозможно углубиться в более низкий уровень детализации, возможно, «столбцы» или псевдостолбцы являются «переменными»
Oracle определяет операцию «выбрать из двойного», чтобы гарантировать «цикл», равный 1 (т. Е. Оператор выбора, который возвращает ровно 1 строку)