Access SQL. Основные понятия, лексика и синтаксис
Для извлечения данных из базы данных используется язык SQL. SQL — это язык программирования, который очень напоминает английский, но предназначен для программ управления базами данных. SQL используется в каждом запросе в Access.
Понимание принципов работы SQL помогает создавать более точные запросы и упрощает исправление запросов, которые возвращают неправильные результаты.
Это статья из цикла статей о языке SQL для Access. В ней описаны основы использования SQL для выборки данных и приведены примеры синтаксиса SQL.
В этой статье
- Что такое SQL?
- Основные предложения SQL: SELECT, FROM и WHERE
- Сортировка результатов: предложение ORDER BY
- Работа со сводными данными: предложения GROUP BY и HAVING
- Объединение результатов запроса: оператор UNION
Что такое SQL?
SQL — это язык программирования, предназначенный для работы с наборами фактов и отношениями между ними. В программах управления реляционными базами данных, таких как Microsoft Office Access, язык SQL используется для работы с данными. В отличие от многих языков программирования, SQL удобочитаем и понятен даже новичкам. Как и многие языки программирования, SQL является международным стандартом, признанным такими комитетами по стандартизации, как ISO и ANSI.
На языке SQL описываются наборы данных, помогающие получать ответы на вопросы. При использовании SQL необходимо применять правильный синтаксис. Синтаксис — это набор правил, позволяющих правильно сочетать элементы языка. Синтаксис SQL основан на синтаксисе английского языка и имеет много общих элементов с синтаксисом языка Visual Basic для приложений (VBA).
Например, простая инструкция SQL, извлекающая список фамилий контактов с именем Mary, может выглядеть следующим образом:
SELECT Last_Name
FROM Contacts
WHERE First_Name = ‘Mary’;
Примечание: Язык SQL используется не только для выполнения операций над данными, но еще и для создания и изменения структуры объектов базы данных, например таблиц. Та часть SQL, которая используется для создания и изменения объектов базы данных, называется языком описания данных DDL. Язык DDL не рассматривается в этой статье. Дополнительные сведения см. в статье Создание и изменение таблиц или индексов с помощью запроса определения данных.
Инструкции SELECT
Чтобы описать набор данных с помощью SQL, необходимо написать инструкцию SELECT. Инструкция SELECT содержит полное описание набора данных, которые необходимо получить из базы данных. К ним относятся файлы со следующими элементами:
- таблицы, в которых содержатся данные;
- связи между данными из разных источников;
- поля или вычисления, на основе которых отбираются данные;
- условия отбора, которым должны соответствовать данные, включаемые в результат запроса;
- необходимость и способ сортировки.
Предложения SQL
Инструкция SQL состоит из нескольких частей, называемых предложениями. Каждое предложение в инструкции SQL имеет свое назначение. Некоторые предложения являются обязательными. В приведенной ниже таблице указаны предложения SQL, используемые чаще всего.
Предложение SQL
Обязательное
Определяет поля, которые содержат нужные данные.
Определяет таблицы, которые содержат поля, указанные в предложении SELECT.
Определяет условия отбора полей, которым должны соответствовать все записи, включаемые в результаты.
Определяет порядок сортировки результатов.
В инструкции SQL, которая содержит статистические функции, определяет поля, для которых в предложении SELECT не вычисляется сводное значение.
Только при наличии таких полей
В инструкции SQL, которая содержит статистические функции, определяет условия, применяемые к полям, для которых в предложении SELECT вычисляется сводное значение.
Термины SQL
Каждое предложение SQL состоит из терминов, которые можно сравнить с частями речи. В приведенной ниже таблице указаны типы терминов SQL.
Сопоставимая часть речи
Определение
Имя, используемое для идентификации объекта базы данных, например имя поля.
глагол или наречие
Ключевое слово, которое представляет действие или изменяет его.
Значение, которое не изменяется, например число или NULL.
Сочетание идентификаторов, операторов, констант и функций, предназначенное для вычисления одного значения.
Основные предложения SQL: SELECT, FROM и WHERE
Общий формат инструкций SQL:
SELECT field_1
FROM table_1
WHERE criterion_1
;
- Access не учитывает разрывы строк в инструкции SQL. Несмотря на это, каждое предложение рекомендуется начинать с новой строки, чтобы инструкцию SQL было удобно читать как тому, кто ее написал, так и всем остальным.
- Каждая инструкция SELECT заканчивается точкой с запятой (;). Точка с запятой может стоять как в конце последнего предложения, так и на отдельной строке в конце инструкции SQL.
Пример в Access
В приведенном ниже примере показано, как в Access может выглядеть инструкция SQL для простого запроса на выборку.

1. Предложение SELECT
2. Предложение FROM
3. Предложение WHERE
Эту инструкцию SQL следует читать так: «Выбрать данные из полей «Адрес электронной почты» и «Компания» таблицы «Контакты», а именно те записи, в которых поле «Город» имеет значение «Ростов».
Разберем пример по предложениям, чтобы понять, как работает синтаксис SQL.
Предложение SELECT
SELECT [E-mail Address], Company
Это предложение SELECT. Оно содержит оператор (SELECT), за которым следуют два идентификатора («[Адрес электронной почты]» и «Компания»).
Если идентификатор содержит пробелы или специальные знаки (например, «Адрес электронной почты»), он должен быть заключен в прямоугольные скобки.
В предложении SELECT не нужно указывать таблицы, в которых содержатся поля, и нельзя задать условия отбора, которым должны соответствовать данные, включаемые в результаты.
В инструкции SELECT предложение SELECT всегда стоит перед предложением FROM.
Предложение FROM
Это предложение FROM. Оно содержит оператор (FROM), за которым следует идентификатор (Контакты).
В предложении FROM не указываются поля для выборки.
Предложение WHERE
Это предложение WHERE. Оно содержит оператор (WHERE), за которым следует выражение (Город=»Ростов»).
Примечание: В отличие от предложений SELECT и FROM, предложение WHERE является необязательным элементом инструкции SELECT.
С помощью предложений SELECT, FROM и WHERE можно выполнять множество действий. Дополнительные сведения об использовании этих предложений см. в следующих статьях:
- Access SQL. Предложение SELECT
- Access SQL. Предложение FROM
- Access SQL. Предложение WHERE
Сортировка результатов: ORDER BY
Как и в Microsoft Excel, в Access можно сортировать результаты запроса в таблице. Используя предложение ORDER BY, вы также можете указать способ сортировки результатов при выполнении запроса. Если используется предложение ORDER BY, оно должно находиться в конце инструкции SQL.
Предложение ORDER BY содержит список полей, для которых нужно выполнить сортировку, в том же порядке, в котором будут применена сортировка.
Предположим, например, что результаты сначала нужно отсортировать по полю «Компания» в порядке убывания, а затем, если присутствуют записи с одинаковым значением поля «Компания», — отсортировать их по полю «Адрес электронной почты» в порядке возрастания. Предложение ORDER BY будет выглядеть следующим образом:
ORDER BY Company DESC, [E-mail Address]
Примечание: По умолчанию Access сортирует значения по возрастанию (от А до Я, от наименьшего к наибольшему). Чтобы вместо этого выполнить сортировку значений по убыванию, необходимо указать ключевое слово DESC.
Дополнительные сведения о предложении ORDER BY см. в статье Предложение ORDER BY.
Работа со сводными данными: предложения GROUP BY и HAVING
Иногда возникает необходимость работы со сводными данными, такими как итоговые продажи за месяц или самые дорогие товары на складе. Для этого в предложении SELECT к полю применяется агрегатная функция. Например, если в результате выполнения запроса нужно получить количество адресов электронной почты каждой компании, предложение SELECT может выглядеть следующим образом:
SELECT COUNT([E-mail Address]), Company
Возможность использования той или иной агрегатной функции зависит от типа данных в поле и нужного выражения. Дополнительные сведения о доступных агрегатных функциях см. в статье Статистические функции SQL.
Задание полей, которые не используются в агрегатной функции: предложение GROUP BY
При использовании агрегатных функций обычно необходимо создать предложение GROUP BY. В предложении GROUP BY указываются все поля, к которым не применяется агрегатная функция. Если агрегатные функции применяются ко всем полям в запросе, предложение GROUP BY создавать не нужно.
Предложение GROUP BY должно следовать сразу же за предложением WHERE или FROM, если предложение WHERE отсутствует. В предложении GROUP BY поля указываются в том же порядке, что и в предложении SELECT.
Продолжим предыдущий пример. Пусть в предложении SELECT агрегатная функция применяется только к полю [Адрес электронной почты], тогда предложение GROUP BY будет выглядеть следующим образом:
GROUP BY Company
Дополнительные сведения о предложении GROUP BY см. в статье Предложение GROUP BY.
Ограничение агрегированных значений с помощью условий группировки: предложение HAVING
Если необходимо указать условия для ограничения результатов, но поле, к которому их требуется применить, используется в агрегированной функции, предложение WHERE использовать нельзя. Вместо него следует использовать предложение HAVING. Предложение HAVING работает так же, как и WHERE, но используется для агрегированных данных.
Предположим, например, что к первому полю в предложении SELECT применяется функция AVG (которая вычисляет среднее значение):
SELECT COUNT([E-mail Address]), Company
Если вы хотите ограничить результаты запроса на основе значения функции COUNT, к этому полю нельзя применить условие отбора в предложении WHERE. Вместо него условие следует поместить в предложение HAVING. Например, если нужно, чтобы запрос возвращал строки только в том случае, если у компании есть несколько адресов электронной почты, можно использовать следующее предложение HAVING:
HAVING COUNT([E-mail Address])>1
Примечание: Запрос может включать и предложение WHERE, и предложение HAVING, при этом условия отбора для полей, которые не используются в статистических функциях, указываются в предложении WHERE, а условия для полей, которые используются в статистических функциях, — в предложении HAVING.
Дополнительные сведения о предложении HAVING см. в статье Предложение HAVING.
Объединение результатов запроса: оператор UNION
Оператор UNION используется для одновременного просмотра всех данных, возвращаемых несколькими сходными запросами на выборку, в виде объединенного набора.
Оператор UNION позволяет объединить две инструкции SELECT в одну. Объединяемые инструкции SELECT должны иметь одинаковое число и порядок выходных полей с такими же или совместимыми типами данных. При выполнении запроса данные из каждого набора соответствующих полей объединяются в одно выходное поле, поэтому выходные данные запроса имеют столько же полей, сколько и каждая инструкция SELECT по отдельности.
Примечание: В запросах на объединение числовой и текстовый типы данных являются совместимыми.
Используя оператор UNION, можно указать, должны ли в результаты запроса включаться повторяющиеся строки, если таковые имеются. Для этого следует использовать ключевое слово ALL.
Запрос на объединение двух инструкций SELECT имеет следующий базовый синтаксис:
SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;
Предположим, например, что имеется две таблицы, которые называются «Товары» и «Услуги». Обе таблицы содержат поля с названием товара или услуги, ценой и сведениями о гарантии, а также поле, в котором указывается эксклюзивность предлагаемого товара или услуги. Несмотря на то, что в таблицах «Продукты» и «Услуги» предусмотрены разные типы гарантий, основная информация одна и та же (предоставляется ли на отдельные продукты или услуги гарантия качества). Для объединения четырех полей из двух таблиц можно использовать следующий запрос на объединение:
SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;
Дополнительные сведения об объединении инструкций SELECT с помощью оператора UNION см. в статье Просмотр объединенных результатов нескольких запросов с помощью запроса на объединение.
Что такое SQL и где его используют

Для работы привычных нам приложений нужны данные, которые необходимо где-то хранить. Самый удобный способ хранения — это базы данных (БД). Чтобы работать с БД, искать и изменять в них нужные данные, разработчики используют язык SQL.
SQL (Structured Query Language, или язык структурированных запросов) — это язык программирования, который позволяет делать запросы к данным, фильтровать и сортировать информацию с помощью этих запросов и работать со структурой самой базы.
Профессия «Аналитик данных»
- Изучите востребованную в каждой компании профессию и помогайте бизнесам расти и развиваться
- Научитесь собирать, обрабатывать, изучать и интерпретировать данные с помощью SQL и Google Sheets
- Освойте когортный анализ и визуализацию данных с помощью Superset и библиотек Python
Где используют SQL
SQL используют везде, где нужно хранить информацию: в онлайн-библиотеках, интернет-магазинах, государственных сервисах, банках, чат-ботах, мобильных приложениях и много где еще.
Компании используют SQL для управления данными — пользовательскими профилями, контентом, товарами в интернет-магазинах. Многие организации также используют SQL для управления данными о клиентах, заказах, инвентаре и финансовых операциях. Это помогает им проводить анализ и принимать стратегические решения.
Хекслет тоже хранит данные о своих курсах и пользователях в базах. Вот так, например, выглядит база данных зарегистрированных студентов (все имена вымышлены):

Чтобы разобраться, зачем нужен SQL и как он упрощает жизнь разработчикам, давайте представим работу одного из этих сервисов. Пусть это будет приложение о питании с функцией подсчета калорий, белков, жиров и углеводов и учета приема пищи: по дням недели и времени, а также по размеру порции.
Данные этого приложения будут храниться в двух таблицах: в первой мы посчитаем калорийность, а во вторую запишем время приема пищи и граммовку.
SQL придет на помощь тогда, когда мы захотим, к примеру, проанализировать среднюю калорийность завтраков и обедов. Для этого мы просто сделаем запрос к базе данных, и программа предоставит нам всю необходимую информацию.
Если бы мы не использовали SQL, нам пришлось бы самим вычислять среднюю калорийность и создавать для этого дополнительные строки в таблицах. В этом плане SQL значительно экономит время и силы разработчикам.
Особенности SQL
- В сравнении с другими языками программирования, SQL понятный и обладает простым синтаксисом — комплексом правил, который объясняет, как писать код. Если у вас достаточный уровень английского, вы прочтете его почти как обычный текст. Или, как минимум, без особого труда догадаетесь, о чем речь.
- В императивных языках программирования, таких как Python или JavaScript, мы пишем последовательность действий, алгоритм команд. Но SQL — декларативный язык, и на нем мы прописываем, что хотим получить. То есть обозначаем не путь, а результат. А программа, которая выполняет этот запрос, сама получает и возвращает нужные нам данные, модифицирует их или выполняет другую заданную команду.
- Существует два типа баз данных: нереляционный (NoSQL) и реляционный (SQL). В первом варианте базы данных информация хранится без структурированности и четких связей. В SQL все иначе — данные расположены в таблицах по строкам, где каждая ячейка введена по шаблону.
Кто использует SQL и сколько зарабатывают такие специалисты
SQL — основной инструмент в работе с базами данных. Поэтому владение SQL — навык, который необходим во многих сферах: администраторам базы данных или DBA (Database administrator), дата-аналитикам, продуктовым маркетологам, менеджерам по продажам, тестировщикам, программистам и многим другим. То есть всем, кто тоже отчасти опирается в своей работе на данные.
Читайте также:
Причина такой популярности простая: данные часто хранятся в базах данных, и самый родной для них язык — это SQL. И если нужно, например, проанализировать динамику продаж, то самостоятельно получить всю необходимую информацию с помощью SQL будет довольно быстро.
При всей своей простоте, в мире пока нет аналога, способного полноценно заменить SQL. Поэтому специалисты, которые им владеют, будут востребованы на рынке труда еще долгие годы.
По информации сайта hh.ru, в августе 2023 года было представлено более 550 активных вакансий для администраторов базы данных. Джуниору DBA компании предлагают от 60 тысяч рублей, мидлу — в диапазоне 80 — 100 тысяч. А сеньор может претендовать на 150 тысяч рублей и выше.
При этом SQL-разработчикам предлагают в среднем от 100 тысяч рублей по России. Для сеньора SQL Developer зарплата будет начинаться уже от 200 тысяч.
Конечно, это средние значения по стране и все зависит от региона работы. Однако даже по этим цифрам видно — специалистам со знанием SQL в России не только предлагают конкурентоспособную заработную плату, но и варианты для развития.
Какие есть операторы в SQL и для чего они нужны
Предположим, что мы начинаем работать с реляционной БД, где вся информация располагается в таблицах по строкам. Первая вещь, которая нам нужна, — определить, как мы будем хранить эти данные. И это наш базовый слой операторов SQL, которые помогают в проектировании баз данных:
CREATE DATABASE — создает базу данных.
CREATE TABLE — создает новую таблицу внутри базы данных.
DROP DATABASE — удаляет базу данных.
DROP TABLE — удаляет таблицу в базе данных.
Есть также USE , который указывает, в какой именно базе данных будет проходить дальнейшая работа.
На этом этапе мы решаем, таблицы с какой информацией нам нужны. Если это персональные данные, то названиями колонок и строк в таблице могут быть: имя и фамилия, номер телефона, возраст. В случае с информацией о товарах — название, цена, тип и прочее. Все зависит от наших запросов.
Теперь, когда мы создали таблички, нужно как-то добавлять туда данные, читать их, удалять и изменять. Это следующая группа операторов SQL:
INSERT — добавляет данные в таблицу. Работает в паре с INTO , который указывает на конкретную таблицу.
DELETE — удаляет данные из таблицы. Работает в союзе с FROM , который конкретизирует таблицу. Например, команда DELETE FROM USERS удалит все строки в таблице USERS .
SELECT — определяет список столбцов: вычисляемых и существующих. Если нужно выбрать все столбцы (их еще называют атрибуты), то пишется SELECT * . А после FROM указывается название таблицы.
UPDATE — обновляет данные. Оператор указывает на саму таблицу, а следом применяет SET , после которого мы вводим новые значения для атрибутов. А чтобы обозначить конкретные строки, необходимо использовать WHERE .
JOIN — объединяет значения нескольких таблиц. Он бывает: внутренний INNER и внешний OUTER . Последний включает в себя правый RIGHT OUTER , левый LEFT OUTER и полный FULL OUTER JOIN .
ORDER BY сортирует результаты запроса. По умолчанию сортировка строк в таблице проводится в порядке возрастания. А чтобы сделать ее по убыванию, нужно добавить DESC .
Еще есть операторы контроля доступа. Представьте ситуацию: вы работаете в большой компании, где только несколько бухгалтеров, администраторов баз данных, могут смотреть информацию и делать запись о зарплатах. Если вам понадобится доступ к этой базе с зарплатами, то администраторы могут дать вам право ее просматривать с помощью операторов доступа GRANT , REVOKE , DENY .
Мы разобрали основные и самые базовые операторы при работе с данными в таблицах. Есть и другие, вспомогательные, которые конкретизируют работу в системе. Подробнее о них мы говорим на треке SQL для разработчиков — пройдите его, чтобы узнать об операторах более подробно.
Что такое СУБД и как они работают
Системы управления базами данных или сокращенно СУБД — это программы, которые позволяют создавать базы данных, администрировать их, а также обеспечивают надежность хранения данных и работу с ними.
Другими словами, СУБД — это посредник между пользователем и базой данных. Он получает SQL-запрос и переводит его в сложные операции, необходимые для выполнения задачи. Именно СУБД осуществляет введенную нами команду удаления, сортировки, сохранения и прочего.
СУБД работает примерно так:
Пользователь отправляет SQL-запрос → Система управления базами данных обрабатывает его → Пользователь получает необходимые данные
Один из примеров использования СУБД — онлайн-магазины. В них СУБД помогает хранить и обрабатывать данные о товарах, клиентах, заказах и другой связанной информации.
Если бы мы были продавцами, и мы захотели бы найти фиолетовые носки с рюшами 43 размера, искать вручную пришлось бы долго. Плюс в реальной жизни нам будет нужно:
- Скрыть товар с продаж на период довоза
- Ввести новые размерные сетки и цвета
- Переписать состав продуктов действующих товаров
- Удалить распроданные наименования и многое другое.
А если в таблице произойдет какой-то сбой или не сохранятся изменения? Да, все пришлось бы делать заново.
С системой управления базами данных такие проблемы минимизированы. Система берет управление на себя и выполняет все операции очень эффективно. Благодаря СУБД даже новички-программисты могут создавать приложения для работы с данными.
Система управления базами данных дает много преимуществ:
- Позволяет использовать данные в базе данных нескольким пользователям или приложениям одновременно.
- Обеспечивает безопасность и надежность хранения данных, дает возможность разграничивать права доступа.
- Минимизирует несогласованность данных. Такое может возникнуть, когда в одной компании несколько менеджеров хранит в базе данных контакты партнеров с разными наименованиями. Это как если бы вы записали в книге контактов один и тот же номер телефона под двумя разными именами.
- Увеличивает производительность пользователя. Это возможно благодаря довольно легкому пути: инструменты для поиска или изменения данных помогают в короткие сроки выполнить необходимые команды.
Читайте также:
Какие виды СУБД бывают и чем они различаются
Существует много видов и классификаций СУБД. И каждый из них подходит для разных типов баз данных. Но хорошая новость в том, что базовый уровень SQL везде одинаковый. И если научитесь основам языка, вам будет легче перейти с одной СУБД на другую. Нельзя сказать, что они идентичны, но очень похожи.
Например, БД классифицируют по количеству пользователей, типу хранимых данных, их структурированности или месту расположения. Давайте разберем по порядку.
По количеству пользователей:
- Однопользовательская, в которой одновременно может работать только один специалист
- Многопользовательская — в ней одновременно работает большое количество пользователей.
По типу языка запросов:
- С поддержкой SQL, в которой данные хранятся в таблицах
- С поддержкой NoSQL — нереляционные СУБД, где действуют языки запросов, основанные на программировании и предназначенные для работы с большими БД.
По принципу хранения базы данных:
- Централизованная (локальная), где все данные расположены на одном сервере
- Распределенная, в которой данные хранятся на разных серверах, в том числе и облачном (Yandex Object Storage и прочие).
По видам информации, которую можно хранить в базе данных:
- Специализированные — содержат данные по конкретной теме
- Универсальные — хранят данные из разных областей.
По типу использования базы данных во времени:
- Оперативная (транзакционная, производственная) — для повседневных операций
- Аналитическая — для хранения и расширенного анализа данных, к примеру, бизнес показателей.
По степени структурированности данных:
- Неструктурированные хранятся в необработанном виде и формате
- Полуструктурированные обработаны лишь отчасти
- Структурированные — отформатированный вариант неструктурированных данных.
По типу хранения, запроса и обработки данных в базе:
- Встраиваемая — ее внедряют в приложение и используют для управления БД внутри него
- Клиент-серверная — это когда база данных и СУБД хранятся на едином сервере, к которому подают запросы разные пользователи (например, интернет-магазин, где покупатели подбирают товары по фильтрам)
- Файл-серверная — вариант, когда БД хранится на одном сервере, а СУБД установлена на устройствах, с которых пользователи отправляют запросы к базе данных (например, CRM на корпоративных сервисах).
Еще системы управления базами данных делятся на платные и бесплатные, кроссплатформенные или те, которые работают, например, только на Linux или мобильных устройствах. Есть те, что легко встраиваются в приложения, и другие — большие и с целым комплексом операций для установки.
Например, в приложение о питании нет смысла встраивать систему управления базами данных, предназначенную для обработки огромного количества информации. И наоборот — в корпоративной системе необходимо использовать большую транзакционную СУБД.
Легко ли изучить SQL
На базовом уровне, который должен знать практически каждый разработчик, а также в идеале и продуктовые менеджеры, выучить SQL не особо сложно. Как минимум, научиться выполнять простые запросы по типу: создать таблицу, добавить в нее данные, изменить их или удалить. Но чтобы вы с гордостью могли сказать «я эксперт в базах данных», изучить нужно многое.
Если вы уже работали с одним из языков программирования, например, С или Java, то, скорее всего, вы привыкли писать алгоритмы, и декларативная модель с ее структурированным видом сначала может показаться непривычной. В SQL же нужно описывать результат, и это может быть необычно. В первую очередь нужно понять, что такое таблицы и какие между ними связи. Если это преодолеть, дальше будет легче.
С чего начать изучать SQL
Для старта стоит изучить основы проектирования баз данных. Возвращаясь к частям языка SQL, первое — создание и изменение таблиц. Это значит, что нам нужно разложить свою задачу на составляющие. На этом этапе мы разбираемся, как будем хранить информацию. Это и называется проектированием баз данных: какие таблицы нужны, из каких столбцов они будут состоять и как будут связаны друг с другом.
Второй пункт — практическая работа с данными: запросы, которые выбирают определенные данные, удаляют их, изменяют и так далее. Как говорят из своего опыта специалисты, начавшие путь с самостоятельного изучения SQL, стартовать нужно сразу с практических задач онлайн — учиться правильно ставить команды. Можно попробовать с сайтов sql-ex.ru , pgexercises.com и sql-tutorial.ru .
Только после этого можно приступать к книгам. Например, « Освой самостоятельно SQL за 10 минут » Бена Форта, « Введение в системы баз данных » Криса Дейта или « SQL. Полное руководство » Джеймса Гроффа и Пола Вайнберга.
Но главный минус книг — информация в них обновляется медленнее, чем развиваются технологии баз данных. Поэтому самый простой и эффективный способ разобраться и изучить SQL — пройти специализированный курс от проверенных специалистов. На нем можно не только познакомиться с базовыми операциями, но и изучить тонкости манипуляций.
Профессия «Аналитик данных»
- Изучите востребованную в каждой компании профессию и помогайте бизнесам расти и развиваться
- Научитесь собирать, обрабатывать, изучать и интерпретировать данные с помощью SQL и Google Sheets
- Освойте когортный анализ и визуализацию данных с помощью Superset и библиотек Python
SQL для начинающих
Система управления базами данных (СУБД) — это отдельная программа, которая работает как сервер, независимо от PHP.
Создавать свои базы данных, таблицы и наполнять их данными можно прямо из этой же программы, но для выполнения этих операций прежде придётся познакомиться с ещё одним языком программирования — SQL.
SQL или Structured Query Language (язык структурированных запросов) — язык программирования, предназначенный для управления данными в СУБД. Все современные СУБД поддерживают SQL.
На языке SQL выражаются все действия, которые можно провести с данными: от записи и чтения данных, до администрирования самого сервера СУБД. Для повседневной работы совсем не обязательно знать весь этот язык; достаточно ознакомиться лишь с основными понятиями синтаксиса и ключевыми словами.
Кроме того, SQL очень простой язык по своей структуре, поэтому его освоение не составит большого труда.
Язык SQL — это в первую очередь язык запросов, а кроме того он очень похож на естественный язык. Каждый раз, когда требуется прочитать или записать любую информацию в БД, требуется составить корректный запрос. Такой запрос должен быть выражен в терминах SQL.
Например, чтобы вывести на экран все записи из таблицы города , составим такой запрос:
ПРОЧИТАТЬ всё ИЗ ТАБЛИЦЫ 'города'
Если перевести этот запрос на язык SQL, то корректным результатом будет:
SELECT * FROM 'cities'
Теперь напишем запрос на добавление в таблицу города нового города:
ВСТАВЬ В ТАБЛИЦУ 'города' ЗНАЧЕНИЯ 'имя города' = 'Санкт-Петербург'
INSERT INTO 'cities' SET 'name' = 'Санкт-Петербург'
Эта команда создаст в таблице города новую запись, где полю имя города будет присвоено значение Санкт-Петербург .
С помощью SQL можно не только добавлять и читать данные, но и:
- удалять и обновлять записи в таблицах;
- создавать и редактировать сами таблицы;
- производить операции над данными: считать сумму, получать самое большое или малое значение, и так далее;
- настраивать работу сервера СУБД.
MySQL
Существует множество различных реляционных СУБД. Самая известная СУБД — это Microsoft Access, входящая в состав офисного пакета приложений Microsoft Office. Нет никаких препятствий для использования в качестве СУБД MS Access, но для задач веб-программирования гораздо лучше подходит альтернативная программа — MySQL.
В отличие от MS Access, MySQL абсолютно бесплатна, может работать на серверах с Linux, обладает гораздо большей производительностью и безопасностью, что делает её идеальным кандидатом на роль базы данных в веб-разработке.
Подавляющее большинство сайтов и приложений на PHP используют в качестве СУБД именно MySQL.
Установка
Последняя версия MySQL доступна для загрузки по ссылке: https://dev.mysql.com/downloads/mysql/. На этой странице следует выбрать MySQL Installer for Windows и нажать на кнопку Download для загрузки.
В процессе установки запомните директорию, куда вы устанавливаете MySQL (скрывается под ссылкой Advanced options). На шаге Accounts and Roles установщик попросит придумать пароль для доступа к БД (MySQL Root Password) — обязательно запомните или запишите этот пароль — он вам ещё понадобится.
Если для своей работы вы используете программную среду OpenServer, то этот раздел можно смело пропустить, так как в состав OpenServer уже входит свежая версия MySQL.
Выполнение запросов
По умолчанию, если вы не устанавливали дополнительные программы, у MySQL нет графического интерфейса пользователя. Это значит, что единственный способ работы с ней — это использование командной строки.
- Откройте командную строку (Выполнить — cmd.exe ).
- Перейдите в каталог с установленной MySQL: cd /d /bin .
- Выполните: mysql -uroot -p .
- Введите пароль, заданный при установке.
Если вы всё выполнили верно, то в командной строке запустится клиент для работы с MySQL (вы поймете это по строке приглашения «mysql>»). С этого момента можно вводить любые SQL запросы, но каждый запрос обязательно должен заканчиваться точкой с запятой ; .
Оператор SQL create database: создание новой базы данных
Приступим к практике — начнём создавать базу данных для ведения погодного дневника.
Начать следует с создания новой базы данных для нашего сайта. Новая БД в MySQL создаётся простой командой:
CREATE DATABASE
После этого MySQL создаст для нас новую БД, в которой будет происходить вся дальнейшая работа. Это важно: после создания БД её невозможно будет переименовать, а только удалить и создать заново. По этой причине крайне внимательно подойдите к выбору имени для базы данных.
create table
Зачем нужен:создание таблиц
Создав новую БД, сообщим MySQL, что теперь мы собираемся работать именно с ней. Выбор активной БД выполняется командой:
Пришло время создать первые таблицы! Для ведения дневника по всем правилам, понадобится создать три таблицы: города ( cities ), пользователи ( users ) и записи о погоде weather_log . В подразделе «Запись» этой главы описано, как должна выглядеть структура таблицы weather_log . Переведём это описание на язык SQL:
CREATE TABLE weather_log ( id INT AUTO_INCREMENT PRIMARY KEY, city_id INT, day DATE, temperature INT, cloud TINYINT DEFAULT 0 );
Чтобы ввести многострочную команду в командной строке используйте символ \ в конце каждой строки, кроме последней.
Теперь создадим таблицу городов:
CREATE TABLE cities ( id INT AUTO_INCREMENT PRIMARY KEY, name CHAR(128) )
MySQL может показать созданную таблицу, если попросить об этом командой:
SHOW COLUMNS FROM weather_log
В ответе будут перечислены все поля таблицы, их тип и другие характеристики.
Что такое первичный ключ
В примере с созданием новой таблицы при перечислении необходимых полей первым полем идёт id INT AUTO_INCREMENT PRIMARY KEY . Это поле называется первичным ключом. Обязательно создавать первичный ключ в каждой таблице.
Первичный ключ — это особенное поле, в котором сохраняется уникальный идентификатор записи.
Первичный ключ нужен, чтобы у программиста и базы данных всегда была возможность однозначно обратиться к одной конкретной записи для её чтения, обновления или удаления. Если назначить поле первичным ключом, то БД будет следить за тем, чтобы значение в этом поле больше не повторялось в таблице.
А если ещё и добавить аттрибут AUTO_INCREMENT , то MySQL при добавлении новых записей будет заполнять это поле сама. AUTO_INCREMENT будет играть роль счётчика — каждая новая запись в таблице получит значение на единицу больше максимального существующего значения.
insert into
Зачем нужен: добавление записи в таблицу
Начнём с добавления новых данных в таблицу. Для добавления записи используется следующий синтаксис:
insert into set = , = .
В начале добавим город в таблицу городов:
insert into cities set name = 'Санкт-Петербург'
При добавлении записи необязательно указывать значения для всех полей. Многие из полей имеют значения по умолчанию, которые сами заполняются при сохранении.
Теперь создадим запись о погоде за сегодня.
При определении таблицы weather_log мы решили ссылаться на город, путём записи в поле city_id идентификатора города из таблицы cities. Так как мы только что добавили новый город, ничего не мешает использовать его идентификатор в записи о погоде.
Идентификатором города будет первичный ключ, который также был определён в качестве первого поля таблицы. Нумерация этого поля начинается с единицы, значит первая добавленная запись имеет идентификатор 1 . Зная это, запрос на добавление записи о погоде в Санкт-Петербурге за третье сентября 2017 года выглядит так:
INSERT INTO weather_log SET city_id = 1, day = '2017-09-03', temperature = 5, cloud = 1;
select. Чтение информации из БД
Для вывода информации из БД используются запросы типа SELECT .
В запросе нужно указать имя таблицы, необходимые поля, а также дополнительные параметры (будут рассмотрены в следующем уроке).
SELECT FROM
Например, чтобы получить список всех доступных городов:
SELECT id, name FROM cities
Все погодные записи:
SELECT id, day, city_id, temperature, cloud FROM weather_log
Вместо перечисления всех столбцов можно использовать знак звездочки — * .
Оператор update: обновление информации в БД
При добавлении записи очень легко совершить ошибку: сделать опечатку, не указать значение для одного из полей, и так далее. Естественно, язык SQL предлагает возможности для редактирования уже созданных записей.
Предположим, что при добавлении погодной записи пользователь ошибся и ввёл неверную дату. Чтобы исправить эту ошибку, нужно использовать оператор обновления — UPDATE . Запрос с этим оператором позволяет обновить значение одного или нескольких полей в существующей записи. Выглядит он так:
UPDATE SET = , = . WHERE =
Но чтобы правильно составить запрос, необходимо определить условие для поиска записи, которую предлагается обновить. В противном случае, если не указать это условие, то будут обновлены абсолютно все записи в таблице.
В качестве такого условия лучше всего использовать первичный идентификатор записи. Поэтому, прежде чем выполнять запрос обновления, нужно выполнить запрос на чтение информации из таблицы, чтобы узнать, под каким идентификатором сохранилась ошибочная запись. Допустим, этот идентификатор — единица, а правильная дата — седьмое декабря 2022 года.
Запрос на обновление:
UPDATE weather_log SET day = '2022-12-07' WHERE join: объединение записей из двух таблиц
В нашей таблице для хранения погодного дневника город сохраняется как идентификатор, поэтому при обычном чтении данных из этой таблицы вместо названия города стоит непонятное число. Чтобы подставить на место числа действительное значение, а конкретнее — название города, в SQL существуют операторы объединения — JOIN . Поддержка операторов объединения и позволяет базе данных называться реляционной.
Поменяем запрос на показ погодных записей, чтобы он объединял две таблицы, а в поле города показывалось его название, а не идентификатор:
SELECT day, cities.name, temperature, cloud FROM weather_log JOIN cities ON weather_log.city_id = cities.id
Важно усвоить три самых главных момента:
- При чтении из объединённых таблиц, в перечислении полей после SELECT нужно явно указывать в поле имени также имя таблицы, с которой производится объединение.
- Всегда есть основная таблица (тб1), из которой читается большинство полей, и присоединяемая (тб2), имя которой определяется после оператора JOIN.
- Помимо указания имени второй таблицы, обязательно следует указать условие, по которому будет происходить объединение. В этом примере таким условием будет соответствие идентификатора города из тб1 ( weather_log.city_id ) первичному ключу города из тб2 ( cities.id ).
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
SQL: кому нужен и в чём его польза?

