Вход/Регистрация
Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики
вернуться

Чалышев Максим Михайлович

Шрифт:

Да, как и все другие операторы, используемые для выбора строк в WHERE.

Примеры

Обновим дату создания авто на 01.01.2014 для автомобилей с датой создания в интервале от 01.01.2011 до 01.01.2014.

DELETE MAN WHERE YEAROLD BETWEEN 7 AND 16

Удаление всей информации о людях, которым от 7 до 16 лет. Обратите внимание: возраст 7 и 16 входит в заданный интервал и эта информация также будет удалена.

Контрольные вопросы и задания для самостоятельного выполнения

1. Как можно заменить оператор BETWEEN и обойтись без него, чтобы запрос возвращал правильные данные?

2. Выберите города с населением от 40 000 до 2 000 000 человек, напишите SQL-запрос.

3. Выберите города с населением НЕ в интервале 40 000 до 2 000 000 человек, напишите SQL-запрос.

4. Выберите людей * с возрастом НЕ в интервале 25 до 28 лет, используйте NOT, напишите SQL-запрос.

5. Выберите машины с годом выпуска от 2007 до 2011, напишите SQL-запрос.

Шаг 20. DISTINCT, дубликаты значений

Введение

В определенных запросах SQL как неприятный побочный результат выводится множество одинаковых, повторяющихся записей. Иногда нам необходимо уйти от данных повторений, убрать дубли из результатов запроса.

Теория и практика

В SQL существует специальная команда DISTINCT, которая предназначена для выбора в запросе только уникальных значений, уникальных строк, то есть исключает из вывода повторения и дублирования строк.

Синтаксис

Примеры

Вывести из таблицы AUTO марки автомобилей (MARK), исключить повторения – дубли.

Запрос без DISTINCT:

Рисунок 37. Запрос: дубли марок

Есть дублирующиеся марки авто AUDI, LADA в результате вывода.

Используем DISTINCT:

SELECT DISTINCT MARK FROM AUTO

Дубли строк не выводятся.

Рисунок 38. Запрос: марки авто

Вывести из таблицы AUTO марки и цвета автомобилей (MARK, COLOR), исключить повторения.

Рисунок 39. Запрос: марки авто и цвета

Несколько синих AUDI, используем DISTINCT.

Рисунок 40. Запрос: марки, цвета авто, только уникальные записи

Важные замечания

Важно отметить, что дубли исключаются DISTINCT только из колонок, перечисленных в SELECT; других колонок DISTINCT не касается.

С помощью DISTINCT очень удобно просмотреть, какие вообще значения есть в заданной колонке, например автомобили каких цветов присутствуют в таблице AUTO:

SELECT DISTINCT COLOR FROM AUTO

Вопросы учеников

Есть ли еще какой-либо способ исключить дубли из запроса?

Да, подобный способ называется группировка записей, и мы изучим его позже.

Можно ли использовать DISTINCT с ROWNUM?

Да, но тогда оператор DISTINCT бесполезен, его использование потеряет смысл.

Можно ли использовать DISTINCT с WHERE?

Конечно, это возможно, нет никаких ограничений, и вот пример такого запроса.

Выведите из таблицы AUTO автомобили марки LADA уникальных цветов.

Контрольные вопросы и задания для самостоятельного выполнения

1. Повторите материалы данного шага.

2. Выведите из таблицы AUTO цвета автомобилей, исключите повторения, напишите SQL-запрос.

3. Выведите из таблицы MAN имена людей, исключите повторения, напишите SQL-запрос.

День пятый

  • Читать дальше
  • 1
  • ...
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: