Чтение онлайн

на главную - закладки

Жанры

Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики
Шрифт:

Рисунок 34. Запрос к таблице CITY: население от 300 000 до 1 000 000

Выбираем людей * с именем Андрей (FIRSTNAME) и возрастом (YEAROLD) от 25 до 28 лет.

Рисунок 35.

Запрос к таблице MAN: население от 25 до 28 лет, имя Андрей

Выбираем людей * с возрастом не в интервале от 25 до 28 лет.

Выбрать машины * с годом выпуска (RELEASEDT) от 2001 до 2014.

Рисунок 36. Запрос всех записей из AUTO

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

Следует отметить, что использование BETWEEN разумно только для данных числовых типов и для данных типа DATE, что естественно, так как мы можем найти числа в заданном интервале и даты в заданном интервале, а вот со строкам и текстом это сделать затруднительно.

Также важное замечание: обратите внимание, что BETWEEN позволяет выбрать данные, принадлежащие и равные нижней и верхней границам заданного интервала.

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

Оператор BETWEEN на что-то похож, можно ли обойтись без него?

Оператор BETWEEN создан для удобства, и, разумеется, его можно заменить несколькими логическими выражениям, и вот пример.

Пример:

Выбираем города CITY * с населением (PEOPLES) от 300 000 до 1 000 000.

Не будем использовать BEETWEEN.

Можно ли в запросе использовать несколько BETWEEN, объединенных логическими операндами?

Да, разумеется, такой запрос можно написать. Выберем из таблицы MAN людей с возрастом в интервалах от 20 до 30 и от 35 до 39 лет.

Вы говорили, что BETWEEN также можно использовать и в операторах модификации данных?

Да, как и все другие операторы, используемые для выбора строк в 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

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

Хозяйка дома в «Гиблых Пределах»

Нова Юлия
Любовные романы:
любовно-фантастические романы
5.75
рейтинг книги
Хозяйка дома в «Гиблых Пределах»

Матабар

Клеванский Кирилл Сергеевич
1. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар

Белые погоны

Лисина Александра
3. Гибрид
Фантастика:
фэнтези
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Белые погоны

Лучший из худших-2

Дашко Дмитрий Николаевич
2. Лучший из худших
Фантастика:
фэнтези
5.00
рейтинг книги
Лучший из худших-2

Последний попаданец

Зубов Константин
1. Последний попаданец
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Последний попаданец

Измена. Мой заклятый дракон

Марлин Юлия
Любовные романы:
любовно-фантастические романы
7.50
рейтинг книги
Измена. Мой заклятый дракон

Боярышня Евдокия 4

Меллер Юлия Викторовна
4. Боярышня
Фантастика:
альтернативная история
фэнтези
5.00
рейтинг книги
Боярышня Евдокия 4

Новый Рал 7

Северный Лис
7. Рал!
Фантастика:
попаданцы
5.00
рейтинг книги
Новый Рал 7

Игра Кота 2

Прокофьев Роман Юрьевич
2. ОДИН ИЗ СЕМИ
Фантастика:
фэнтези
рпг
7.70
рейтинг книги
Игра Кота 2

Сумеречный стрелок

Карелин Сергей Витальевич
1. Сумеречный стрелок
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный стрелок

На границе империй. Том 8. Часть 2

INDIGO
13. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 8. Часть 2

В семье не без подвоха

Жукова Юлия Борисовна
3. Замуж с осложнениями
Фантастика:
социально-философская фантастика
космическая фантастика
юмористическое фэнтези
9.36
рейтинг книги
В семье не без подвоха

Назад в СССР 5

Дамиров Рафаэль
5. Курсант
Фантастика:
попаданцы
альтернативная история
6.64
рейтинг книги
Назад в СССР 5

Его маленькая большая женщина

Резник Юлия
Любовные романы:
современные любовные романы
эро литература
8.78
рейтинг книги
Его маленькая большая женщина