Современные базы данных поставляются с очень интеллектуальными оптимизаторами выполнения запросов.Одной из их основных функций является преобразование запросов. Логически эквивалентные выражения обычно могут быть преобразованы друг в друга.например, как предположил Энтони, оператор BETWEEN
может быть переписан Oracle (и MySQL) как два AND
-связанных сравнения, и наоборот, если BETWEEN
не просто реализован как синтаксический сахар.* Таким образом, даже если будет разница (в производительности), вы можете быть уверены, что Oracle, скорее всего, выберет лучший вариант.
Это означает, что вы можете свободно выбирать свои предпочтения, например, из-за читаемости.1010 *
Примечание: не всегда очевидно, что логически эквивалентно.Правила преобразования запросов становятся более сложными, когда дело доходит до преобразования EXISTS
, IN
, NOT EXISTS
, NOT IN
... Но в этом случае они есть.Для более подробной информации читайте спецификацию (глава 8.3 между предикатами):
http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt