SQL: быстрое погружение — страница 4 из 24

SQL применяется в целом ряде программных пакетов, известных как реляционные системы управления базами данных(РСУБД). Эти системы упрощают применение SQL, когда пользователь дает команды и задает вопросы базе данных. Наиболее распространенные СУБД — это Oracle Database, Microsoft SQL Server, MySQL, IBM Db2 и SQLite.

Рис. 20

Примечание

Программное обеспечение РСУБД часто называют базой данных. Это не совсем верно. Правильнее сказать, что РСУБД предоставляет интерфейс (обычно известный как SQL-браузер) для взаимодействия пользователя с данными, хранящимися в базе данных.

Некоторые РСУБД изначально представлены в графическом виде, другие — в текстовом. РСУБД также различают по подходу к SQL. Ранее в этой главе мы уже упоминали об одной такой аномалии при обработке логических данных. РСУБД действительно различаются по способу представления информации базы данных.

Тот факт, что мы сообщаем РСУБД, какую информацию нам предоставлять, определяет SQL как декларативный язык программирования. Это отличает его от таких языков программирования, как C++, Java и т. д. Они являются более процедурными, так как с их помощью программа создается от начала до конца (распределяется память, в том числе для существующих справочных файлов, и т. д.). В случае SQL все распределение памяти и другие действия выполняются РСУБД.

Оператор SELECT

Как вы уже знаете, SQL — это язык структурированных запросов, и в течение нескольких десятилетий он сформировал стандарт взаимодействия с реляционными базами данных. SELECT — самая распространенная команда SQL. Мы будем с ней работать в главе 4 и далее — до конца книги. SQL-запрос обычно состоит из оператора SELECT в сочетании с другими операторами SQL и ссылок на данные, участвующие в запросе. Как и в случае с другими языками программирования, правильная последовательность и выбор операторов SQL важны для создания запроса, который будет правильно интерпретирован браузером SQL. Эта строго заданная структура называется синтаксисом запроса.

В следующем примере мы увидим, что синтаксис запроса несколько отличается в различных реализациях РСУБД. Это два очень простых запроса, которые по сути делают одно и то же (возвращают первые десять записей из таблицы products), но сформулированы они немного по-разному.

В SQL Server необходимо ввести следующее:

SELECT TOP 10 *

FROM

products;

В MySQL это будет выглядеть следующим образом:

SELECT *

FROM

products

LIMIT 10;

Если бы мы сформулировали запрос в MySQL так, как в примере для SQL Server, браузер SQL выдал бы синтаксическую ошибку и запрос не был бы выполнен. Единственное различие между этими двумя реализациями SQL заключается в том, каким образом мы указываем браузеру SQL ограничить наши результаты десятью первыми записями. В остальном запросы одинаковы. Различия между РСУБД обычно весьма незначительны. Если выражать в процентах, то эти различия составляют менее 10 %. Простые декларативные принципы SQL работают в большинстве РСУБД. Следовательно, если вы будете изучать базовую логику SQL в рамках какой-либо определенной РСУБД, то вы сможете быстро адаптировать свои знания основ SQL к любой другой РСУБД.

Запросы, операторы, условия и ключевые слова

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

Запрос — это набор команд, который возвращает информацию из базы данных в виде записей. Запрос может состоять из нескольких операторов SQL (будут рассмотрены в главе 8 в форме подзапросов). Оператор SQL — это выполняемый РСУБД любой допустимый фрагмент кода. Рассмотренные примеры кода являются как действительными операторами SQL (поскольку СУБД позволяет их выполнять), так и запросами (поскольку они возвращают набор записей). Условие — это часть запроса, содержащая по крайней мере одно ключевое слово и соответствующую информацию, которая будет использоваться вместе с этим ключевым словом (в данном случае ссылки на поля и таблицы).

Рис. 21

Слова, написанные ЗАГЛАВНЫМИ буквами, — ключевые слова SQL.

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

Примечание

На рис. 21 показан пример использования оператора SQL и полного запроса. Запрос может содержать несколько условий, каждое из которых начинается с ключевого слова.

Введение в SQLite

