SQL: быстрое погружение - [15]

Шрифт
Интервал

? К счастью, в SQL существуют инструменты, которые не только позволяют сузить набор результатов (то есть результаты запроса) до очень конкретных данных, но также упорядочить и отфильтровать данные в зависимости от заданных пользователем условий.

Примечание

С этого момента мы не будем показывать окна с выходными данными браузера DB Browser (только если мы специально не ссылаемся на функцию браузера). Теперь мы будем показывать результаты наших запросов в табличной форме (рис. 40).

Рис. 40

Операторы сравнения, логические и арифметические операторы

Операторы — это специальные ключевые слова в SQL, которые мы используем вместе с условиями для сравнения значений полей, выбора подмножеств полей или выполнения арифметических операций.*** В отличие от уже изученных нами ключевых слов, таких как SELECT, операторы не могут существовать как самостоятельные условия SQL, их следует использовать с другими условиями, такими как SELECT и WHERE (которые мы рассмотрим в этой главе). На рис. 41 показаны три типа операторов, которые мы будем использовать далее в этой главе.

Рис. 41

Примечание

Для создания более сложных запросов операторы разных типов можно комбинировать. Это позволяет получать данные в зависимости от определенного диапазона или создавать уникальные условия. Рассмотрим наиболее распространенные операторы.

В следующем примере мы рассмотрим, как арифметические операторы используются вместе с условием SELECT для увеличения значения поля Total из таблицы invoices базы данных sTunes. Арифметические операции полезны, когда необходимо считать налоги, надбавки и др.

SELECT

Total AS [Original Amount],

Total + 10 AS [Addition Operator],

Total — 10 AS [Subtraction Operator],

Total / 10 AS [Division Operator],

Total * 10 AS [Multiplication Operator],

Total % 10 AS [Modulo Operator]

FROM

invoices

ORDER BY

Total DESC

Рис. 42

Практические задания

• Используя приведенный выше пример запроса, отобразите поле Total из таблицы invoices с добавленным налогом в размере 15 %.

Фильтрация данных (WHERE)

Помимо условия SELECT операторы чаще всего используются в условии WHERE. С помощью WHERE мы можем добавлять к нашим запросам определенные условия, например ограничивать результаты наших запросов в соответствии с необходимыми задачами. Некоторые распространенные типы данных, которые мы можем фильтровать, содержат числа, текст и даты. Для фильтрации данных мы будем использовать WHERE вместе с операторами.

Рассмотрим следующий пример. Предположим, что отдел продаж компании sTunes хочет знать, сколько клиентов купили две песни стоимостью по $0,99 каждая. Как ответить на этот вопрос? В главе 3 в разделе «Контрольные вопросы» мы показывали таблицу tracks. Из нее мы знаем, что наша компания продает отдельные песни по цене $0,99 и $1,99 (рис. 43).

Если мы проанализируем таблицу invoices (рис. 44), то увидим общую стоимость заказов в поле Total.

Если бы нам понадобилось узнать количество клиентов, которые приобрели всего две песни по $0,99, мы бы отобразили в таблице invoices запись на общую сумму $1,98 — за две песни.


Рис. 43

Рис. 44

Используя инструменты, которые вы изучили в предыдущей главе, можно написать запрос, который осуществляет выборку всех счетов, а затем упорядочивает их по общей сумме, но для этого необходимо выполнить расчет вручную. Но можно и вставить условие WHERE между условиями FROM и ORDERBY для поиска только тех счетов, которые равны $1,98. Вместе с итоговой суммой добавим несколько других полей, таких как дата выставления счета и адрес, что поможет нам идентифицировать каждый счет. Получим следующий запрос:

SELECT

InvoiceDate,

BillingAddress,

BillingCity,

Total

FROM

invoices

WHERE

Total = 1.98

ORDER BY

InvoiceDate

Рис. 45

Примечание

Условие WHERE всегда следует после условия FROM, но всегда находится перед ORDER BY. В приведенном выше примере условие WHERE добавлено для возврата всех счетов на сумму $1,98. Знак = — это оператор сравнения.

Практические задания

Используя операторы сравнения, напишите следующие запросы:

• запрос, возвращающий все счета, превышающие значение $1,98;

• запрос, возвращающий все счета, которые больше или равны $1,98;

• запрос, возвращающий все счета, кроме $1,98.

Другой полезный вид операторов — логические. Используя логические операторы, вы можете создавать более сложные и конкретные запросы, которые трудно выполнить с помощью операторов сравнения. Предположим, что вас попросили узнать, какое количество счетов имеется в определенном диапазоне, например от $1,98 до $5.

В данном случае целесообразно использовать оператор BETWEEN. Оператор BETWEEN задает диапазон для проверки условия. Для определения необходимого диапазона значений вместе с оператором BETWEEN используется оператор AND. Рассмотрим следующий запрос, который возвращает счета, находящиеся в диапазоне от $1,98 до $5,00.

SELECT

InvoiceDate,

BillingAddress,

BillingCity,

Total

FROM

invoices

WHERE

Total BETWEEN 1.98 AND 5.00

ORDER BY

InvoiceDate

Проанализируем первые десять результатов этого запроса (рис. 46). Итоговые суммы счетов находятся в диапазоне от $1,98 до $5. Оператор BETWEEN включает

Рис. 46

в диапазон и параметры, которые вы ему зададите. Другими словами, здесь он будет включать любые значения между 1,98 и 5,00 и равные этим значениям. Для достижения того же результата, используя условие WHERE и операторы сравнения, вы можете написать следующее: Total>=1.98ANDTotal<=5.00. Однако в данном случае гораздо проще использовать оператор BETWEEN.


Рекомендуем почитать
Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


Геймдизайн. Рецепты успеха лучших компьютерных игр от Super Mario и Doom до Assassin’s Creed и дальше

Что такое ГЕЙМДИЗАЙН? Это не код, графика или звук. Это не создание персонажей или раскрашивание игрового поля. Геймдизайн – это симулятор мечты, набор правил, благодаря которым игра оживает. Как создать игру, которую полюбят, от которой не смогут оторваться? Знаменитый геймдизайнер Тайнан Сильвестр на примере кейсов из самых популярных игр рассказывает как объединить эмоции и впечатления, игровую механику и мотивацию игроков. Познакомитесь с принципами дизайна, которыми пользуются ведущие студии мира! Создайте игровую механику, вызывающую эмоции и обеспечивающую разнообразие.


Обработка событий в С++

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


MFC и OpenGL

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


Симуляция частичной специализации

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


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.


В работу с головой. Паттерны успеха от IT-специалиста

Не можете сосредоточиться на работе? Постоянно отвлекаетесь на проверку электронной почты, социальные сети и новостные ленты? Пора воспользоваться советами от ведущих IT-специалистов и погрузиться в работу с головой.Освойте один из самых ценных навыков – умение сосредоточиться на сложной задаче, не отвлекаясь на мелочи. Только так можно справиться со сложной информацией и добиться лучших результатов за минимальное время. Погружение в работу – это суперсила в нашей все более конкурентной экономике XXI века.


Чистый код. Создание, анализ и рефакторинг

Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение». Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей.


Изучаем Python

Книга "Изучаем Python" - это ускоренный курс, который позволит вам сэкономить время и сразу начать писать работоспособные программы (игры, визуализации данных, веб-приложения и многое другое). Хотите стать программистом? В первой части книги вам предстоит узнать о базовых принципах программирования, познакомиться со списками, словарями, классами и циклами, вы научитесь создавать программы и тестировать код. Во второй части книги вы начнете использовать знания на практике, работая над тремя крупными проектами: создадите собственную "стрелялку" с нарастающей сложностью уровней, займетесь работой с большими наборами данных и освоите их визуализацию, и, наконец, создадите полноценное веб-приложение на базе Django, гарантирующее конфиденциальность пользовательской информации. Если вы решились разобраться в том что такое программирование, не нужно ждать.


Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих

Алгоритмы - это всего лишь пошаговые алгоритмы решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузится в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время? Откройте великолепно иллюстрированную книгу и вы сразу поймете, что алгоритмы - это просто. А грокать алгоритмы - это веселое и увлекательное занятие.