Какой sql учить
SQL — язык структурированных запросов (SQL, Structured Query Language), который используется в качестве эффективного способа сохранения данных, поиска их частей, обновления, извлечения и удаления из базы данных.
Обращение к реляционным СУБД осуществляется именно благодаря SQL. С помощью него выполняются все основные манипуляции с базами данных, например:
- Извлекать данные из базы данных
- Вставлять записи в базу данных
- Обновлять записи в базе данных
- Удалять записи из базы данных
- Создавать новые базы данных
- Создавать новые таблицы в базе данных
- Создавать хранимые процедуры в базе данных
- Создавать представления в базе данных
- Устанавливать разрешения для таблиц, процедур и представлений
Язык SQL – универсальный язык для всех реляционных систем управления базами данных, но многие СУБД вносят свои изменения в язык, применяемый в них, тем самым отступая от стандарта. Такие языки называют диалектами или расширениями языка.
Вот некоторые из них:
- T-SQL – диалект Microsoft SQL Server
- PL/SQL – диалект Oracle Database
- PL/pgSQL – диалект PostgreSQL
Если вы знаете, что вам нужно изучать SQL, вам следует изучить стандартный SQL. Однако, если вы уже знаете, с какой конкретной базой данных вы будете работать, вероятно, лучше всего изучить её диалект SQL и просто знать, что разные базы данных могут использовать немного отличающийся синтаксис.
В нашем курсе мы будем использовать СУБД MySQL, ибо она достаточно популярная, и в то же время в ней используется близкий к стандартному SQL, хотя и с небольшими отличиями. Подробнее об отличиях.
Как изучать SQL в 2023 году
В 2023 году SQL (Structured Query Language) остается одним из самых популярных языков программирования, используемых в области баз данных и аналитики данных. Изучение SQL может быть полезным как для тех, кто только начинает свой путь в IT, так и для опытных профессионалов, которые хотят расширить свои знания и навыки. В этой статье мы рассмотрим несколько советов и ресурсов, которые помогут вам изучать SQL в 2023 году, и оставаться в курсе последних тенденций и изменений в этой области.
Согласно данным сайта Indeed.com, в 2023 году требования к кандидатам в вакансиях, связанных с базами данных и анализом данных, включают знание SQL в качестве обязательного навыка. Некоторые из таких популярных вакансий включают в себя SQL Developer, Data Analyst, Database Administrator, Business Intelligence Analyst и другие. Согласно данным сайта Glassdoor, зарплата специалистов, владеющих навыками работы с SQL, может составлять от $50 000 до $100 000 в год в зависимости от региона и уровня опыта. В связи с этим, изучение SQL может быть полезным для тех, кто хочет улучшить свои шансы на рынке труда и получать высокую заработную плату в IT-сфере.
Roadmap для изучения SQL за 2 месяца
Почему я составил дорожную карту именно на 2 месяца? Естественно, это не осветит желающего изучить SQL всем навыкам, но поможет полностью понимать основные концепции SQL, как с ним работать и для чего он нужен. Пройдя этот путь за 2 месяца вы сможете в дальнейшем продолжать свое обучение SQL и приводить свой сходу сделанный «корабль знаний» превратить в настоящий японский «линкор знаний Ямато» для улучшения вашего скилла.
Вот roadmap для изучения SQL за 2 месяца:
- Неделя 1: Основы SQL
- Изучение базовых концепций SQL, таких как таблицы, столбцы, строки и типы данных
- Создание простых SELECT запросов для извлечения данных из таблицы
- Изучение фильтрации данных с помощью операторов WHERE и LIKE
- Неделя 2: Расширенные SELECT запросы
- Изучение агрегирующих функций, таких как COUNT, SUM, AVG и MAX/MIN
- Изучение GROUP BY и HAVING для группировки и фильтрации данных
- Изучение операторов JOIN для объединения данных из нескольких таблиц
- Неделя 3: Создание и изменение таблиц
- Изучение команды CREATE TABLE для создания новых таблиц
- Изучение команды ALTER TABLE для изменения структуры таблицы
- Изучение команды DROP TABLE для удаления таблицы
- Неделя 4: Изменение и удаление данных
- Изучение команды INSERT для добавления новых строк в таблицу
- Изучение команды UPDATE для изменения существующих строк
- Изучение команды DELETE для удаления строк из таблицы
- Неделя 5: Основы баз данных
- Изучение концепций баз данных, таких как первичные и внешние ключи
- Изучение команды CREATE DATABASE для создания новой базы данных
- Изучение команды USE для выбора базы данных для работы
- Неделя 6: Работа с индексами и ограничениями
- Изучение индексов для ускорения поиска данных в таблице
- Изучение ограничений для защиты данных и обеспечения целостности таблицы
- Неделя 7: Работа с представлениями и хранимыми процедурами
- Изучение представлений для создания виртуальных таблиц на основе запросов
- Изучение хранимых процедур для создания пользовательских функций и процессов
- Неделя 8: Закрепление изученного материала
- Повторение и углубление знаний с помощью практических заданий и проектов
- Подготовка к сертификационным экзаменам, если это необходимо
Следуя этому roadmap, вы сможете изучить пройтись по SQL за 2 месяца и получить достаточно знаний для работы с базами данных и анализа данных. Однако, не забывайте, что практика — ключ к успеху, поэтому не забывайте регулярно выполнять практические задания и проекты для закрепления изученного материала.
Теоретический минимум баз данных
Без теории учить SQL — крайне странное занятие, нужно знать, на чем стоит весь фундамент. Опишу основные концепции баз данных:
Для работы с базами данных необходимо понимать следующие концепции и термины:
- Реляционная модель данных — это модель представления и организации данных в базе данных. В реляционной модели данные хранятся в виде таблиц, состоящих из строк и столбцов. Каждая таблица имеет имя и структуру, определяемую набором столбцов и их типами данных.
- Таблица — это основной объект в реляционной модели данных, который хранит данные в виде строк и столбцов. Каждая таблица имеет уникальное имя и структуру, определяемую набором столбцов и их типами данных. В таблице каждая строка представляет собой запись, а каждый столбец представляет собой конкретное свойство или атрибут объекта.
- Столбец — это одно поле в таблице, которое хранит данные одного типа. Каждый столбец имеет уникальное имя и тип данных, который определяет, какой тип данных может храниться в столбце.
- Строка — это одна запись в таблице, которая содержит данные для каждого столбца. Каждая строка в таблице имеет уникальный идентификатор, который называется ключом. Ключ может быть составным, т.е. может включать несколько столбцов.
- Ключ — это уникальный идентификатор для каждой записи в таблице. Ключ может быть составным, т.е. может включать несколько столбцов, которые вместе обеспечивают уникальность записи в таблице. Ключ используется для связывания данных в разных таблицах и для обеспечения быстрого доступа к данным.
- Внешний ключ — это связь между двумя таблицами, которая используется для связывания данных в этих таблицах. Внешний ключ — это столбец в одной таблице, который ссылается на ключ в другой таблице. Это позволяет связывать данные в разных таблицах и создавать отношения между ними.
- Индекс — это структура данных, которая позволяет быстро находить данные в таблице. Индекс создается для одного или нескольких столбцов в таблице и хранит ссылки на соответствующие записи в таблице. Использование индексов может значительно ускорить выполнение запросов к таблице.
- Запрос — это команда на извлечение данных из таблицы или таблиц в базе данных. Запросы могут включать операции выборки, сортировки, фильтрации и группировки данных. Результатом выполнения запроса является набор данных, который может быть использован для дальнейшей обработки или отображения пользователю.
- SQL — это язык структурированных запросов, который используется для работы с реляционными базами данных. SQL позволяет выполнять операции на создание, изменение и удаление таблиц и данных в них, а также на извлечение данных из таблиц с помощью запросов. SQL является стандартом для работы с реляционными базами данных и используется в большинстве СУБД.
Где и как учить SQL бесплатно?
- SQLZoo (https://sqlzoo.net/) — бесплатный ресурс, который предоставляет интерактивные уроки и задачи для изучения SQL. Уроки начинаются с простых запросов и наращивают сложность по мере продвижения.
- W3Schools SQL (https://www.w3schools.com/sql/) — популярный сайт для изучения SQL и других языков программирования. Содержит множество уроков и примеров с возможностью практического применения.
- Codecademy SQL (https://www.codecademy.com/learn/learn-sql) — интерактивный курс для изучения SQL с возможностью практического применения на практике.
- SQLBolt (https://sqlbolt.com/) — бесплатный ресурс, который предоставляет уроки и задачи для начинающих и продвинутых пользователей SQL.
- Khan Academy SQL (https://www.khanacademy.org/computing/computer-programming/sql) — бесплатный курс SQL, предоставляющий уроки и задачи для изучения языка.
- Udacity SQL (https://www.udacity.com/course/sql-for-data-analysis—ud198) — курс SQL от Udacity, который научит Вас основам языка SQL и его применению в анализе данных.
- LearnSQL (https://learnsql.com/) — платный ресурс для изучения SQL. Содержит большое количество уроков и практических заданий.
- SQLCourse (http://www.sqlcourse.com/) — бесплатный ресурс для изучения SQL. Содержит уроки, задания и тесты для проверки знаний.
- SQL Tutorial (https://www.sql-tutorial.ru/) — бесплатный ресурс для изучения SQL на русском языке. Содержит уроки и задания для практического применения.
- Mode Analytics SQL Tutorial (https://mode.com/sql-tutorial/) — бесплатный курс SQL от Mode Analytics, который научит Вас базовым и продвинутым навыкам работы с языком SQL.
- SQL Exercises (https://www.sql-ex.ru/) — бесплатный ресурс с задачами и упражнениями для изучения SQL. Содержит задания для практического применения на практике.
- SQL Fiddle (http://sqlfiddle.com/) — бесплатный онлайн-редактор SQL, который позволяет создавать, тестировать и отлаживать SQL-запросы.
- Learn SQL the Hard Way (https://learncodethehardway.org/sql/) — книга для изучения SQL, содержащая уроки и задания для практической работы.
- SQL Zoo (https://www.sqlzoo.net/wiki/AdventureWorks) — бесплатный ресурс для изучения SQL, содержащий уроки и задания на основе базы данных AdventureWorks.
- DataCamp SQL (https://www.datacamp.com/courses/intro-to-sql-for-data-science) — курс SQL от DataCamp, который научит Вас основам языка SQL и его применению в анализе данных. Содержит уроки и практические задания на практике.
Хорошие книги для изучения SQL
Вот несколько хороших книг на русском языке для изучения SQL:
- «SQL для чайников» от Алана Бьюли — это популярная книга для начинающих, которая предлагает читателям основы SQL и практические примеры.
- «SQL — язык запросов к базам данных» от А. А. Степанова — это книга, содержащая основы SQL и примеры запросов на языке SQL.
- «SQL. Полное руководство» от Александра Кузнецова — это книга, которая предлагает обширное руководство по SQL, включая основы языка, запросы, проектирование баз данных и оптимизацию производительности.
- » SQL. Сборник рецептов. 2-е изд.» Автор: Роберт де Грааф, Энтони Молинаро — Рассмотрены готовые рецепты для решения практических задач при работе с СУБД Oracle, DB2, SQL Server, MySQL и PostgreSQL.
Куда двигаться дальше?
«Если ты не двигаешься вперед, то ты двигаешься назад. Никогда не останавливайся на достигнутом.» — Tom Clancy
Если вы считаете, что исчерпали для себя знания в SQL, предлагаю вам заняться работой над этими скиллами:
Некоторые из самых сложных скиллов в SQL включают:
- Оптимизация запросов — это требует знания структуры таблиц и индексов, а также понимания того, как оптимизировать запросы для улучшения производительности.
- Работа с большими объемами данных — это может включать в себя управление партиционированием, кластеризацией и другими методами для обработки и анализа больших объемов данных.
- Использование аналитических функций — это может включать в себя использование функций, таких как RANK, ROW_NUMBER, LAG и LEAD, для выполнения сложных аналитических запросов.
- Работа с временными рядами данных — это может включать в себя использование функций временных рядов, таких как DATE_TRUNC, DATE_PART и WINDOW функций, для анализа и управления временными рядами данных.
- Работа с географическими данными — это может включать в себя использование специальных функций, таких как ST_Distance, ST_Within и ST_Intersection, для анализа и управления географическими данными.
- Работа с хранилищами данных — это может включать в себя использование функций ETL (Extract, Transform, Load) для извлечения, преобразования и загрузки данных в хранилища данных.
- Работа с процедурами и триггерами — это может включать в себя создание и управление процедурами и триггерами для автоматизации задач и обеспечения целостности данных.
- Работа с реляционной алгеброй — это может включать в себя использование различных операторов, таких как JOIN, UNION, INTERSECT и EXCEPT, для выполнения сложных запросов.
- Работа с индексами — это может включать в себя создание и управление индексами для улучшения производительности запросов.
- Работа с безопасностью данных — это может включать в себя управление доступом к данным и защиту данных от несанкционированного доступа.
Заключение
В заключение, изучение SQL в 2023 году — это ключевой навык для любого, кто работает с данными. Сегодня SQL является одним из наиболее распространенных языков для работы с реляционными базами данных, и спрос на специалистов, обладающих навыками работы с SQL, по-прежнему высок.
Как изучить SQL за 2 месяца с нуля. План обучения
То, что данные называют нефтью 21 века известно уже давно: на них учатся нейросети, их мгновенная обработка и передача сильно упростили нашу жизнь, и одной из самых распространенных структур хранения данных является реляционная.
Основным инструментом для взаимодействия с реляционными БД является структурированный язык запросов или же SQL.

Вкратце, на мой взгляд, необходимо знать следующие разделы:
- стандартные типы данных;
- простые и вложенные запросы;
- соединения и изменения данных в таблице;
- проектирование схемы БД;
- хранимые процедуры;
- агрегатные и оконные функции;
- древовидные структуры и рекурсивные запросы;
- транзакции;
- оптимизация запросов;
- модули расширения.
Теперь перейдем непосредственно к плану обучения.
Основы
Предлагаю начать с замечательного курса на Stepik интерактивный тренажёр по SQL. В данном курсе очень плавно даётся вся необходимая база сразу же с практическими заданиями. Отсюда вы узнаете о выборке, группировке и корректировке данных, что такое вложенные запросы, какие существуют соединения таблиц и так далее.
Для закрепления пройденного материала желательно ещё пройти задания на PostgreSQL Exercises.
Продвинутые темы
Для выполнения простых задач хватит и предыдущего курса, однако, если вам придётся писать много сложных запросов или же ваша работа будет связана непосредственно с инженерией данных, то этого будет явно недостаточно.
Поэтому переходим к следующему курсу также на Stepik Свободное погружение в СУБД, где уже рассказывается о проектировании схем баз данных, оптимизации запросов, транзакциях, рекурсивных запросах и многом другом. В курсе также уделяется пару слов NoSQL.
После ещё можно пройти небольшой курс на Coursera Advanced Relational Database and SQL.
Литература
Также при прохождении курсов не будет лишним пользоваться литературой для углубления и структурирования информации. Мне понравилась книга «Основы технологий баз данных», Б.А. Новиков, Е.А. Горшкова, Н.Г. Графеева.

Плюс данной книги заключается в том, что она очень хорошо сочетается с вышеуказанными курсами.
Практика
Для практики можно использовать LeetCode и решать задачи по SQL уровня medium и выше, если получится. На данной платформе представлено множество задач с реальных собеседований в компании уровня FAANG и это её главное преимущество.
Если вам известны ещё хорошие ресурсы по SQL, которые не были представлены в статье, то обязательно делитесь ими в комментариях – соберем всю лучшую информацию в одном месте.
Дополнительные источники
- «SQL: быстрое погружение», Уолтер Шилдс;
- «Изучаем SQL» (третье издание), Алан Болье;
- «Practical SQL» (second edition), Anthony DeBarros;
- «SQL in a Nutshell» (fourth edition), Kevin Kline, Regina O. Obe, Leo S. Hsu;
- Основы SQL – курс Андрея Созыкина;
- Знакомство с SQLite – небольшой вводный курс;
- Intro to SQL– вводный курс на платформе kaggle;
- SQL Tutorial – курс для начинающих от Amigoscode;
- Базы данных и SQL – курс от МФТИ по SQL и NoSQL;
- SQL Introduction – небольшой курс от Сергея Романенко;
- Марафон данных: первое знакомство с SQL и Python – курс Dataskills;
- SQL for Data Science – курс начального уровня от университета Калифорнии.
- «PostgreSQL 15 изнутри», Егор Рогов;
- «SQL. Сборник рецептов» (второе издание), Энтони Молинаро, Роберт де Грааф;
- «Effective SQL: 61 Specific Ways to Write Better SQL», John L. Viescas, Douglas J. Steele, Ben G. Clothier;
- Базы данных – курс от СПбГУ;
- Advanced SQL – ещё один курс на платформе kaggle;
- Advanced Databases and SQL Querying – курс на платформе udemy;
- Advanced SQL (summer 2020) – большой плейлист по продвинутым темам;
- Intermediate PostgreSQL – курс среднего уровня от университета Мичигана;
- From Data to Insights with Google Cloud – специализация от Google для разных уровней;
- Введение в базы данных – совместный курс от НИУ ВШЭ, СПбПУ, Computer Science Center.
Ещё несколько полезных ссылок:
- SQL-ex, Codewars, SQLZOO – сайты для практики;
- Интерактивные учебники по SQL: один, два, три, четыре;
- Полезные каналы: DataLearn, techTFQ, Seattle Data Guy, We Learn SQL;
- Документация: PostgreSQL, MySQL, Oracle, Microsoft SQL server, SQLite.
- sql
- postgresql
- базы данных
- roadmap
- план обучения
- big data
- data engineering
- data science
- учебный процесс it
- программирование для начинающих
- SQL
- Data Mining
- Big Data
- Учебный процесс в IT
- Data Engineering
Какую СУБД начать изучать в первую очередь?
Какую систему баз данных стоит изучить в первую очередь? И стоит ли вообще изучать какие-либо СУБД, ведь для этой работы есть специально обученные люди?
Да, разумеется, вы должны уметь пользоваться базами данных! Данные — это основа нашей профессии. Данные управляют приложениями, которые мы создаём. Поэтому вам следуют знать о системах баз данных, как можно больше.
В этой статье, я буду исходить из того, что вы новичок в базах данных.
СУРБД и NoSQL
В наши дни у вас есть выбор из двух основных СУБД. Это либо старая добрая реляционная СУБД, либо новая, но уже обкатанная NoSQL система. Если вдруг вы не понимает о чём идёт речь, я объясню основы каждой системы.
СУРБД — Система Управления Реляционными Базами Данных. Согласно Википедии, реляционная модель — это модель организации данных, в одной или нескольких таблицах, состоящих из строк и столбцов, где каждая строка имеет уникальный идентификационный ключ. Если вы совершенно не понимает о чём идёт речь, представьте себе простую электронную таблицу из строк и столбцов.
Электронные таблицы не сравнятся с мощью СУБД, это лишь упрощённая аналогия, для визуального представления. Связанные между собой данные, хранятся в таблицах внутри базы данных.
Базы данных NoSQL — это группы, различных по типу СУБД, которые хранят связанные данные вместе. Базы данных NoSQL предлагают нам механизм хранения и извлечения данных, отличный от табличного, который используют реляционные базы.
Базы NoSQL можно представить, как большой JSON-документ, или хранилище «ключей». За этим скрыто намного больше, но в качестве введения — этого достаточно. Если вы понятия не имеете, что такое JSON, ключи и значения ― что же, нам предстоит немало потрудиться. И мы сделаем это.
Я рекомендую сначала изучить СУРБД и набраться опыта. После того как вы освоитесь в большинстве баз этого типа, можете переходить к изучению NoSQL.
Ознакомьтесь с этими базами данных: PostgreSQL, MS SQL Server, и MySQL.
Роли специалистов по базам данных
- Администратор баз данных ― как системный администратор, только по базам данных. Администратор ― наблюдает, настраивает, делает резервные копии, поддерживает и обновляет СУБД, которые вы используете каждый день.
- Разработчик баз данных ― проектирует решения. Такой специалист проводит дни напролёт, погрузившись в базах данных с головой. Пишет ПО, для работы с большими, и не очень, массивами данных. Разработчик проектирует базы данных, а администратор обслуживает их.
- ETL разработчик ― занимается перемещением данных из одной системы в другую. Аббревиатура ETL расшифровывается, как Extract, Transform, Load (извлечь, преобразовать и загрузить). Данные, извлечённые из одной базы, должны «вписаться» в другую. Для решения таких задач существует специальное ПО, но за три года работы на этой должности, я никогда не использовал его. Мы создавали собственные PL/SQL пакеты в Oracle, которые делали тоже, что и дорогое стороннее ПО. Но разработчики тоже стоят не дёшево, так была ли экономия?
Базы данных в веб-разработке
Работая над веб-проектом, вам понадобится организовать интерфейс взаимодействия с данными на постоянной основе. Вы можете делать запросы напрямую к базе данных, или через веб-сервис, который сделает это за вас.
А что, если этот сервис не удовлетворит ваши потребности в полной мере? Что, если вас попросят сделать то, что веб-сервис не поддерживает? Что ж, в обоих случаях пришло время обратится к back-end разработчику, или написать код самому.
Есть три основные категории веб-разработчиков: front-end, back-end и full-stack разработчики. Первые, не особо дружат с базами данных и запросами, но остальные две категории — должны. Тем не менее, даже front-end разработчикам, следует иметь представление о том, как всё устроено, иначе вы можете почувствовать себя не очень ценным сотрудником.
Я рекомендую овладеть навыками full-stack разработчика. Не обязательно быть крутым во всём (я не очень хорош во front-end), но нужно иметь представление обо всех процессах, начиная с того, как данные извлекаются из базы и до момента, когда пользователь увидит их.
Вы и Базы данных
Какую СУБД стоит изучить в первую очередь? Вам нужно знать основы их всех, но для начала ― изучайте СУРБД, пока не станете знатоком SQL. Эти базы данных всё ещё очень широко применяются, и они никуда не денутся в обозримом будущем. Вы легко найдёте документацию и большое количество бесплатных обучающих ресурсов.
Я думаю легче всего будет начать с MySQL или MS SQL Server Express ― это бесплатные системы. Для них существует множество уроков по применению, на все случае жизни.
Данные — это основа нашей профессии, так что вперёд, учиться!
