SlideShare a Scribd company logo
1 of 27
Ограничение и сортировка
выходных данных
22
2-2-22 KBTU
Ограничение и сортировка
выходных данных
Рассматриваемые вопросы
• Ограничение количества строк, возвращаемых
запросом.
• Сортировка возвращаемых строк.
2-2-33 KBTU
Ограничение и сортировка
выходных данных
Ограничение количества выбираемых
строк путем отбора
“выбрать всех
служащих отдела
90”
EMPLOYEES
2-2-44 KBTU
Ограничение и сортировка
выходных данных
Ограничение количества выбираемых строк
• Количество возвращаемых строк можно
ограничить с помощью предложения WHERE .
• Предложение WHERE следует за предложением
FROM.
SELECT *|{[DISTINCT] столбец|выражение [псевдоним],...}
FROM таблица
[WHERE условие(я)];
2-2-55 KBTU
Ограничение и сортировка
выходных данных
Использование предложения WHERE
SELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90;
2-2-66 KBTU
Ограничение и сортировка
выходных данных
Символьные строки и даты
• Символьные строки и даты заключаются в
апострофы.
• В символьных значениях различаются
регистры символов, а в датах – форматы.
• Формат дат по умолчанию – DD-MON-RR (число-
месяц-год).
SELECT last_name, job_id, department_id
FROM employees
WHERE last_name = 'Goyal';
2-2-77 KBTU
Ограничение и сортировка
выходных данных
Операторы сравнения
Оператор
=
>
>=
<
<=
<>
Значение
Равно
Больше, чем
Больше или равно
Меньше, чем
Меньше или равно
Не равно
2-2-88 KBTU
Ограничение и сортировка
выходных данных
Использование операторов сравнения
SELECT last_name, salary
FROM employees
WHERE salary <= 3000;
2-2-99 KBTU
Ограничение и сортировка
выходных данных
Прочие операторы сравнения
Оператор
BETWEEN
...AND...
IN(список)
LIKE
IS NULL
Значение
Находится в диапазоне от одного
значения до другого (включительно)
Совпадает с каким-либо значением списка
Соответствует символьному шаблону
Является неопределенным значением
2-2-1010 KBTU
Ограничение и сортировка
выходных данных
Использование оператора BETWEEN
Условие BETWEEN используется для вывода
строк на основе диапазона значений
SELECT last_name, salary
FROM employees
WHERE salary BETWEEN 2500 AND 3500;
Нижняя
граница
Верхняя
граница
2-2-1111 KBTU
Ограничение и сортировка
выходных данных
Использование оператора IN
• Условие принадлежности IN используется для
• проверки на вхождение значений в список.
SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IN (100, 101, 201);
2-2-1212 KBTU
Ограничение и сортировка
выходных данных
Использование оператора LIKE
• Условие LIKE используется для поиска
символьных значений по шаблону с
метасимволами.
• Условия поиска могут включать алфавитные и
цифровые символы:
– % обозначает ноль или много символов;
– _ обозначает один символ.
SELECT first_name
FROM employees
WHERE first_name LIKE 'S%';
2-2-1313 KBTU
Ограничение и сортировка
выходных данных
Использование оператора LIKE
• Метасимволы можно комбинировать.
• Для поиска "%" или "_" можно использовать
идентификатор ESCAPE .
SELECT last_name
FROM employees
WHERE last_name LIKE '_o%';
2-2-1414 KBTU
Ограничение и сортировка
выходных данных
Использование оператора IS NULL
С помощью оператора IS NULL производится
проверка на неопределенные значения.
SELECT last_name, manager_id
FROM employees
WHERE manager_id IS NULL;
2-2-1515 KBTU
Ограничение и сортировка
выходных данных
Логические операторы
Оператор
AND
OR
NOT
Значение
Возвращает результат ИСТИННО, если
выполняются оба условия.
Возвращает результат ИСТИННО, если
выполняется любое из условий.
Возвращает результат ИСТИННО, если
следующее условие не выполняется.
2-2-1616 KBTU
Ограничение и сортировка
выходных данных
Использование оператора AND
Оператор AND (“И“) требует выполнения обоих условий.
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >=10000
AND job_id LIKE '%MAN%';
2-2-1717 KBTU
Ограничение и сортировка
выходных данных
Использование оператора OR
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >= 10000
OR job_id LIKE '%MAN%';
Оператор OR (“ИЛИ“) требует выполнения любого
из условий.
2-2-1818 KBTU
Ограничение и сортировка
выходных данных
Использование оператора NOT
SELECT last_name, job_id
FROM employees
WHERE job_id NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP');
2-2-1919 KBTU
Ограничение и сортировка
выходных данных
Приоритеты операторов
Изменить стандартную последовательность
вычислений можно с помощью круглых скобок.
Порядок вычисления Оператор
1 Арифметические операторы
2 Оператор конкатенации
3 Операторы сравнения
4 IS [NOT] NULL, LIKE, [NOT] IN
5 [NOT] BETWEEN
6 NOT
7 AND
8 OR
2-2-2020 KBTU
Ограничение и сортировка
выходных данных
Приоритеты операторов
SELECT last_name, job_id, salary
FROM employees
WHERE job_id = 'SA_REP'
OR job_id = 'AD_PRES'
AND salary > 15000;
2-2-2121 KBTU
Ограничение и сортировка
выходных данных
Приоритеты операторов
Использование скобок для изменения порядка
вычислений.
SELECT last_name, job_id, salary
FROM employees
WHERE (job_id = 'SA_REP'
OR job_id = 'AD_PRES')
AND salary > 15000;
2-2-2222 KBTU
Ограничение и сортировка
выходных данных
Предложение ORDER BY
• Предложение ORDER BY используется для
сортировки строк
– ASC: сортировка по возрастанию (используется
по умолчанию)
– DESC: сортировка по убыванию
• В команде SELECT предложение ORDER BY
указывается последним.
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date;
2-2-2323 KBTU
Ограничение и сортировка
выходных данных
Сортировка в порядке убывания
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date DESC;
2-2-2424 KBTU
Ограничение и сортировка
выходных данных
Сортировка по псевдониму столбца
SELECT employee_id, last_name, salary*12 annsal
FROM employees
ORDER BY annsal;
2-2-2525 KBTU
Ограничение и сортировка
выходных данных
Сортировка по нескольким столбцам
• Последовательность сортировки определяется
порядком столбцов в предложении ORDER BY.
• Можно сортировать по столбцу, не входящему в
SELECT список.
SELECT last_name, department_id, salary
FROM employees
ORDER BY department_id, salary DESC;
2-2-2626 KBTU
Ограничение и сортировка
выходных данных
Итоги
• Использование предложения WHERE для
ограничения количества выводимых строк
– Условия сравнения
– Условия BETWEEN, IN, LIKE и NULL
– Логические операторы AND, OR и NOT
• Использование предложения ORDER BY для
сортировки выходных результатов
SELECT *|{[DISTINCT] столбец|выражение [псевдоним],...}
FROM таблица
[WHERE условие(я)]
[ORDER BY {столбец, выражение, псевдоним} [ASC|DESC]];
2-2-2727 KBTU
Ограничение и сортировка
выходных данных
Обзор практического занятия
• Выборка данных и изменение
последовательности вывода строк
• Ограничение количества возвращаемых
строк с помощью предложения WHERE
• Сортировка строк с помощью предложения
ORDER BY

