Оператор WHERE используется для выбора данных из таблицы по определенному критерию, описаного в условии.
Пример 1.
SELECT
last_name, salary FROM
emp
WHERE
salary > 1500
ORDER BY
salary DESC;
last_name, salary FROM
emp
WHERE
salary > 1500
ORDER BY
salary DESC;
LAST_NAME SALARY
------------------------- ----------
Velasquez 2500
Ropeburn 1550
Nguyen 1525
Sedeghi 1515
------------------------- ----------
Velasquez 2500
Ropeburn 1550
Nguyen 1525
Sedeghi 1515
Комментарий:
В данном примере, мы выбрали из таблицы фамилии и зароботную плату работников, в которых зароботная плата больше "1500".
Пример 2.
SELECT name, credit_rating FROM customer
WHERE credit_rating = 'EXCELLENT';
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
-------------------------------------------------- ---------
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 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
------------------------ ------------------------- ---------------
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');
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
= != ^= <> > < >= <=
Арифметические:
+ - * /
Конкатенации:
| |
Определение диапазонов:
[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;
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;
Комментариев нет :
Отправить комментарий