Рядко са моментите, когато трябва да извлечете всички записи от дадена таблица. Вместо това често се оказвате, че извличате записите, които отговарят на конкретно условие или в даден диапазон.
В тази публикация ще научим как да използваме оператора BETWEEN в базата данни на Oracle, който ни позволява да избираме редове със стойности, които съответстват на определен диапазон от таблица на база данни.
Оператор Oracle BETWEEN
Операторът BETWEEN в Oracle ни позволява да предоставим условие за търсене, когато използваме DML изразите като SELECT, INSERT, UPDATE или DELETE.
Когато използваме оператора BETWEEN с оператор SELECT, се избират само редовете, чиито стойности са между посочения диапазон.
Изразяваме синтаксиса на оператора BETWEEN, както е показано по-долу:
изразяване МЕЖДУ по-нисък_диапазон И горен_диапазон;
Изразът в този случай дефинира целевия израз, чиято стойност на обхват трябва да бъде тествана.
Да предположим, че искаме да извлечем всички редове от таблицата на служител, чиято заплата е в даден диапазон. В този случай колоната за заплати се нарича израз.
Следното е псевдосинтаксис за предишната аналогия:
ИЗБЕРЕТЕ КОЛОНИ КЪДЕТО заплата МЕЖДУ стойност_1 И стойност_2;Параметрите lower_range и upper_range се използват за задаване на най-ниската и най-високата стойност за включване в диапазона.
Параметрите lower_range и upper_range са свързани чрез оператора AND.
След като изпълним израза, операторът BETWEEN връща TRUE за всяка стойност, която е по-голяма или равна на най-ниския_диапазон и по-малка или равна на горния_диапазон.
В повечето случаи операторът BETWEEN се използва с клауза WHERE, която ви позволява да въведете условието за търсене.
Примери за оператори Oracle BETWEEN
В този раздел ще предоставим някои примери за използване на оператора BETWEEN в базата данни на Oracle.
Да предположим, че имаме таблица, както е показано:
ИЗБЕРЕТЕ EMPLOYEE_ID , ПЪРВО ИМЕ , ЕЛЕКТРОННА ПОЩА , ЗАПЛАТА ОТ СЛУЖИТЕЛИ;Резултатна таблица:
Пример 1: Тестване на числовия диапазон с помощта на оператора BETWEEN
Да предположим, че искаме да определим всички служители, чиято заплата варира от 20 000 до 50 000.
Можем да изпълним оператор SELECT с оператор BETWEEN във връзка с клауза WHERE, както е показано по-долу:
ИЗБЕРЕТЕ EMPLOYEE_ID , ПЪРВО ИМЕ , ЕЛЕКТРОННА ПОЩА , ЗАПЛАТАОТ СЛУЖИТЕЛИ
КЪДЕТО ЗАПЛАТА МЕЖДУ 20 000 И 50 000 ;
Предишната заявка трябва да върне служителите, чиято заплата е в този диапазон, както е показано по-долу:
Тук имаме само един ред, който съответства на този диапазон на заплатите.
Пример 2: Тестване на периода от време с помощта на оператора BETWEEN
Можем също да използваме оператора BETWEEN, за да търсим записи, които съответстват на определен период от време.
Вземете следната таблица като пример:
ИЗБЕРЕТЕ ПЪРВО ИМЕ , ЕЛЕКТРОННА ПОЩА , HIRE_DATE , ЗАПЛАТАОТ СЛУЖИТЕЛИ;
Да предположим, че искаме да определим всички служители, чиято дата на наемане е в даден диапазон.
Можем също да сдвоим оператора BETWEEN с клауза WHERE, както е показано по-долу:
ИЗБЕРЕТЕ ПЪРВО ИМЕ , ЕЛЕКТРОННА ПОЩА , HIRE_DATE , ЗАПЛАТАОТ СЛУЖИТЕЛИ
КЪДЕТО HIRE_DATE МЕЖДУ ДАТА '2006-01-01' И ДАТА '2007-01-01' ;
В този случай тестваме условието за търсене, при което стойността на колоната hire_date е между 2006-01-01 и 2007-01-01.
Това трябва да върне съответстващите редове, както е показано по-долу:
Забележете как всички стойности са в диапазона на посочената дата.
Пример 3: Използване на оператора BETWEEN с клауза Order By
Oracle също ни позволява да използваме клаузите като ORDER BY или GROUP BY, за да подредим получените стойности в даден ред.
Например, можем да подредим предишната таблица въз основа на стойността на заплатата, започвайки от най-високата към най-ниската.
ИЗБЕРЕТЕ ПЪРВО ИМЕ , ЕЛЕКТРОННА ПОЩА , HIRE_DATE , ЗАПЛАТАОТ СЛУЖИТЕЛИ
КЪДЕТО HIRE_DATE МЕЖДУ ДАТА '2006-01-01' И ДАТА '2007-01-01'
ПОРЪЧКА ОТ ЗАПЛАТА ОПИСАНИЕ ;
Получената таблица е както следва:
Заключение
В този урок проучихме използването на оператора BETWEEN в бази данни на Oracle, който ни позволява да търсим редове, чиято стойност съответства на даден диапазон.