More Related Content

Viewers also liked

задание для самостоятельной работы
задание для самостоятельной работызадание для самостоятельной работы
задание для самостоятельной работыВлад Клевцов
 
Electrical safety 2014_-_copy
Electrical safety 2014_-_copyElectrical safety 2014_-_copy
Electrical safety 2014_-_copyWilliam Lobo
 
Oris4 ROI White Paper
Oris4 ROI White PaperOris4 ROI White Paper
Oris4 ROI White Paperoris4
 
уникальная возможность для участников группы!
уникальная возможность для участников группы!уникальная возможность для участников группы!
уникальная возможность для участников группы!dnr group
 
Learning from Adverse Events : Apology, Forgiveness and "Just Culture"
Learning from Adverse Events : Apology, Forgiveness and "Just Culture"Learning from Adverse Events : Apology, Forgiveness and "Just Culture"
Learning from Adverse Events : Apology, Forgiveness and "Just Culture"Murray Anderson-Wallace
 
Constitutional Dilemmas Simulation
Constitutional Dilemmas SimulationConstitutional Dilemmas Simulation
Constitutional Dilemmas Simulationpenningtonr
 
Sooeun presentation
Sooeun presentationSooeun presentation
Sooeun presentationsooeun
 
Best practices in business writing & communications portfolio
Best practices in business writing & communications portfolioBest practices in business writing & communications portfolio
Best practices in business writing & communications portfoliokels926
 
