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

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

Напутственные слова

Я искренне надеюсь, что вам понравилась книга и что я смог вас увлечь этой темой. Дополнительную информацию о деятельности моей компании по визуализации данных и об учебных курсах, которые я предлагаю, вы можете найти на http://datadecided.com. Мне было приятно сопровождать вас в этом увлекательном путешествии в мире баз данных.

Приложение I. Контрольные вопросы и ответы на них

Глава 3. Контрольные вопросы

Используя вкладку Database Structure (Структура базы данных) и вкладку Browse Data (Просмотр данных), ответьте на следующие вопросы.

Вопрос 1. Сколько таблиц в нашей базе данных?

Решение. В DB Browser перейдите на вкладку Database Structure (Структура базы данных), где количество таблиц указано в скобках (). В нашей базе данных тринадцать таблиц.

Рис. 129

Вопрос 2. Сколько полей в таблице tracks?

Решение. Для любой из перечисленных таблиц мы можем щелкнуть на расположенном справа маленьком треугольнике, чтобы отобразить столбцы этой таблицы.

Рис. 130

Из примера следует, что таблица tracks состоит из девяти столбцов.

Вопрос 3. Какие типы данных указаны в этой таблице?

Решение. На рис. 130 видно, что столбец TrackId принимает данные типа INTEGER, а столбец Name принимает данные типа NVARCHAR. Остальные столбцы также принимают типы INTEGER и NVARCHAR за исключением UnitPrice, который принимает тип данных NUMERIC.

Вопрос 4. Как выглядят данные в таблице?

Решение. Перейдите на вкладку Browse Data (Просмотр данных) и проанализируйте таблицу. Необходимо в раскрывающемся меню выбрать таблицу tracks. Анализ данных в таблице показывает, почему тип данных INTEGER используется для таких столбцов, как TrackId и AlbumId, в то время как символьный тип данных имеет больше смысла для столбцов Name и Composer. Наконец, для UnitPrice необходим тип данных с десятичными знаками, а целочисленного типа данных для этого столбца недостаточно.

Рис. 131

Глава 4. Контрольные вопросы

Вопрос 1. Напишите запрос, чтобы узнать количество клиентов, фамилии которых начинаются с буквы B.

Решение. Чтобы ответить на этот вопрос, сначала надо написать запрос для отображения конкретной информации, которую мы ищем. В данном случае нас интересуют фамилии. Фамилии содержатся в таблице клиентов в поле LastName.

Следующий запрос отображает все фамилии.

SELECT

LastName

FROM

customers

В результате данного запроса отображаются все фамилии, но они не расположены в нужном порядке. Чтобы расположить их по алфавиту, мы можем использовать оператор ORDERBY. Обратите внимание, что нам не нужно указывать A — Z, так как по умолчанию данные отображаются в порядке возрастания. Если бы нам требовалось получить имена, начинающиеся с буквы Z, мы использовали бы оператор DESC.

SELECT

LastName

FROM

customers

ORDER BY

LastName ASC

Рис. 132

Теперь наши результаты расположены в алфавитном порядке, и мы можем видеть, что четыре записи начинаются с буквы B. Обратите внимание, что мы все еще посредством визуального наблюдения определяем, сколько записей начинается с буквы B. Другие способы мы рассмотрим ниже.

Вопрос 2. Какая компания при сортировке в порядке убывания появляется в верхней строке таблицы customers?

Решение. На этот раз мы ищем поле Company. Как мы говорили в предыдущем вопросе, все, что нам необходимо сделать, это изменить последнюю часть нашего запроса, чтобы указать порядок убывания.

SELECT

Company

FROM

customers

ORDER BY

Company DESC

Получим следующий результат.

Рис. 133

Мы видим, что компания Woodstock Discos — первая в списке по убыванию.

Вопрос 3. Какое количество клиентов не указали почтовый индекс?

Решение. Мы могли бы ответить на этот вопрос, прокручивая данные в разделе Browse Data (Просмотр данных), но есть более эффективный способ. Используя условие SELECT, мы можем перечислить все данные в порядке возрастания. Но на этот раз нам необходимо перечислить более одного столбца, чтобы мы могли видеть, каким именам клиентов не соответствуют данные почтового индекса. Таким образом, мы выберем поля FirstName, LastName и PostalCode, а затем отсортируем результаты по PostalCode.

SELECT

FirstName,

LastName,

PostalCode

FROM

customers

ORDER BY

PostalCode

В результате отобразятся четыре записи, которые не имеют почтовых данных, что обозначено значением null в столбце PostalCode (рис. 134).

Рис. 134

Примечание

Если поля перечислить в порядке убывания, придется прокрутить вниз полосу прокрутки, чтобы увидеть нулевые значения.

Глава 5. Контрольные вопросы

Вопрос 1. Создайте запрос для таблицы invoices, включающий оператор CASE, который будет отмечать все продажи из США — страны, откуда выставлен счет, как Domestic Sales (Продажи на внутреннем рынке), а все другие продажи — как Foreign Sales (Продажи за рубежом). После оператора ENDAS создайте новое поле SalesType.

Решение. Чтобы отобразить эту информацию, необходимо применить фильтрацию, используя оператор CASE. Поскольку мы классифицируем наш оператор CASE по стране, где был выставлен счет, необходимо добавить это поле в условие SELECT.

SELECT

InvoiceDate,

BillingAddress,

BillingCity,

BillingCountry,

Total,

CASE

WHEN BillingCountry = 'USA' THEN 'Domestic Sales'


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

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


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

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


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

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


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

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


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

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


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

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


Изучаем Python

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


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

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