Similar presentations:
Ограничение и сортировка данных
1.
Ограничение и сортировкаданных
2.
Цели• Ограничивать строки, полученные из запроса
• Сортировать полученные строки
3.
Ограничение получаемых строк• Ограничение строк путем использования секции WHERE:
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table
[WHERE condition(s)];
• Секция WHERE следует за секцией FROM
4.
Использование секции WHERESELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90 ;
5.
Символьные типы и даты• Значения символьного типа и даты заключаются в одинарные
кавычки
• Символьные типы чувствительны к регистру
• Даты чувствительны к формату
• Формат по умолчанию DD-MON-RR
SELECT last_name, job_id, department_id
FROM employees
WHERE last_name = 'Whalen' ;
6.
Условия сравненияОператор
Описание
=
Равенство
>
Больше
>=
Больше или равно
<
Меньше
<=
Меньше или равно
<>, !=, ^=
Не равно
BETWEEN ...AND...
Между двух значений (включительно)
IN(set)
Совпадает со значением из списка
LIKE
Совпадает по шаблону
IS NULL
Является Null-значением
7.
Использование оператора сравненияSELECT last_name, salary
FROM employees
WHERE salary <= 3000 ;
8.
Использование конструкции BETWEENSELECT last_name, salary
FROM employees
WHERE salary BETWEEN 2500 AND 3500 ;
9.
Использование конструкции INSELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IN (100, 101, 201) ;
10.
Использование конструкции LIKE• Используется для поиска строк по шаблону
• Поисковый шаблон может содержать символьные литералы:
• % - обозначает ноль или несколько символов
• _ - обозначает один символ
SELECT first_name
FROM employees
WHERE first_name LIKE 'S%'
11.
Использование конструкции LIKE• Символьные литералы можно комбинировать
SELECT last_name
FROM employees
WHERE last_name LIKE '_o%' ;
12.
Использование конструкции LIKE• Для поиска символов _ и % используется опция ESCAPE
SELECT employee_id, last_name, job_id
FROM employees
WHERE job_id LIKE '%SA\_%' ESCAPE '\';
13.
Использование конструкции IS [NOT] NULLSELECT last_name, manager_id
FROM employees
WHERE manager_id IS NULL ;
14.
Логические условияОператор
Описание
AND
Возвращает TRUE, если оба утверждения верны
OR
Возвращает TRUE, если хотя бы одно утверждение
верно
NOT
Возвращает TRUE, если утверждение ложь
15.
Использование оператора AND• оба утверждения верны
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >=10000
AND job_id LIKE '%MAN%' ;
16.
Использование оператора OR• хотя бы одно утверждение верно
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >=10000
OR job_id LIKE '%MAN%' ;
17.
Использование оператора NOT• TRUE, если утверждение ложь
SELECT last_name, job_id
FROM employees
WHERE job_id NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP');
18.
Правила приоритетаПорядок
Значение
1
Арифметические операции
2
Оператор конкатенации
3
Операторы сравнения
4
IS [NOT] NULL, LIKE, [NOT] IN
5
[NOT] BETWEEN
6
<>, !=, ^=
7
NOT
8
AND
9
OR
Разрешается использовать скобки для изменения приоритета.
19.
Правила приоритетаSELECT last_name, job_id, salary
FROM employees
WHERE job_id = 'SA_REP'
OR job_id = 'AD_PRES'
AND salary > 15000;
SELECT last_name, job_id, salary
FROM employees
WHERE job_id = 'SA_REP'
OR job_id = 'AD_PRES'
AND salary > 15000;
20.
Использование секции ORDER BY• Сортировка полученных строк с секциец ORDER BY,
• ASC – по возврастанию (по умолчанию)
• DESC – по убыванию
• Секция ORDER BY записывается в конце SELECT-запроса
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date ;
21.
Сортировка• Сортировка по убыванию
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date DESC ;
• Сортировка, используя псевдоним
SELECT employee_id, last_name, salary*12 annsal
FROM employees
ORDER BY annsal ;
• Сортировка по нескольким колонкам
SELECT last_name, department_id, salary
FROM employees
ORDER BY department_id, salary DESC;