The drones are coming - using drones for media
The drones are coming - using drones for mediaThe drones are coming - using drones for media
The drones are coming - using drones for mediaAnia i Jakub Górniccy
 
Sixth Issue(006)Lighting&Life:(Special Column)LED Panel Light
Sixth Issue(006)Lighting&Life:(Special Column)LED Panel LightSixth Issue(006)Lighting&Life:(Special Column)LED Panel Light
Sixth Issue(006)Lighting&Life:(Special Column)LED Panel LightSally Liu
 

Viewers also liked (13)

задание для самостоятельной работы
задание для самостоятельной работызадание для самостоятельной работы
задание для самостоятельной работы
 
Electrical safety 2014_-_copy
Electrical safety 2014_-_copyElectrical safety 2014_-_copy
Electrical safety 2014_-_copy
 
The Fall
The FallThe Fall
The Fall
 
Oris4 ROI White Paper
Oris4 ROI White PaperOris4 ROI White Paper
Oris4 ROI White Paper
 
уникальная возможность для участников группы!
уникальная возможность для участников группы!уникальная возможность для участников группы!
уникальная возможность для участников группы!
 
Learning from Adverse Events : Apology, Forgiveness and "Just Culture"
Learning from Adverse Events : Apology, Forgiveness and "Just Culture"Learning from Adverse Events : Apology, Forgiveness and "Just Culture"
Learning from Adverse Events : Apology, Forgiveness and "Just Culture"
 
Presentación1ge
Presentación1gePresentación1ge
Presentación1ge
 
Constitutional Dilemmas Simulation
Constitutional Dilemmas SimulationConstitutional Dilemmas Simulation
Constitutional Dilemmas Simulation
 
Sooeun presentation
Sooeun presentationSooeun presentation
Sooeun presentation
 
Best practices in business writing & communications portfolio
Best practices in business writing & communications portfolioBest practices in business writing & communications portfolio
Best practices in business writing & communications portfolio
 
SamWork
SamWorkSamWork
SamWork
 
The drones are coming - using drones for media
The drones are coming - using drones for mediaThe drones are coming - using drones for media
The drones are coming - using drones for media
 
Sixth Issue(006)Lighting&Life:(Special Column)LED Panel Light
Sixth Issue(006)Lighting&Life:(Special Column)LED Panel LightSixth Issue(006)Lighting&Life:(Special Column)LED Panel Light
Sixth Issue(006)Lighting&Life:(Special Column)LED Panel Light
 

More from Aimurat Adilbekov

Глобальная сеть
Глобальная  сетьГлобальная  сеть
Глобальная сетьAimurat Adilbekov
 
Понятия технологии разработки объектно-ориентированных информационных систем ...
Понятия технологии разработки объектно-ориентированных информационных систем ...Понятия технологии разработки объектно-ориентированных информационных систем ...
Понятия технологии разработки объектно-ориентированных информационных систем ...Aimurat Adilbekov
 
Однострочные функции
Однострочные функцииОднострочные функции
Однострочные функцииAimurat Adilbekov
 
Основные команды языка SQL
Основные команды языка SQLОсновные команды языка SQL
Основные команды языка SQLAimurat Adilbekov
 