Теперь, когда вы уже знакомы с основами архитектуры базы данных и способами взаимодействия с ней, давайте перейдем к практике решения реальных задач. Существуют различные версии РСУБД. Нам кажется неэффективным рассказывать о функциях применительно к каждой РСУБД в отдельности. В качестве стандартной РСУБД для этой книги мы выбрали SQLite, которую считаем имеющей практическую ценность и доступной для новичков. SQLite — это программный продукт с открытым исходным кодом, поэтому он доступен для использования. Примерно 99 % изученного материала, касающегося SQLite, применимо к большинству других РСУБД. Кроме того, SQLite считается одной из наиболее широко используемых систем РСУБД в мире. Она применяется в компьютерах, мобильных устройствах и даже автомобилях [9]. Более подробную информацию можно найти на сайте: https://www.sqlite.org/index.html.

Рис. 22

Примечание

Окончание Lite («легкий», «облегченный») не относится к возможностям данного программного обеспечения, а скорее к его настройке, административным накладным расходам и использованию ресурсов.

Резюме

• Таблица — это двумерная сетка строк и столбцов, содержащая данные.

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

• Метаданные описывают характер и формат данных, включая минимальную/максимальную длину строки или допустимые числа, буквы или специальные символы.

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

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

• Взаимосвязь между таблицами и их первичными и внешними ключами называется схемой базы данных и может быть изображена с помощью схемы «сущность — связь» (ERD).

• Существует множество различных реляционных систем управления базами данных (РСУБД), например Oracle Database, Microsoft SQL Server, MvSQL, IBM Db2 и SQLite. Хотя они во многом отличаются, все они в качестве основы используют язык структурированных запросов.

• SELECT — это наиболее распространенная команда SQL.

• Операторы SQL могут содержать несколько условий с использованием разных операторов SQL.

• В этой книге мы взяли за основу SQLite. Однако все полученные навыки можно легко использовать на других платформах РСУБД.

* В англоязычных странах целая часть отделяется от дробной точкой, а в России — запятой. — Примеч. ред.

Глава 2. Инструменты и стратегии SQL

Мы уже говорили о том, что такое реляционная база данных, каким образом данные структурируются внутри БД и как используется реляционная система управления базами данных (РСУБД) для извлечения информации (посредством написания запросов) и получения необходимых результатов. Теперь, когда мы рассмотрели основные принципы и терминологию, необходимо настроить рабочую среду SQL, чтобы потренироваться в написании запросов. В этой главе вас ждут практические задания и вопросы для самопроверки.

База данных sTunes

Представьте, что вы недавно устроились на работу в компанию, которая специализируется на розничной онлайн-продаже музыки, на должность аналитика данных SQL. Ваша цель — анализ данных о продажах. Вам предоставлен доступ к базе данных компании. Известно, что БД содержит сведения о товаре (в данном случае песни и альбомы), личную информацию о клиентах, записи о сотрудниках и данные о продажах. Руководство желает знать, содержат ли данные в БД sTunes какую-либо полезную информацию о продажах и демографических характеристиках клиентов и существуют ли способы улучшить или расширить услуги компании. Вам необходимо проанализировать базу данных компании и представить руководству любую найденную информацию. Вы будете выполнять анализ с помощью SQL. Для этого вам необходимо загрузить копию базы данных sTunes на свой компьютер.

Загрузка

Загрузите базу данных компании sTunes

Далее в этой книге мы будем использовать учебную базу данных sTunes. База данных sTunes, а также другие бесплатные цифровые материалы на сайте www.clydebankmedia.com/programming-tech-vault**. Не открывайте sTunes сразу после загрузки. Сохраните БД на своем компьютере.

Браузер базы данных для SQLite

В конце главы 1 мы уже говорили, что будем работать с РСУБД под названием SQLite — произносится как «SQL лайт». Хотя SQLite является конкретной системой управления, или протоколом, для нашей демонстрационной базы данных, нам в любом случае необходимо загрузить специальное приложение (браузер SQL) для «просмотра» нашей базы данных, точно так же как веб-браузер используется для чтения страниц в интернете. SQLite поставляется в комплекте с DB Browser. Это удобный визуальный инструмент с открытым исходным кодом; он используется для создания, проектирования и редактирования баз данных, совместимых с SQLite. DB Browser предназначен для пользователей и разработчиков, которые создают базы данных, осуществляют поиск и редактируют данные.