Новости

20.10.2022

Книга «SQL: быстрое погружение»

Что общего между самыми востребованными профессиями и стремительным увеличением количества информации в мире? Ответ: язык структурированных запросов (SQL). SQL – рабочая лошадка среди языков программирования, основа основ для современного анализа и управления данными. Книга «SQL: быстрое погружение» идеальна для всех, кто ищет новые перспективы карьерного роста; для разработчиков, которые хотят расширить свои навыки и знания в программировании; для любого человека, даже без опыта, кто хочет воспользоваться возможностями будущего, в котором будут править данные. Уолтер Шилдс работает с SQL и базами данных уже более восемнадцати лет, сотрудничая с такими организациями, как Target Corporation, NYC Transit Authority и NYC Administration for Children's Services. Он помогает им использовать и понимать свои данные с помощью SQL. Уолтер начал обучать студентов в кафе в Трайбеке в Нью-Йорке, где у него не было ничего, кроме ноутбука, «набитого» учебными материалами по SQL. С тех пор его наставничество превратилось в бизнес — компанию SQL Training Wheels. Когда Уолтер не обучает студентов, он работает над проектом Datadecided в компании Tableau (разработчик одноименного программного обеспечения для интерактивной визуализации данных и бизнес-аналитики). Для читателей, которые уже владеют базовыми или более профессиональными навыками работы с SQL, это краткое руководство станет весьма удобным справочником, к которому всегда можно обратиться при составлении запросов. А для новичков это краткое руководство будет отличным учебным пособием. Обратите внимание, что в первую очередь я рассказываю о базовых инструментах SQL, необходимых для понимания и получения полезной информации из баз данных. Стандартные методы запросов, описанные в этой книге, можно выполнять, не боясь при этом изменить базу данных. В одной из глав мы кратко рассмотрим добавление, изменение и удаление записей из базы данных (DML — язык управления данными). Однако для извлечения информации из базы данных изучать DML не обязательно, но полезно знать, как выполняется процесс. Эта глава может оказаться полезной тем, кто рассматривает возможность карьерного роста в сфере администрирования баз данных.

Преобразование данных в информацию

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

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

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

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

В следующем примере мы рассмотрим, как арифметические операторы используются вместе с условием 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

 

center Фильтрация данных (WHERE) Помимо условия SELECT операторы чаще всего используются в условии WHERE. С помощью WHERE мы можем добавлять к нашим запросам определенные условия, например ограничивать результаты наших запросов в соответствии с необходимыми задачами. Некоторые распространенные типы данных, которые мы можем фильтровать, содержат числа, текст и даты. Для фильтрации данных мы будем использовать WHERE вместе с операторами. Рассмотрим следующий пример. Предположим, что отдел продаж компании sTunes хочет знать, сколько клиентов купили две песни стоимостью по $0,99 каждая. Как ответить на этот вопрос? В главе 3 в разделе «Контрольные вопросы» мы показывали таблицу tracks. Из нее мы знаем, что наша компания продает отдельные песни по цене $0,99 и $1,99 (рис. 43). Если мы проанализируем таблицу invoices (рис. 44), то увидим общую стоимость заказов в поле Total. Если бы нам понадобилось узнать количество клиентов, которые приобрели всего две песни по $0,99, мы бы отобразили в таблице invoices запись на общую сумму $1,98 — за две песни. center Используя инструменты, которые вы изучили в предыдущей главе, можно написать запрос, который осуществляет выборку всех счетов, а затем упорядочивает их по общей сумме, но для этого необходимо выполнить расчет вручную. Но можно и вставить условие WHERE между условиями FROM и ORDER BY для поиска только тех счетов, которые равны $1,98. Вместе с итоговой суммой добавим несколько других полей, таких как дата выставления счета и адрес, что поможет нам идентифицировать каждый счет. Получим следующий запрос:

SELECT

   InvoiceDate,

   BillingAddress,

   BillingCity,

   Total

FROM

   invoices

WHERE

   Total = 1.98

ORDER BY

   InvoiceDate

center Другой полезный вид операторов — логические. Используя логические операторы, вы можете создавать более сложные и конкретные запросы, которые трудно выполнить с помощью операторов сравнения. Предположим, что вас попросили узнать, какое количество счетов имеется в определенном диапазоне, например от $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 включает center в диапазон и параметры, которые вы ему зададите. Другими словами, здесь он будет включать любые значения между 1,98 и 5,00 и равные этим значениям. Для достижения того же результата, используя условие WHERE и операторы сравнения, вы можете написать следующее: Total >= 1.98 AND Total <= 5.00. Однако в данном случае гораздо проще использовать оператор BETWEEN.

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

Практические задания *Используя предыдущий запрос, выполните сортировку по полю Total. Выясните, какая сумма счета в этом наборе данных максимальная. Еще один очень важный оператор SQL — оператор IN. Он позволяет определить, совпадает ли значение в условии WHERE с какими-то значениями в списке. В предыдущем примере оператор BETWEEN возвращал каждое значение в нашей таблице invoices, находящееся в диапазоне от 1,98 до 5,00. Оператор IN позволяет нам находить указанные значения в наборе данных. Значения разделены запятой и заключены в круглые скобки. Следующий запрос возвращает только суммы счетов-фактур, равные $1,98 или $3,96 (рис. 47).

SELECT

   InvoiceDate,

   BillingAddress,

   BillingCity,

   Total

FROM

   invoices

WHERE

   Total IN (1.98, 3.96)

ORDER BY

   InvoiceDate

С помощью оператора = мы можем добавить только одно значение. С помощью оператора IN мы можем добавить сколько угодно значений, разделенных запятыми. Также мы можем использовать оператор IN с текстом (описано в следующем разделе).

center Фильтрация строк Мы также можем использовать операторы для возврата определенного текста подобно тому, как мы делали с числами. Рассмотрим пример с использованием операторов сравнения. Ответим на следующий вопрос: сколько счетов было выставлено в городе Тусон (Tucson)? Для этого необходимо структурировать наш оператор SELECT. Следующий запрос возвращает все счета, выставленные в городе Тусон: SELECT InvoiceDate, BillingAddress, BillingCity, Total WHERE BillingCity = 'Tucson' ORDER BY Total FROM invoices center В результате получено только семь счетов для города Тусон.

При использовании текста в качестве критерия в условии WHERE указанные текстовые значения должны быть заключены в одинарные кавычки (BillingCity = 'Tucson').

Напоминание В предыдущем примере мы использовали символ =, так как требовалось найти только одно значение. Если бы стояла задача получить данные для нескольких городов, мы могли бы использовать оператор IN аналогично тому, как мы использовали его для получения числовых значений.

SELECT

   InvoiceDate,

   BillingAddress,

   BillingCity,

   Total

WHERE

   BillingCity = 'Tucson'

ORDER BY

   Total

FROM

   invoices

center


Комментарии: 0

Пока нет комментариев


Оставить комментарий






CAPTCHAОбновить изображение

Наберите текст, изображённый на картинке

Все поля обязательны к заполнению.

Перед публикацией комментарии проходят модерацию.