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

Читать, слущать книги онлайн бесплатно!

Электронная Литература.

Бесплатная онлайн библиотека.

Читать: SQL: быстрое погружение - Уолтер Шилдс на бесплатной онлайн библиотеке Э-Лит


Помоги проекту - поделись книгой:

Контрольные вопросы

Примечание

Теперь пришло время первых контрольных вопросов! Они приводятся в конце каждой главы. Контрольные вопросы и практические задания — это основа закрепления теоретических знаний.

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

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

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

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

4. Как выглядят данные в таблице?

НАПОМИНАНИЕ

В приложении I в конце книги приведены ответы на контрольные вопросы.

Резюме

• DB Browser для SQLite (выбранное нами программное обеспечение) открывается, как и любая другая компьютерная программа.

• Нажав кнопку Open Database (Открыть базу данных), вы сможете выбрать файл базы данных на вашем компьютере.

• Структуру файла базы данных вы можете изучить на вкладке Database Structure (Структура базы данных).

• Вкладка Browse Data (Просмотр данных) используется для просмотра отдельных записей в таблице, которые можно выбрать из раскрывающегося меню.

• Вкладку Execute SQL (Выполнить SQL-запрос) используют, чтобы написать, а затем выполнить запрос SQL.

• Панель результатов содержит данные, возвращаемые запросом.

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

Часть II. Операторы SQL

Глава 4. Работа с запросами

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

Добавление комментариев к запросам

Прежде чем составить свой первый SQL-запрос, рассмотрим, как писать комментарии. Комментарии — это простые предложения, которые помогают понять логику вашего SQL-запроса. Использование комментариев в SQL очень полезно, так как они поясняют сложную логику запроса.

В SQL комментарии бывают двух типов. Однострочные начинаются с двух дефисов (-). Пример ниже демонстрирует комментарий, созданный в строке 1 (рис. 32).

Многострочные комментарии начинаются с сочетания символов /* и заканчиваются символами */. Все, что находится между открывающим и закрывающим символами, — это комментарии (рис. 33).

Рис. 32

Рис. 33

В примере приведена стандартная информация, которую полезно включать в блок комментариев. Разработчик, дата разработки и описание имеют большое значение для всех, кто сталкивается с SQL-запросом или сценарием.

На мой взгляд,

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

Общая структура запроса

Написать запрос — это то же самое, что задать вопрос на любом человеческом языке. Большое значение имеют формулировка, детали и порядок слов. Чем детальнее наш вопрос, тем точнее будет ответ.

При создании SQL-запроса необходимо учитывать следующие пять моментов.

1. С какой базой данных мы работаем?

2. Из какой таблицы в этой базе данных нам необходимо извлечь данные?

3. Какие поля в этой таблице нас интересуют?

4. Хотим ли мы исключить какие-либо данные, отфильтровать или исключить какой-либо диапазон или период времени?

5. Как сформулировать наш запрос одним простым предложением на человеческом языке?

Цель этих вопросов — построить взаимосвязь между человеческим языком, на котором мы обычно говорим или пишем, и языком SQL. Если вы работаете аналитиком данных, то обычные вопросы о бизнесе, которые вам задают, необходимо преобразовать в операторы SQL. После получения результатов запроса следует преобразовать их обратно в доступный для всех человеческий язык. Таков принцип работы.

Примечание

Если у вас возникли проблемы с запросом, ответьте на пять вопросов, приведенных выше. И только потом пишите свой запрос.

Пишем свой первый запрос

Чтобы написать свой первый запрос, используйте существующую вкладку Execute SQL (Выполнить SQL-запрос), обозначенную SQL 1, или откройте новую вкладку панели запросов, как если бы вы открывали новую вкладку веб-браузера. Щелкните на значке Open Tab (Открыть вкладку) (рис. 34).

Итак, новая панель запросов открыта! В первую очередь пишем блок комментариев:

/*

CREATED BY: <ваше имя>

CREATED ON: <дата>

DESCRIPTION: <краткое описание запроса, например вопрос № 5>

*/

Рис. 34

Закончив блок комментариев, займемся написанием запроса SQL. Для запроса нам необходим понятный вопрос. В главе 2 мы рассмотрели пример рабочего сценария для нашей книги: вы аналитик данных компании sTunes. Как вы уже знаете из главы 3, компания sTunes специализируется на онлайн-продажах музыкальной продукции и имеет цифровую библиотеку исполнителей, треков и альбомов, а также список клиентов, которые приобрели музыкальные произведения. Предположим, служба поддержки sTunes желает разослать новую рекламу всем своим клиентам. В этом случае службе поддержки клиентов необходимо знать, обновлен ли список клиентских контактов, поэтому они наверняка поинтересуются, можем ли мы дать им полный список имен, фамилий и адресов электронной почты клиентов (если имеются) из базы данных. Как мы ответим на этот вопрос? Вернемся к пяти базовым моментам, которые следует учитывать при составлении запроса и о которых речь шла ранее в этой главе.

