Сортировка
строк, возвращаемых запросом
Пример:
Вывод
из таблицы TRAINER
фамилии, возраста и даты начала работы
каждого тренера. Результат сортируется
по фамилиям.
SELECT
last_name, age, start_date
FROM
trainer
ORDER
BY last_name;
По умолчанию
строки сортируются в порядке возрастания:
- Вывод числовых значений производится от меньших к большим - например, 1 - 999.
- Вывод дат начинается с более ранних - например, 01-ЯНВ-92 предшествует 01-ЯНВ-95.
- Вывод символьных значений производится в алфавитном порядке -например, от А до Z.
- Неопределенные значения при сортировке по возрастанию выводятся последними, а при сортировке по убыванию - первыми.
Порядок
сортировки, принятый по умолчанию,
меняется на противоположный с помощью
слова DESC
после имени столбца в предложении ORDER
BY.
Пример:
Вывод
из таблицы TRAINER
фамилии, возраста и даты начала работы
каждого тренера. Результат
сортируется
по
фамилиям.
SELECT
last_name, age, start_date
FROM
trainer
ORDER
BY last_name DESC;
Еще один
способ сортировки результатов запроса
- это сортировка по позиции. Он особенно
полезен при сортировке по длинному
выражению. Вместо повторного ввода
выражения можно указать его позицию в
списке SELECT
SELECT
last_name, age, salary*2
FROM
trainer
ORDER
BY 3;
Сортировать
результат можно и по нескольким столбцам.
Предельным количеством столбцов
сортировки является количество столбцов
таблицы. Столбцы указываются в предложении
ORDER
BY
через запятые. Для изменения порядка
сортировки по какому-либо столбцу на
обратный следует задать квалификатор
DESC
после его имени или позиции. Сортировать
можно и по столбцам, не входящим в список
SELECT.
Ограничить
набор строк, возвращаемых в результате
запроса, можно с помощью предложения
WHERE.
Предложение WHERE
следует сразу за предложением FROM и
задает условие, которое должно быть
выполнено. Условие состоит из имен
столбцов, выражений, констант и операторов
сравнения.
Пример:
Запрос
для вывода имен, фамилий и золотых побед
спортсменов.
SELECT
first_name, last_name, winner
FROM
sportmen
WHERE
winner=’gold’;
В символьных
строках различаются символы верхнего
и нижнего регистров. Поэтому, для
совпадения, фамилия должна быть написана
строчными буквами и начинаться с
заглавной буквы.
Оператор
BETWEEN.
Оператор
BETWEEN используется для проверки вхождения
значения в интервал значений (включая
границы интервала). Нижняя граница
должна быть указана первой.
Пример:
Вывод
имени, фамилии и даты найма тренеров,
нанятых между 1 января и 1 октября 1995
года включительно.
SELECT
first_name, last_name, start_date
FROM
trainer
WHERE
start_date BETWEEN '2005-01-01' AND '2005-10-01'
Оператор
IN.
Для проверки
принадлежности значений к заданному
списку используется оператор IN.
Пример:
Вывод
имени, фамилии и возраста тренеров,
которым только 30 и 50 лет.
SELECT
first_name, last_name, age
FROM
trainer
WHERE
age in (30,50);
Оператор
LIKE.
Используется
для поиска строковых значений с помощью
метасимволов (wildcards). Условия для поиска
могут содержать символьные литералы
или числа:
- ‘%’ означает отсутствие или некоторое количество символов;
- ‘_’ означает один символ.
Пример:
Вывод
всех фамилий тренеров на букву “Р”.
SELECT
last_name
FROM
trainer
WHERE
last_name LIKE ‘P%’;
Оператор
LIKE может использоваться в качестве
быстрого эквивалента некоторых операций
BETWEEN. (пример про год)
В критерии
поиска символы ‘%’ и ‘_’ можно сочетать
с литералами в любой комбинации.
Пример:
Вывод
фамилий, второй буквой которых является
“о”
SELECT
last_name
FROM
trainer
WHERE
last_name LIKE ‘_o%’;
Параметр
ESCAPE.
Поиск символов
‘%’ и ‘_’ требует использования
идентификатора ESCAPE (отменяющего
специальное значение метасимволов).
Пример:
Вывод
названий видов спорта, содержащих
сочетание “X_Y”.
SELECT
name
FROM
sport_type
WHERE
name LIKE ‘%X_Y%’ ESCAPE ‘_’;
Оператор
IS NULL.
Неопределенные
значения проверяются с помощью оператора
IS NULL. Пользоваться оператором “=“ для
сравнения с неопределенными значениями
не следует, так как неопределенное
значение не может быть равно или не
равно какому-то другому.
SELECT
id, first_name, age
FROM
trainer
WHERE
age IS NULL;
Выборка по
нескольким условиям.
Использование сложных
критериев для выборки возможно при
сочетании условий с помощью операторов
AND и OR.
Примечание:
Оператор AND требует выполнения обоих
условий.
WHERE
age=25 AND winner=’gold’;
Примечание:
Оператор OR требует выполнения хотя бы
одного из условий.
WHERE
age=25 OR winner=’gold’;
Комментариев нет:
Отправить комментарий