Рисунок 19. Запрос к MAN, где возраст больше 27 и меньше 41
Выбрать из таблицы MAN имена и фамилии людей с именем (FIRSTNAME) Андрей, которым больше 27 лет (YEAROLD).
Рисунок 20. Запрос к таблице MAN: Андрей, возраст больше 27 лет
Выбрать из таблицы MAN имена (FIRSTNAME) и фамилии (LASTNAME) людей, которым не больше 27 лет (YEAROLD).
Рисунок 21. Запрос к таблице MAN: Андрей, возраст больше 27 лет
Выбрать из таблицы MAN имена (FIRSTNAME) и фамилии (LASTNAME) людей с именем Андрей или Алексей.
Рисунок 22. Запрос к таблице MAN: Андрей и Алексей
Выбрать из таблицы CITY города (*) с населением (PEOPLES) 400, 500 тысяч жителей.
Рисунок 23. Запрос: города с населением 300 и 400 тысяч
Выбрать из таблицы CITY города (*) с населением (PEOPLES) не 400, 500 тысяч жителей.
Рисунок 24. Запрос: города с населением не 300 и не 400 тысяч
Важные замечания
Несколько условий можно объединять скобками, например из таблицы MAN нам необходимо вывести те строки, где людям 25 или 28 лет с именем Иван. Это можно сделать с помощью следующего запроса:
Очень важно понимать отличие AND от OR, например выведите авто с марками LADA и BMW – в этом запросе необходимо использовать инструкцию OR и ни в коем случае не AND.
Вопросы учеников
Можно ли неравенство заменить на инструкцию NOT?
Да, в большинстве запросов можно так сделать.
Например, запросы
идентичны.
Как поменять несколько условий, перечисленных после WHERE в SQL-запросе, на обратные?
Вопрос не очень понятен, но предположим, у нас есть запрос, который возвращает все строки из таблицы AUTO с марками BMW и LADA.
Если необходимо посмотреть авто не BMW и LADA, то запрос обретет следующий вид:
Контрольные вопросы и задания для самостоятельного выполнения
1. Сколько строк вернет запрос?
2. Выберите из таблицы CITY (*) город, где 200 тысяч жителей (PEOPLES); город с наименованием Москва (CITYNAME).
3. Выберите из таблицы CITY города с населением (PEOPLES) не 500 тысяч жителей.
4. Выберите из таблицы AUTO (*) все синие AUDI (COLOR, MARK).
5. Выберите из таблицы AUTO номера (regnum) и марки (MARK) всех VOLVO и BMW.
6. Выберите из таблицы MAN имена, фамилии (FIRSTNAME, LASTNAME) и возраст людей (YEAROLD), которым больше 29 и меньше 35 лет.
Шаг 13. Сортировка результатов запросов
Введение
Данные, выводимые с помощью запроса SELECT, часто необходимо сортировать по одному или нескольким выводимым колонкам.
Для этого в языке SQL есть специальный оператор ORDER BY, который используется в команде SELECT и пишется в конце запроса. Для того чтобы изменить порядок сортировки на обратный, используется ключевое слово DESC.
Теория и практика
ORDER BY используется для сортировки выводимых данных по заданным колонкам: от большего к меньшему, и наоборот.
Текстовые данные будут отсортированы от А до Я или же от Я до А – при использовании ключевого операнда DESC.
Числовые данные сортируются от меньшего числа к большему числу и от большего числа к меньшему при использовании ключевого операнда DESC.
Данные DATE также: от меньшей даты к большей, и наоборот.
Синтаксис
Где таблица – наименование таблицы, условия выборки которой могут быть объединены логическими операндами.
Примеры запросов
Выведите все записи из таблицы AUTO, отсортируйте автомобили по марке (MARK).
Рисунок 25. Выбрать из таблицы AUTO, отсортировать по марке
Выведите все записи из таблицы AUTO, отсортируйте автомобили по дате создания и цвету в обратном порядке (RELEASED, MARK).
Рисунок 26. Запрос к таблице AUTO: сортировка по дате и цвету авто
Сортировка по двум колонкам RELEASED от меньшей даты к большей, MARK от A—Z.
Выберите только те записи из таблицы MAN, где возраст (YEAROLD) человека больше 30 лет; отсортируйте выбранные записи по возрасту, сортировку произведите в обратном порядке.
Рисунок 27. Выбор из таблицы MAN, где возраст больше 30 лет; сортировка по году выпуска
Пример использования ORDER BY и WHERE
Выберите наименования городов (CITYNAME) и население (PEOPLES) из таблицы CITY, отсортируйте выбранные данные в обратном порядке по наименованию города и количеству населения (PEOPLES).
Рисунок 28. Запрос к CITY: сортировка по названию и населению в обратном порядке