Возможности сервера Oracle
Возможности сервера OracleВозможности сервера Oracle
Возможности сервера OracleAimurat Adilbekov
 
Oracle базасында қолданушы еңгізу
Oracle базасында қолданушы еңгізуOracle базасында қолданушы еңгізу
Oracle базасында қолданушы еңгізуAimurat Adilbekov
 

More from Aimurat Adilbekov (8)

Глобальная сеть
Глобальная  сетьГлобальная  сеть
Глобальная сеть
 
Понятия технологии разработки объектно-ориентированных информационных систем ...
Понятия технологии разработки объектно-ориентированных информационных систем ...Понятия технологии разработки объектно-ориентированных информационных систем ...
Понятия технологии разработки объектно-ориентированных информационных систем ...
 
Однострочные функции
Однострочные функцииОднострочные функции
Однострочные функции
 
Основные команды языка SQL
Основные команды языка SQLОсновные команды языка SQL
Основные команды языка SQL
 
Возможности сервера Oracle
Возможности сервера OracleВозможности сервера Oracle
Возможности сервера Oracle
 
Oracle базасында қолданушы еңгізу
Oracle базасында қолданушы еңгізуOracle базасында қолданушы еңгізу
Oracle базасында қолданушы еңгізу
 
Nauriz
NaurizNauriz
Nauriz
 
