Similar presentations:
SQL. Часть 2
1.
SQLЧасть 2.
2.
Ограничение выборкиЗапрос без дополнительных ключевых слов выбирает все строки из таблицы.
SELECT last_name, salary
FROM hr.employees;
...
3.
Ограничение выборкиС помощью ключевого слова WHERE мы может ограничивать выборку,
указав в запросе условие, которое должно выполняться для строк.
SELECT last_name, department_id
FROM hr.employees
where department_id = 90;
4.
УсловияПосле ключевого слова WHERE должно быть указано условие, проверяемое
для каждой выбираемой строки. Условие должно содержать в себе столбец,
по которому выполняется проверка, и оператор сравнения.
Операторы сравнения
=
равно
!=, <>
не равно
>
больше
between
поиск по диапазону
<
меньше
in
поиск по списку
>=
больше либо равно
like
поиск по шаблону
<=
меньше либо равно
is null
Поиск неопределенного
5.
Поиск по числовым столбцамС числами чаще всего используются операторы равенства и неравенства.
SELECT last_name, salary
FROM hr.employees
where salary < 2500;
6.
Поиск по текстовым столбцамВ условиях по символьным данным не забывайте апострофы.
SELECT last_name, salary
FROM hr.employees
WHERE last_name = 'King';
Некоторые базы данных чувствительны к регистру символов
… WHERE last_name = 'king';
7.
Поиск по датамПри фильтрации по датам надо учитывать формат отображения даты.
При поиске по неравенству меньше считается более ранняя дата.
SELECT last_name, hire_date, salary
FROM hr.employees
where hire_date >= '01-FEB-08';
Более надежное обращение к дате:
to_date(‘01.02.2008’,’DD.MM.YYYY’)
8.
Условия и список выбираемых столбцовФильтровать данные можно по столбцу, не выводящемуся в выборке.
SELECT last_name, salary
FROM hr.employees
WHERE manager_id = 102;
9.
Логические операторыПри использовании нескольких условий применяются логические операторы,
чтобы указать как условия будут связаны между собой.
Существует три логических оператора:
NOT
НЕ
AND
И
OR
ИЛИ
Операторы перечислены по порядку исполнения.
10.
Оператор ANDОператор AND требует, чтобы оба условия, слева и справа, были верны.
SELECT last_name, salary, department_id
FROM hr.employees
WHERE department_id = 80
AND salary >= 11000;
11.
Оператор ORОператор OR требует, чтобы одно из условий, слева и справа, было верно.
SELECT last_name, salary, department_id
FROM hr.employees
WHERE department_id = 80
OR salary >= 11000;
...
...
12.
Оператор NOTОператор NOT позволяет получить отрицание условия.
SELECT last_name, salary
FROM hr.employees
WHERE NOT salary < 15000;
13.
Сложные условияПри составление сложных условий надо помнить о порядке проверки
логических операторов.
SELECT last_name, job_id, salary
FROM hr.employees
WHERE salary > 10000
AND job_id = 'AD_PRES'
OR job_id = 'SA_REP';
...
14.
Порядок исполненияУправлять порядком исполнения условий можно с помощью скобок.
SELECT last_name, job_id, salary
FROM hr.employees
WHERE salary > 10000
AND (job_id = 'AD_PRES'
OR job_id = 'SA_REP');
15.
Поиск по диапазон значенийДля поиска по диапазону значений применяется оператор BETWEEN AND
SELECT last_name, job_id, salary
FROM hr.employees
WHERE salary between 3500 and 4000;
16.
Поиск по спискуДля поиска по списку значений применяется оператор IN.
SELECT last_name, job_id, salary
FROM hr.employees
WHERE job_id in
('IT_PROG', 'AD_ASST');
17.
Поиск текста по шаблонуДля гибкого поиска строк применяется оператор LIKE с использованием
элементов шаблона % и _. % заменяет любое количество любых символов.
SELECT last_name, salary
FROM hr.employees
WHERE last_name like 'K%';
18.
Поиск текста по шаблону_ заменяет ровно один символ.
SELECT last_name, salary
FROM hr.employees
WHERE last_name like '_m%';
19.
Неопределенное значениеНеопределенное значение (NULL) - значение, неизвестное на момент
добавления в таблицу.
С неопределенным значением не работают обычные операторы сравнения.
SELECT last_name, manager_id
FROM hr.employees
WHERE manager_id = NULL;
20.
Поиск неопределенного значенияДля поиска неопределенного значения применяется оператор IS NULL.
SELECT last_name, manager_id
FROM hr.employees
WHERE manager_id IS NULL;
Для поиска определенных строк применяется IS NOT NULL.
SELECT last_name, commission_pct
FROM hr.employees
WHERE commission_pct IS NOT NULL;
...
21.
Сортировка строкПри выполнении запроса сервер возвращает строки без порядка.
Для установки порядка строк применяется ключевое слово ORDER BY.
В этом ключевом слове можно задать название столбца.
SELECT last_name, salary
FROM hr.employees
WHERE department_id = 90
ORDER BY salary;
22.
Порядок сортировкиПо умолчанию сортировка ведется в возрастающем порядке.
Для смены порядка сортировки применяется оператор DESC.
SELECT last_name, salary
FROM hr.employees
WHERE department_id = 90
ORDER BY salary DESC;
23.
Сортировка по нескольких столбцамВ ключевом слове ORDER BY можно указать несколько столбцов.
SELECT last_name, department_id, salary
FROM hr.employees
WHERE salary > 12000
ORDER BY department_id, salary DESC;
24.
Сортировка по выражениюТакже можно применять сортировку по выражению.
SELECT last_name, department_id, salary
FROM hr.employees
WHERE salary > 12000
ORDER BY department_id * salary;