Заметки о SQL

09.09.2024 10:47:00


Последовательность выполнения операций на сервере:

MySQL: FROM => WHERE => GROUP BY => HAVING => SELECT => ORDER BY => LIMIT.

PostgreSQL: FROM => WHERE => GROUP BY => HAVING => SELECT => DISTINCT => ORDER BY => LIMIT.

Операторы ANY и ALL

Оператор ANY возвращает TRUE, если какое-либо из значений подзапроса соответствует условию.

  • amount > ANY (10, 12) эквивалентно amount > 10
  • amount < ANY (10, 12) эквивалентно amount < 12
  • amount = ANY (10, 12) эквивалентно (amount = 10) OR (amount = 12), а также amount IN (10,12)
  • amount <> ANY (10, 12) вернет все записи с любым значением amount, включая 10 и 12

Оператор ALL возвращает TRUE, если все значения подзапроса удовлетворяют условию.

  • amount > ALL (10, 12) эквивалентно amount > 12
  • amount < ALL (10, 12) эквивалентно amount < 10
  • amount = ALL (10, 12) не вернет ни одной записи, так как эквивалентно (amount = 10) AND (amount = 12)
  • amount <> ALL (10, 12) вернет все записи кроме тех, в которыхamount равно 10 или 12

Возврат к списку