My home kazakhstan
My home kazakhstanMy home kazakhstan
My home kazakhstan
 

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

  • 2. 2-2-22 KBTU Ограничение и сортировка выходных данных Рассматриваемые вопросы • Ограничение количества строк, возвращаемых запросом. • Сортировка возвращаемых строк.
  • 3. 2-2-33 KBTU Ограничение и сортировка выходных данных Ограничение количества выбираемых строк путем отбора “выбрать всех служащих отдела 90” EMPLOYEES
  • 4. 2-2-44 KBTU Ограничение и сортировка выходных данных Ограничение количества выбираемых строк • Количество возвращаемых строк можно ограничить с помощью предложения WHERE . • Предложение WHERE следует за предложением FROM. SELECT *|{[DISTINCT] столбец|выражение [псевдоним],...} FROM таблица [WHERE условие(я)];
  • 5. 2-2-55 KBTU Ограничение и сортировка выходных данных Использование предложения WHERE SELECT employee_id, last_name, job_id, department_id FROM employees WHERE department_id = 90;
  • 6. 2-2-66 KBTU Ограничение и сортировка выходных данных Символьные строки и даты • Символьные строки и даты заключаются в апострофы. • В символьных значениях различаются регистры символов, а в датах – форматы. • Формат дат по умолчанию – DD-MON-RR (число- месяц-год). SELECT last_name, job_id, department_id FROM employees WHERE last_name = 'Goyal';
  • 7. 2-2-77 KBTU Ограничение и сортировка выходных данных Операторы сравнения Оператор = > >= < <= <> Значение Равно Больше, чем Больше или равно Меньше, чем Меньше или равно Не равно
  • 8. 2-2-88 KBTU Ограничение и сортировка выходных данных Использование операторов сравнения SELECT last_name, salary FROM employees WHERE salary <= 3000;
  • 9. 2-2-99 KBTU Ограничение и сортировка выходных данных Прочие операторы сравнения Оператор BETWEEN ...AND... IN(список) LIKE IS NULL Значение Находится в диапазоне от одного значения до другого (включительно) Совпадает с каким-либо значением списка Соответствует символьному шаблону Является неопределенным значением
  • 10. 2-2-1010 KBTU Ограничение и сортировка выходных данных Использование оператора BETWEEN Условие BETWEEN используется для вывода строк на основе диапазона значений SELECT last_name, salary FROM employees WHERE salary BETWEEN 2500 AND 3500; Нижняя граница Верхняя граница
  • 11. 2-2-1111 KBTU Ограничение и сортировка выходных данных Использование оператора IN • Условие принадлежности IN используется для • проверки на вхождение значений в список. SELECT employee_id, last_name, salary, manager_id FROM employees WHERE manager_id IN (100, 101, 201);
  • 12. 2-2-1212 KBTU Ограничение и сортировка выходных данных Использование оператора LIKE • Условие LIKE используется для поиска символьных значений по шаблону с метасимволами. • Условия поиска могут включать алфавитные и цифровые символы: – % обозначает ноль или много символов; – _ обозначает один символ. SELECT first_name FROM employees WHERE first_name LIKE 'S%';
  • 13. 2-2-1313 KBTU Ограничение и сортировка выходных данных Использование оператора LIKE • Метасимволы можно комбинировать. • Для поиска "%" или "_" можно использовать идентификатор ESCAPE . SELECT last_name FROM employees WHERE last_name LIKE '_o%';
  • 14. 2-2-1414 KBTU Ограничение и сортировка выходных данных Использование оператора IS NULL С помощью оператора IS NULL производится проверка на неопределенные значения. SELECT last_name, manager_id FROM employees WHERE manager_id IS NULL;
  • 15. 2-2-1515 KBTU Ограничение и сортировка выходных данных Логические операторы Оператор AND OR NOT Значение Возвращает результат ИСТИННО, если выполняются оба условия. Возвращает результат ИСТИННО, если выполняется любое из условий. Возвращает результат ИСТИННО, если следующее условие не выполняется.
  • 16. 2-2-1616 KBTU Ограничение и сортировка выходных данных Использование оператора AND Оператор AND (“И“) требует выполнения обоих условий. SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >=10000 AND job_id LIKE '%MAN%';
  • 17. 2-2-1717 KBTU Ограничение и сортировка выходных данных Использование оператора OR SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >= 10000 OR job_id LIKE '%MAN%'; Оператор OR (“ИЛИ“) требует выполнения любого из условий.
  • 18. 2-2-1818 KBTU Ограничение и сортировка выходных данных Использование оператора NOT SELECT last_name, job_id FROM employees WHERE job_id NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP');
  • 19. 2-2-1919 KBTU Ограничение и сортировка выходных данных Приоритеты операторов Изменить стандартную последовательность вычислений можно с помощью круглых скобок. Порядок вычисления Оператор 1 Арифметические операторы 2 Оператор конкатенации 3 Операторы сравнения 4 IS [NOT] NULL, LIKE, [NOT] IN 5 [NOT] BETWEEN 6 NOT 7 AND 8 OR
  • 20. 2-2-2020 KBTU Ограничение и сортировка выходных данных Приоритеты операторов SELECT last_name, job_id, salary FROM employees WHERE job_id = 'SA_REP' OR job_id = 'AD_PRES' AND salary > 15000;
  • 21. 2-2-2121 KBTU Ограничение и сортировка выходных данных Приоритеты операторов Использование скобок для изменения порядка вычислений. SELECT last_name, job_id, salary FROM employees WHERE (job_id = 'SA_REP' OR job_id = 'AD_PRES') AND salary > 15000;
  • 22. 2-2-2222 KBTU Ограничение и сортировка выходных данных Предложение ORDER BY • Предложение ORDER BY используется для сортировки строк – ASC: сортировка по возрастанию (используется по умолчанию) – DESC: сортировка по убыванию • В команде SELECT предложение ORDER BY указывается последним. SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date;
  • 23. 2-2-2323 KBTU Ограничение и сортировка выходных данных Сортировка в порядке убывания SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date DESC;
  • 24. 2-2-2424 KBTU Ограничение и сортировка выходных данных Сортировка по псевдониму столбца SELECT employee_id, last_name, salary*12 annsal FROM employees ORDER BY annsal;
  • 25. 2-2-2525 KBTU Ограничение и сортировка выходных данных Сортировка по нескольким столбцам • Последовательность сортировки определяется порядком столбцов в предложении ORDER BY. • Можно сортировать по столбцу, не входящему в SELECT список. SELECT last_name, department_id, salary FROM employees ORDER BY department_id, salary DESC;
  • 26. 2-2-2626 KBTU Ограничение и сортировка выходных данных Итоги • Использование предложения WHERE для ограничения количества выводимых строк – Условия сравнения – Условия BETWEEN, IN, LIKE и NULL – Логические операторы AND, OR и NOT • Использование предложения ORDER BY для сортировки выходных результатов SELECT *|{[DISTINCT] столбец|выражение [псевдоним],...} FROM таблица [WHERE условие(я)] [ORDER BY {столбец, выражение, псевдоним} [ASC|DESC]];
  • 27. 2-2-2727 KBTU Ограничение и сортировка выходных данных Обзор практического занятия • Выборка данных и изменение последовательности вывода строк • Ограничение количества возвращаемых строк с помощью предложения WHERE • Сортировка строк с помощью предложения ORDER BY

