6/10/2016

Оператор WHERE

Оператор WHERE используется для выбора данных из таблицы по определенному критерию, описаного в условии.


Пример 1.
 SELECT
  last_name, salary FROM
 emp
 WHERE
  salary > 1500
 ORDER BY
  salary DESC;

 LAST_NAME                 SALARY
 ------------------------- ----------
 Velasquez                 2500
 Ropeburn                  1550
 Nguyen                    1525
 Sedeghi                   1515

Комментарий: 
В данном примере, мы выбрали из таблицы фамилии и зароботную плату работников, в которых зароботная плата больше "1500".

Пример 2.
 SELECT name, credit_rating FROM customer
 WHERE credit_rating = 'EXCELLENT';

 NAME                                               CREDIT_RA
 -------------------------------------------------- ---------
 Unisports                                          EXCELLENT
 Womansport                                         EXCELLENT
 Kam's Sporting Goods                               EXCELLENT
 Sportique                                          EXCELLENT
 Beisbol Si!                                        EXCELLENT
 Futbol Sonora                                      EXCELLENT
 Kuhn's Sports                                      EXCELLENT
 Hamada Sport                                       EXCELLENT
 Big John's Sports Emporium                         EXCELLENT

Комментарий:
Если в операторе WHERE мы ссылаемся на строку, тогда мы должны взять ее в апострофы. SQL не чуствительный к регистру но это не относится к данным хранящиеся в таблицах. Например, если вы напишите в операторе WHERE 'ExceLLent' то данный запрос не вернет ни одной записи.

Пример 3.
 SELECT
  first_name, last_name, start_date FROM
 emp
  WHERE
 start_date > '01-jan-1992';

 FIRST_NAME               LAST_NAME                 START_DATE
 ------------------------ ------------------------- ---------------
 Antoinette               Catchpole                 09-feb-1992
 Henry                    Giljum                    18-jan-1992
 Mai                      Nguyen                    22-jan-1992
 Elena                    Maduro                    07-feb-1992

Комментарий:
Введение даты таким образом может быть опасным. В действительности если ввести эту самую дату в формате, не указаным в этой сесии, то SQL покажет ошибку. По этому лучше защитить себя перед такой проблемой используя одну, из так называемых функций форматирования TO_DATE.  

Пример 4.
 SELECT first_name, last_name, start_date
  FROM emp
 WHERE start_date > TO_DATE('01-01-1992','dd-mm-yyyy');

Комментарий:
Пример, с использованием функции TO_DATE.

Функция форматирования TO_DATE - преобразует строку в дату с определенным форматом. Синтаксис:
TO_DATE( 'строка' , 'формат даты')
Посмотреть форматы даты и примеры связаны с этой функцией тут Функции SQL.

Операторы:

 Сравнения:
  =     !=     ^=     <>     >     <     >=     <=

 Арифметические:
  +     -     *     /

 Конкатенации:
   | |

 Определение диапазонов:
  [NOT] BETWEEN ... AND
  [NOT] IN

 Определение шаблона:
  [NOT] LIKE

 Логические:
  AND  OR  NOT

 Тестирование пустых(нулевых) значений
  IS   [NOT]   NULL

Пример 5.
 SELECT last_name FROM emp WHERE salary >= 1500;

 SELECT last_name FROM emp WHERE salary BETWEEN 1000 AND 2000;

 SELECT last_name FROM emp WHERE salary >= 1000 AND salary <= 2000;

 SELECT last_name FROM emp WHERE title IN('President','VP, Sales');

 SELECT last_name FROM emp
 WHERE UPPER(title) IN (UPPER('President'), UPPER('VP, Sales'));

 SELECT last_name FROM emp WHERE id IN (1, 10, 20);

 SELECT last_name FROM emp WHERE last_name LIKE 'N%';

 SELECT last_name FROM emp WHERE last_name LIKE ' ';

 SELECT last_name FROM emp WHERE last_name LIKE 'N ';

 SELECT last_name FROM emp WHERE last_name LIKE 'N a';

 SELECT last_name FROM emp WHERE manager_id = 3 AND salary > 1000;

Комментариев нет :

Отправить комментарий