Если вы только начинаете свой путь в IT, знание SQL – один из важных навыков, который предстоит освоить наравне с HTML, CSS и одним из серверных языков программирование (python, php, java или .net). Ведь практически любой сайт, от небольшого блога на WordPress до крупнейших интернет-ресурсов, использует базы данных.
Чтение утренней почты, перевод денег с карты на карту, покупки в интернет-магазине или регистрация на сайте – всё это происходит через обращение к различным базам данным.
Что же такое SQL?
Язык структурированных запросов или сокращенно SQL (Structured Query Language) был создан в 70-х годах под названием «SEQUEL» для системы управления базами данных (СУБД). Позже был переименован в «SQL» и уже в 1979 году SQL был впервые опубликован в виде коммерческого продукта Oracle V2.SQL.
SQL создавался как простой и стандартизированный способ извлечения и управления данными. Со временем он стал сложнее и превратился в полноценный инструмент разработчика. Сейчас SQL в реализации Oracle остается одним из самых популярных языков управления базам данных.
Зачем нужен SQL?
При разработке веб-приложений практически всегда используются базы данных. Там хранится информация, необходимая для работы сайта – контент, логины/пароли, настройки и данные о посетителях и клиентах. С помощью SQL разработчик записывает и выводит данные из базы. Таким образом, SQL – связующее звено, которое обеспечивает взаимодействие приложения с базой данных и информацией, которая там хранится.
Кому нужен SQL?
SQL, как простой и лёгкий в изучении язык сегодня активно применяется:
- разработчиками для обеспечения функциональности приложений;
- тестировщиками в ручном и автоматическом тестировании;
- аналитиками для анализа и преобразования данных;
- администраторами для поддержания работоспособности среды.
Язык универсален и обладает чётко определённой структурой за счет устоявшихся стандартов. Взаимодействие с базами данных происходит быстро даже в ситуациях, когда объёмы данных велики (Big Data). Кроме того, эффективное управление возможно даже без особых познаний кода.
Итак, что можно делать с помощью SQL?
- создавать таблицы данных;
- получать, изменять и хранить данные;
- изменять структуру данных;
- объединять данные;
- выполнять вычисления;
- обеспечивать защиту данных.
И хотя язык SQL легкий в изучении и обладает множеством функциональных возможностей, он не является привычным процедурным языком программирования, т.е. не предоставляет средств для построения циклов, ветвлений и т. д. Поэтому позже стали появляться процедурные расширения. Например, PL/SQL – расширение, разработанное Oracle. Такие расширения позволили создавать программы, которые хранятся в базах данных и выполняются СУБД, они обеспечили решение практически всех возможных задач, связанных с данными, а еще позволили автоматизировать их обработку.
Изучить разработку баз данных на SQL, PL/SQL (Oracle) можно на курсе в Институте IBA в формате онлайн. Обучение будет полезно как начинающим программистам, так и программистам с опытом работы. Лабораторные работы составляют 50% от всей программы обучения.
Получить подробную информацию и записаться на курс можно
по телефону +375 29 690 40 33