Editor's Notes

  1. Цели урока Иногда при выборке данных из базы данных необходимо ограничить количество выходных строк или задать последовательность их вывода. В этом уроке обсуждаются команды, с помощью которых выполняются эти действия.
  2. Ограничение количества строк с помощью критериев выборки В примере на слайде требуются данные о всех служащих отдела 90. В этом случае будут возвращены только строки с значением 90 в столбце DEPARTMENT_ID. Этот метод ограничения лежит в основе предложения WHERE языка SQL.
  3. Ограничение количества выбираемых строк Количество строк, возвращаемых запросом, можно ограничить с помощью предложения WHERE. Предложение WHERE следует сразу за предложением FROM и задает условие, которое должно быть выполнено для выборки строки. Синтаксис: WHEREограничивает количество выбираемых строк, задавая условие выборки. conditionусловие, состоящее из имен столбцов, выражений, констант и оператора сравнения. Предложение WHERE может сравнивать значения в столбцах, литералы, арифметические выражения и функции. Предложение WHERE состоит из трех элементов: Имя столбца Оператор сравнения Имя столбца, константа или список значений
  4. Использование предложения WHERE Команда SELECT в примере, возвращает фамилию, должность и номер отдела каждого служащего, работающего в департаменте с номером 90.
  5. Символьные строки и даты Символьные строки и даты в предложении WHERE должны быть заключены в апострофы(’’). Числовые константы в апострофы не заключаются. Регистры символов различаются при любом поиске по строке символов. Запрос в следующем примере не возвращает ни одной строки, т.к. в таблице EMPLOYEES все данные хранятся в символах верхнего регистра. SELECT last_name, job_id, department_id FROM employees WHERE last_name = &amp;apos;Goyal&amp;apos;; Oracle хранит данные во внутреннем числовом формате, представляющем столетие, год, месяц, число, часы, минуты и секунды. Формат даты по умолчанию DD-MON-RR (число-месяц-год). Примечание: изменения стандартного формата даты обсуждается в главе 3. Числовые значения в апострофы не заключаются.
  6. Операторы сравнения Операторы сравнения используются в условиях, где одно выражение сравнивается с другим. Предложение WHERE имеет следующий формат: Синтаксис ... WHERE expr operator value Примеры ... WHERE hiredate=’01-JAN-95’ ... WHERE salary&amp;gt;=6000 ... WHERE Last_name=‘SMITH’ Примечание: символы != и ^= также могут использоваться в качестве условия Не равно.
  7. Использование операторов сравнения В примере на слайде команда SELECT выбирает из таблицы EMPLOYEES фамилии и оклады всех служащих, чей оклад меньше или равен 3000. Следует отметить, что никакие явные значения в предложении WHERE не указаны. Точное значение 3000 сравнивается со значением salary таблицы EMPLOYEES.
  8. Оператор BETWEEN С помощью оператора BETWEEN можно проверять строки на вхождение в заданный диапазон значений. Диапазон имеет нижнюю и верхнюю границы. Команда SELECT в примере выбирает из таблицы EMPLOYEES строки для всех служащих, чьи оклады находятся в диапазоне от $2500 до $3500. Граничные значения, задаваемые с помощью оператора BETWEEN, входят в диапазон. Сначала необходимо задать нижнюю границу.
  9. Оператор IN Для проверки принадлежности значений к заданному списку используется оператор IN. В вышеуказанном примере запрашиваются данные о всех служащих, менеджерами которых являются служащие под номерами 100, 101 или 201. По каждому такому служащему выводится его номер служащего, фамилия, оклад и номер менеджера. Оператор IN может использоваться с данными любого типа. Следующий запрос возвращает строки таблицы EMPLOYEES для всех служащих, чья фамилия соответствует списку фамилий в предложении WHERE. SELECT employee_id, manager_id, department_id FROM employees WHERE last_name IN (&amp;apos;Hartstein&amp;apos;, &amp;apos;Vargas&amp;apos;); Если в список входят символьные строки и даты, они должны быть заключены в апострофы (‘ &amp;apos;).
  10. Оператор LIKE Иногда точное искомое значение неизвестно. Оператор LIKE позволяет выбрать строки, соответствующие определенному символьному шаблону. Такая операция поиска называется поиском по метасимволам (wildcard search). Для создания поисковой строки могут использоваться два метасимвола. СимволОписание % Представляет любую последовательность из нуля или более символов _ Представляет любой одиночный символ Вышеуказанная команда SELECT возвращает из таблицы EMP все фамилии служащих, начинающиеся с буквы “S”. Следует отметить, что буква “S” – заглавная. Строки с фамилиями, начинающимися со строчной буквы “s”, в выходные данные не войдут. Оператор LIKE может использоваться в качестве быстрого эквивалента некоторых операций сравнения BETWEEN. В следующем примере выводятся фамилии и даты найма всех служащих, поступивших на работу с января по декабрь 1995 г. SELECT last_name, hire_date FROM employees WHERE hire_date LIKE &amp;apos;%95&amp;apos;;
  11. Комбинирование метасимволов Символы % и _ можно комбинировать с литеральными символами. Пример на слайде показывает вывод всех фамилий служащих, вторая буква в которых – “А” . Опция ESCAPE Если поиск производится не по метасимволам, а по действительным символам “%” и “_”, необходимо использовать опцию ESCAPE. Эта опция задает символ, присутствие которого превращает метасимвол в обычный символ. Следующая команда SQL запрашивает все фамилии служащих, включающие “SA _”. SELECT employee_id, last_name, job_id FROM employees WHERE job_id LIKE &amp;apos;%SA\_%&amp;apos; ESCAPE &amp;apos;\&amp;apos;; В опции ESCAPE задан символ обратной косой черты (\). Т.к. В шаблоне косая черта предшествует символу подчеркивания (_), сервер Oracle воспринимает символ подчеркивания не как метасимвол, а буквально.
  12. Оператор IS NULL Оператор IS NULL проверяет на неопределенные значения. Это означает, что значение недоступно, не присвоено, неизвестно или неприменимо. Проверка на равенство (=) в этом случае невозможна, так как неопределенное значение не может быть равно или неравно чему-либо. В вышеуказанном примере запрашиваются фамилии и менеджеры всех служащих, не имеющих менеджера. Следующая команда SQL запрашивает фамилии, должности и комиссионные всех служащих, не имеющих права на комиссионные: SELECT last_name, job_id, commission_pct FROM employees WHERE commission_pct IS NULL;
  13. Логические операторы Логический оператор формирует единый результат в зависимости от выполнения или невыполнения двух условий или инвертирует результат оценки одного условия. В SQL имеется три логических оператора: AND OR NOT До сих пор в предложениях WHERE указывалось только одно условие. С помощью операторов AND(И) и OR(ИЛИ) можно задать несколько условий в одном предложении WHERE.
  14. Оператор AND В этом примере для вывода строки должны выполняться оба условия. Следовательно, в выходные данные войдут строки о служащих с должностью, включающей MAN и окладом более $10000. Любой поиск по символам различает верхний и нижний регистры. Если не указать MAN заглавными буквами, ни одна строка не будет выбрана. Символьные строки должны быть заключены в апострофы. Таблица истинности для оператора AND Следующая таблица показывает результаты сочетания двух выражений с оператором AND:  
  15. Оператор OR В этом примере для выборки строки достаточно выполнения одного из условий. Следовательно, будут выбраны строки для всех служащих с должностью, содержащей MAN или окладом более $10000. Таблица истинности для оператора OR Следующая таблица показывает результаты сочетания двух выражений с оператором OR:  
  16. Оператор NOT В этом примере запрашиваются фамилии и должности всех служащих, чья должность – не IT_PROG, ST_CLERK, или SA_REP. Таблица истинности для оператора NOT Следующая таблица показывает результат применения оператора NOT к условию: Примечание: оператор NOT может также использоваться с такими операторами SQL, как BETWEEN, LIKE и NULL. ... WHERE job_id NOT IN (&amp;apos;AC_ACCOUNT&amp;apos;, &amp;apos;AD_VP&amp;apos;) ... WHERE salary NOT BETWEEN 10000 AND 15000 ... WHERE last_name NOT LIKE &amp;apos;%A%&amp;apos; ... WHERE commission_pct IS NOT NULL
  17. Пример приоритета оператора AND В этом примере два условия: Первое – должность AD_PRES и оклад более 15000. Второе – должность SA_REP. Таким образом, команда SELECT читается следующим образом: “Выбрать строку, если служащий – AD_PRES и зарабатывает более $15000 или он – SA_REP.”
  18. Использование скобок В этом примере два условия: Первое – должность AD_PRES или SA_REP. Второе – оклад более 15000. Следовательно, команда SELECT читается следующим образом: “Выбрать строку, если служащий – AD_PRES или SA_REP и если он зарабатывает более $15000.”
  19. Предложение ORDER BY Последовательность строк, возвращаемых запросом, не определена. Отсортировать строки можно с помощью предложения ORDER BY. Если оно используется, то в команде должно быть последним. Для сортировки можно задать выражение или псевдоним. Синтаксис SELECT expr FROMtable [WHERE condition(s)] [ORDER BY {column, expr} [ASC|DESC]]; где: ORDER BYзадает порядок вывода выбранных строк, ASCупорядочивает строки в порядке возрастания (используется по умолчанию). DESCупорядочивает строки в порядке убывания. Если предложение ORDER BY не используется, порядок сортировки не определен, и при повторе запроса сервер Oracle может выдать строки в другой последовательности. Для сортировки выходных строк следует использовать предложение ORDER BY.
  20. Сортировка данных по умолчанию По умолчанию данные сортируются в порядке возрастания: Числовые значения выводятся, начиная с самых малых – например, с 1 по 999. Даты выводятся, начиная с самых ранних – например, дата 01-JAN-92 предшествует дате 01-JAN-95. Символьные значения выводятся в алфавитном порядке – например, от A до Z, от a до z. Неопределенные значения при сортировке по возрастанию выводятся последними, а при сортировке по убыванию – первыми. Изменение порядка сортировки, используемого по умолчанию. Для смены последовательности сортировки на обратную укажите ключевое слово DESC после названия столбца в предложении ORDER BY. В примере на слайде первыми в списке появляются недавно принятые служащие.
  21. Сортировка по псевдонимам столбцов В предложении ORDER BY можно использовать псевдоним столбца. В вышеуказанном примере данные сортируются по годовому доходу.
  22. Сортировка по нескольким столбцам Результаты запроса можно сортировать по нескольким столбцам. Предельным количеством столбцов для сортировки является количество столбцов в данной таблице. В предложении ORDER BY столбцы задаются через запятую. Чтобы сменить последовательность столбца на обратную, укажите DESC после названия столбца. Сортировку можно производить и по столбцам, не указанным в предложении SELECT. Пример Вывод фамилий и окладов всех служащих. Результаты сортируются по номерам отделов, а внутри отделов – в порядке убывания окладов. SELECT last_name, salary FROM employees ORDER BY department_id, salary DESC;
  23. Заключение На этом уроке вы научились ограничивать количество строк, выбираемых командой SELECT, сортировать выходные строки и пользоваться различными операциями.
  24. Обзор практического занятия Упражнения этого занятия прививают навыки использования предложений WHERE и ORDER BY.