428.11K
Категория: Базы данныхБазы данных

Ограничение и сортировка данных

1.

Ограничение и сортировка
данных

2.

Цели
• Ограничивать строки, полученные из запроса
• Сортировать полученные строки

3.

Ограничение получаемых строк
• Ограничение строк путем использования секции WHERE:
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table
[WHERE condition(s)];
• Секция WHERE следует за секцией FROM

4.

Использование секции WHERE
SELECT 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.

Использование конструкции BETWEEN
SELECT last_name, salary
FROM employees
WHERE salary BETWEEN 2500 AND 3500 ;

9.

Использование конструкции IN
SELECT 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] NULL
SELECT 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;
English     Русский Правила