Опубликован: 10.09.2004 | Уровень: для всех | Доступ: платный | ВУЗ: Ульяновский государственный университет
Лекция 4:

Эффективное выполнение запросов для извлечения данных

< Лекция 3 || Лекция 4: 123 || Лекция 5 >

Соответствие шаблону

С помощью оператора LIKE можно выполнять сравнение выражения с заданным шаблоном, в котором допускается использование символов-заменителей:

  • Символ % – вместо этого символа может быть подставлено любое количество произвольных символов.
  • Символ _ заменяет один символ строки.
  • [] – вместо символа строки будет подставлен один из возможных символов, указанный в этих ограничителях.
  • [^] – вместо соответствующего символа строки будут подставлены все символы, кроме указанных в ограничителях.

Пример 4.10. Найти клиентов, у которых в номере телефона вторая цифра – 4.

SELECT Клиент.Фамилия, Клиент.Телефон
    FROM Клиент
    WHERE Клиент.Телефон LIKE '_4%'
Пример 4.10. Выборка клиентов, у которых в номере телефона вторая цифра – 4.

Пример 4.11. Найти клиентов, у которых в номере телефона вторая цифра – 2 или 4.

SELECT Клиент.Фамилия, Клиент.Телефон
    FROM Клиент
    WHERE Клиент.Телефон LIKE '_[2,4]%'
Пример 4.11. Выборка клиентов, у которых в номере телефона вторая цифра – 2 или 4.

Пример 4.12. Найти клиентов, у которых в номере телефона вторая цифра 2, 3 или 4.

SELECT Клиент.Фамилия, Клиент.Телефон
    FROM Клиент
    WHERE Клиент.Телефон LIKE '_[2-4]%'
Пример 4.12. Выборка клиентов, у которых в номере телефона вторая цифра 2, 3 или 4.

Пример 4.13. Найти клиентов, у которых в фамилии встречается слог "ро".

SELECT Клиент.Фамилия
    FROM Клиент
    WHERE Клиент.Фамилия LIKE "%ро%"
Пример 4.13. Выборка клиентов, у которых в фамилии встречается слог "ро".

Значение NULL

Оператор IS NULL используется для сравнения текущего значения со значением NULL – специальным значением, указывающим на отсутствие любого значения. NULL – это не то же самое, что знак пробела (пробел – допустимый символ) или ноль (0 – допустимое число). NULL отличается и от строки нулевой длины (пустой строки).

Пример 4.14. Найти сотрудников, у которых нет телефона (поле Телефон не содержит никакого значения).

SELECT Фамилия, Телефон
    FROM Клиент 
    WHERE Телефон IS NULL
Пример 4.14. Выборка сотрудников, у которых нет телефона (поле Телефон не содержит никакого значения).

IS NOT NULL используется для проверки присутствия значения в поле.

Пример 4.15. Выборка клиентов, у которых есть телефон (поле Телефон содержит какое-либо значение).

SELECT Клиент.Фамилия, Клиент.Телефон
    FROM Клиент
    WHERE Клиент.Телефон Is Not Null
Пример 4.15. Найти клиентов, у которых есть телефон (поле Телефон содержит какое-либо значение).

Предложение ORDER BY

В общем случае строки в результирующей таблице SQL-запроса никак не упорядочены. Однако их можно требуемым образом отсортировать, для чего в оператор SELECT помещается фраза ORDER BY, которая сортирует данные выходного набора в заданной последовательности. Сортировка может выполняться по нескольким полям, в этом случае они перечисляются за ключевым словом ORDER BY через запятую. Способ сортировки задается ключевым словом, указываемым в рамках параметра ORDER BY следом за названием поля, по которому выполняется сортировка. По умолчанию реализуется сортировка по возрастанию. Явно она задается ключевым словом ASC. Для выполнения сортировки в обратной последовательности необходимо после имени поля, по которому она выполняется, указать ключевое слово DESC. Фраза ORDER BY позволяет упорядочить выбранные записи в порядке возрастания или убывания значений любого столбца или комбинации столбцов, независимо от того, присутствуют эти столбцы в таблице результата или нет. Фраза ORDER BY всегда должна быть последним элементом в операторе SELECT.

Пример 4.16.Вывести список клиентов в алфавитном порядке.

SELECT Клиент.Фамилия, Клиент.Фирма 
    FROM Клиент
    ORDER BY Клиент.Фамилия
Пример 4.16. Список клиентов в алфавитном порядке.

Во фразе ORDER BY может быть указано и больше одного элемента. Главный (первый) ключ сортировки определяет общую упорядоченность строк результирующей таблицы. Если во всех строках результирующей таблицы значения главного ключа сортировки являются уникальными, нет необходимости использовать дополнительные ключи сортировки. Однако, если значения главного ключа не уникальны, в результирующей таблице будет присутствовать несколько строк с одним и тем же значением старшего ключа сортировки. В этом случае, возможно, придется упорядочить строки с одним и тем же значением главного ключа по какому-либо дополнительному ключу сортировки.

Пример 4.17. Вывести список фирм и клиентов. Названия фирм упорядочить в алфавитном порядке, имена клиентов в каждой фирме отсортировать в обратном порядке.

SELECT Клиент.Фирма, Клиент.Фамилия 
    FROM Клиент
    ORDER BY Клиент.Фирма, Клиент.Фамилия DESC
Пример 4.17. Список фирм и клиентов. Названия фирм в алфавитном порядке, имена клиентов в каждой фирме в обратном порядке.
< Лекция 3 || Лекция 4: 123 || Лекция 5 >
Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?

Ирина Мельник
Ирина Мельник

Здравствуйте, записалась на курс основы SQL, подскажите, стоимость курса.

Сергей Пантелеев
Сергей Пантелеев
Россия, Москва
Ахмет Арчаков
Ахмет Арчаков
Россия, Магас