1. С какой базой данных мы работаем?

В этом случае мы будем работать только с одной базой данных. База данных sTunes уже должна быть открыта в DB Browser. Если вы после изучения главы 3 закрыли браузер, откройте снова его, а также файл базы данных sTunes.

2. Из какой таблицы в этой базе данных нам необходимо извлечь данные?

Нам необходимо получить информацию о клиентах. Просматривая вкладку Database Structure (Структура базы данных), мы видим, что у нас есть таблица с именем customers (клиенты). Это то, что нам нужно!

3. Какие поля в этой таблице нас интересуют?

Ответить на этот вопрос можно, заглянув во вкладку Browse Data (Просмотр данных). Щелкните на этой вкладке и в раскрывающемся меню выберите таблицу customers — таблица содержит поля для имени, фамилии и электронной почты.

4. Хотим ли мы исключить какие-либо данные, отфильтровать или исключить какой-либо диапазон или период времени?

В данном случае служба поддержки sTunes желает получить список всех клиентов, поэтому лучше ничего не исключать.

5. Как сформулировать наш запрос одним простым предложением на человеческом языке?

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

Сначала добавьте блок комментариев, затем добавьте условие FROMcustomers. Оно определяет, в какой таблице искать данные. Далее перед условием FROM введите оператор SELECT и необходимые имена полей из таблицы customers. Имя каждого поля отделяется запятой. Полученный код будет выглядеть следующим образом:

/*

CREATED BY: Уолтер Шилдс

CREATED ON: 03/13/2018

DESCRIPTION: Данный запрос осуществляет выборку полей имени, фамилии, электронной почты из таблицы customers (клиентов).

*/

SELECT

FirstName,

LastName,

Email

FROM

customers;

Запустите запрос на выполнение, щелкнув на кнопке воспроизведения Execute SQL (Выполнить SQL-запрос), расположенной на панели меню. Результаты запроса отобразятся ниже на панели результатов (рис. 35). Панель сообщений также показывает, что в результате выполнения запроса вернулось 59 строк (или записей) за 3 миллисекунды.

Рис. 35

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

• Добавьте в запрос еще одно поле из таблицы customers. В список рассылки добавьте поле Company или Phone. Не забудьте запятую!

Синтаксис и соглашение о кодировании

Как уже упоминалось в главе 1, все запросы должны соответствовать определенному синтаксису, чтобы их мог понять браузер SQL. Однако при написании запросов необходимо учитывать еще кое-что. Важно, чтобы другие пользователи базы данных могли легко понять ваши запросы. Набор принципов, которые задают стиль, методы написания запросов и т. д., известен как соглашение о кодировании. Для разных сред баз данных соглашения о кодировании различаются. В этом разделе мы приводим соглашения о кодировании, используемые в этой книге.

В предыдущих примерах после ключевого слова SELECT мы использовали символ * вместо указания отдельных полей. С помощью специального символа * осуществляется выборка всех записей из таблицы. В некоторых случаях этот символ полезен. Однако чаще рекомендуется указывать необходимые поля.

Здесь точку с запятой в конце оператора ставить необязательно, так как мы пишем только один оператор SQL. Точка с запятой обозначает конец оператора SQL. Поскольку большинство SQL-запросов, используемых в этой книге, представляют собой отдельные операторы, точку с запятой мы будем в дальнейшем опускать.

В нашем примере в условии SELECT мы определили три поля для отображения. Каждое поле необходимо отделять запятой (кроме последнего). Отсутствие запятой между полями или наличие ее после последнего поля — это распространенные синтаксические ошибки, о которых вы получите сообщение на панели результатов.

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

НАПОМИНАНИЕ

Условие — это часть инструкции SQL, которая начинается со специального ключевого слова (SELECT, FROM и т. д.) и может включать дополнительные параметры и операторы.

Использование псевдонима

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

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

/*

CREATED BY: Уолтер Шилдс

CREATED ON: 13.03.2018

DESCRIPTION: Данный запрос осуществляет выборку полей имени, фамилии, электронной почты и номера телефона из таблицы customers (клиенты) и демонстрирует четыре различных способа использования псевдонима.

*/

SELECT

FirstName AS 'First Name',



Поделиться книгой:

На главную
Назад