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

-Является, прежде всего, информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. В общем случае SQL (без ряда современных расширений) считается языком программирования неполным по Тьюрингу, но вместе с тем стандарт языка спецификацией SQL/PSM предусматривает возможность его процедурных расширений.

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

Дорожная карта SQL 2024

SQL предоставляет средства для доступа и получения данных из баз данных, что часто является начальным шагом в любой задаче Data Science. Специалисты по работе с данными используют SQL-запросы для извлечения необходимых данных для анализа. Ниже перечислены шаги, которые необходимо выполнить, чтобы освоить SQL для Data Science:

  • Изучите основы SQL

  • Разберитесь в типах SQL-серверов

  • Практика SQL запросов и работы с данными 

  • Практика в работе над реальными датасетами 

  • Научитесь защищать свои базы данных

Давайте подробно рассмотрим каждый шаг, перед вами SQL дорожная карта 2024 года.

Шаг 1: Изучите основы SQL


Начните свое путешествие по SQL с освоения фундаментальных концепций. 

Начните с понимания базового синтаксиса, структуры базы данных и основных команд SQL, таких как SELECT, INSERT, UPDATE, DELETE и JOIN.

В моем телеграм t.me/sqlhub канале можно найти гайды, уроки, лучшие библиотеки и советы по работе с данными. 

https://t.me/addlist/_FjtIq8qMhU0NTYy -а здесь я собрал бесплатную папку с каналами по изучению Data Science и работе с базами данных.

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

1. Бесплатные курсы по SQL  - Интерактивный тренажер по SQL 

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

Продолжительность: Приблизительно 2 недели

Ссылка - https://stepik.org/course/63054/promo

2. Введение в SQL от Kaggle

Базовый курс от известной платформы по анализу данных Kaggle.

Продолжительность: Приблизительно 1 неделя

Уровень мастерства: Начинающий

Ссылка - https://kaggle.com/learn/intro-to-sql

3. Продвинутый курс SQL от Kaggle

Продолжительность: Приблизительно 1 неделя

Уровень мастерства: Промежуточный

Ссылка - https://kaggle.com/learn/advanced-sql

4. Введение в базы данных и SQL-запросы от Udemy

Продолжительность: Приблизительно 1 неделя

Уровень мастерства: Начинающий

Ссылка - https://udemy.com/course/introduction-to-databases-and-sql-querying/

5. Intro to Relational Databases byUdacity

Продолжительность : 4 недели

Уровень квалификации: Средний ученик

Ссылка - https://udacity.com/course/intro-to-relational-databases-ud197

6. Введение в SQL (DataCamp)

Продолжительность: 4,5 часа

Уровень квалификации: Начинающий

Ссылка -

https://datacamp.com/courses/introduction-to-sql

7. SQL для анализа данных от Udacity

Продолжительность: Примерно 4 недели

Уровень навыков: Начинающий

Ссылка - https://shiksha.com/online-courses/sql-for-data-analysis-course-udacl3

8 - ЕЩЕ БЕСПЛАТНЫЕ курсы и БЕСПЛАТНЫЕ сертификаты.

❯ SQL http://cognitiveclass.ai/courses/learn-sql-relational-databases

❯ MySQL https://scaler.com/topics/course/sql-using-mysql-course/

❯ PostgreSQL http://freecodecamp.org/learn/relational-database/

❯ Oracle http://mygreatlearning.com/academy/learn-for-free/courses/oracle-sql

❯ PostgreSQL http://simplilearn.com/free-postgresql-course-skillup

❯ SQL Projects http://mygreatlearning.com/academy/learn-for-free/courses/sql-projects-for-beginners

Подборка ресурсов, где можно выучить\подтянуть знания SQL:

В порядке изучения с "нуля":

⏩ https://mode.com/sql-tutorial/  много бесплатных уроков для начинающих, идущих по нарастающей 

⏩ https://www.sql-ex.ru/ лучший тренажер по SQL, решайте парочку задач в день и никакие задания на интервью не будут вам страшны

⏩ https://sqlzoo.net/ еще несколько тренажеров с задачками для прокачивания практических навыков

 https://stepik.org/course/70710/promo для тех кто уже знает основы и базу и хочет развить знания еще больше.

Шаг 2: Изучите различные типы СУБД


Базы данных SQL бывают разных типов. Очень важно понимать их различия. Среди популярных SQL-сервера - MySQL, PostgreSQL и Oracle. У каждого из них есть свои сильные стороны и возможности использования.

Например, MySQL известен своей простотой, а PostgreSQL предлагает расширенные возможности. Изучение этих различий поможет вам выбрать правильную базу данных для решения задач Data Science.

На Хабре есть замечательная статья на тему выбора СУБД.

Шаг 3: Решайте задачи по SQL 

Чтобы закрепить свои навыки работы с SQL, попрактикуйтесь в решении реальных задач Data Science. Эти проблемы часто связаны с извлечением, преобразованием и анализом данных. Вы можете найти задачи и упражнения по SQL в Интернете или использовать наборы данных для работы над SQL-запросами, которые касаются конкретных вопросов, связанных с данными. Это поможет вам приобрести навыки применения SQL на реальной практике Data Science.

Ниже приведены некоторые из лучших ресурсов для поиска вопросов и практических заданий по SQL:

@data_analysis_ml -телеграм канал для Аналитиков данных со множеством гайдов и примеров с кодом и задачами по работе с данными.

SQLZoo - это бесплатный онлайн ресурс, который предлагает интерактивные уроки и задания для изучения SQL. Уроки начинаются с простых запросов и постепенно усложняются по мере продвижения в обучении.

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

Codecademy SQL - интерактивный курс для изучения SQL с возможностью практического применения на практике.

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

Udacity SQL - курс  известного онлайн-образовательного ресурса, позволит вам освоить основы языка SQL и показать, как применять его для анализа данных

Khan Academy SQL - бесплатный курс SQL, предоставляющий уроки и задачи для изучения языка.

LearnSQL  - платный ресурс для изучения SQL. Содержит большое количество уроков и практических заданий.

SQLCourse - представляет собой бесплатную платформу, где можно овладеть навыками SQL. Здесь предоставлены обучающие уроки, практические задания и тесты, позволяющие проверить свои знания.

SQL Tutorial - это русскоязычный бесплатный ресурс, предоставляющий возможность изучения SQL. Здесь можно найти уроки и задания, которые помогут вам применять полученные знания на практике.

Mode Analytics SQL Tutorial - бесплатный курс, который предлагает обучение базовым и продвинутым навыкам работы с языком SQL.

SQL Exercises - это бесплатный онлайн-ресурс, который предлагает задачи и упражнения для изучения и практики SQL. Ресурс содержит множество заданий, которые помогут вам развить практические навыки работы с SQL.

SQL Fiddle – это интернет-сервис, который предоставляет возможность создавать, тестировать и отлаживать SQL-запросы совершенно бесплатно.

Learn SQL the Hard Way  - книга для изучения SQL, содержащая уроки и задания для практической работы.

DataCamp SQL - курс SQL от DataCamp, который научит Вас основам языка SQL и его применению в анализе данных. Содержит уроки и практические задания на практике.

Шаг 4: Работа над проектами на SQL на популярных датасетах


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

Ниже приведены некоторые ресурсы для поиска датасетов для ваших будущих проектов:

Если вы ищете открыте датасетов для работы - вот 7 бесплатных источников данных, где вы можете найти данные для любых задач.

1. Репозиторий Awesome Data Github

В этом репозитории вы найдете ссылки на открыте наборы данных,  которые содержат изображения, текст, аудио и табличные данные.

https://github.com/awesomedata/awesome-public-datasets

2. Kaggle

Более 1000 датасетов, которые можно легко скачать и работать с ними, совершенно бесплатно.

https://www.kaggle.com/datasets

3. Открытый реестр данных на AWS

Поиск и обмен датасетами х с помощью ресурсов AWS.

4. Open ML

Более 20K+ наборов данных на Open ML 

https://openml.org

5. Papers with Code

Papers with Code содержит  более 7000 открытыз наборов данных по всем возможным тематикам.

https://paperswithcode.com/datasets

6. Hugging Face

На Hugging Face вы можете найти 80K+ наборов данных.

https://huggingface.co/datasets

7. Dagshub

Много бесплатных даатсетов можно найти на Dagshub:

https://dagshub.com/datasets/

 100 датасетов для анализа данных на все случаи жизни. 

5. Научитесь защищать свои базы данных

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

Существует несколько способов защиты SQL баз данных:

  1. Аутентификация и авторизация: Это первый шаг в обеспечении безопасности SQL баз данных. Аутентификация позволяет убедиться в подлинности пользователей, а авторизация определяет, какие действия могут выполнять эти пользователи в базе данных. Использование сложных паролей, двухфакторной аутентификации и ограничение прав доступа помогут предотвратить несанкционированный доступ к данным.

  2. Шифрование данных: Шифрование данных является эффективным способом защиты SQL баз данных. Это процесс преобразования читаемых данных в непонятный для посторонних вид. Шифрование может быть применено как на уровне базы данных, так и на уровне приложения. Это поможет предотвратить утечку информации в случае несанкционированного доступа к базе данных.

  3. Регулярные резервные копии: Регулярное создание резервных копий SQL баз данных является важным аспектом их защиты. В случае сбоя системы, атаки злоумышленников или случайного удаления данных, наличие резервной копии позволит быстро восстановить базу данных и минимизировать потери информации.

  4. Обновление и патчи: Регулярное обновление программного обеспечения SQL баз данных и установка последних патчей являются неотъемлемой частью их защиты. Производители постоянно выпускают обновления, которые исправляют уязвимости и улучшают безопасность. Необходимо следить за выходом этих обновлений и устанавливать их как можно скорее.

  5. Мониторинг и аудит: Регулярный мониторинг SQL баз данных позволяет обнаружить любые подозрительные активности или аномалии, которые могут указывать на возможные атаки или нарушения безопасности. Также важно вести аудит баз данных, чтобы иметь возможность отследить, кто и когда получал доступ к данным и какие действия совершал.

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

Отдельно стоит поговорить про SQL-инъекции, вы возможно слышали этот термин, даже, если не работали с SQLдо этого.

SQL-инъекции (SQL injections, SQLi) — самый хорошо изученный и простой для понимания тип атаки на веб-сайт или веб-приложение. Тем не менее, он странным образом остается весьма распространенным и в наши дни. Организация OWASP (Open Web Application Security Project) упоминает SQL-инъекции в своем документе OWASP Top 10 2017 как угрозу номер один для безопасности веб-приложений, и вряд ли положение сильно изменилось за четыре года.SQL-инъекции 

Ниже приведены полезные инструменты для защиты от SQL инъекций

1.SuIP.biz

Обнаружение уязвимости для SQL-инъекций в режиме онлайн с помощью sup.biz и поддержка баз данных MySQL, Oracle, PostgreSQL, Microsoft SQL, IBM DB2, Firebird, Sybase.

SQLMap поможет протестировать сервис на все 6 методов инъекции.

2.Тест на уязвимость SQL-инъекции онлайнc HackerTarget 

Еще один онлайн-инструмент Hacker Target на основе SQLMap для поиска уязвимости bind & error против GET-запроса HTTP.

3. Netsparker

Netsparker готов просканировать уровень веб-безопасности предприятий: он делает даже больше, чем просто тест на уязвимость SQL. Человек также может интегрировать приложения для автоматизации веб-безопасности.

Пользователь может проверить индекс уязвимости сайта, который прошел сканирование от Netsparker.

4. Vega

Vega – это сканер безопасности с открытым исходным кодом, который может быть установлен на Linux, OS X и Windows.

Vega написан на Java, он имеет графический интерфейс.

Не только SQLi: Vega можно использовать для тестирования на многие другие типы уязвимостей, такие как:

Инъекция XML/Shell/URL;

Directory listing;

Remote file includes;

XSS.

Vega выглядит многообещающим бесплатным сканером безопасности сети.

5. SQLMap

SQLMap – это один из популярных инструментов тестирования с открытым исходным кодом на выполнение SQL-инъекций в системе управления реляционными базами данных.

Sqlmap проводит перечисление пользователей, паролей, хэшей, баз данных и поддерживает полный дамп таблиц базы данных.

Если пользователь использует Kali Linux, то он может применить SQLMap, не устанавливая его дополнительно.

6.SQL Injection Scanner

Онлайн сканер для проведения пентестинга, который использует OWASP ZAP. Есть две версии – упрощенная (бесплатная) и полная (нужно зарегистрироваться).

7.Appspider

Appspider, разработанный Rapid7, — это динамическое решение для тестирования безопасности приложений на обход защиты и более чем 95 типов атак.

Уникальная функция Appspider под названием «vulnerability validator» позволяет разработчику воспроизвести уязвимость в режиме реального времени.

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

8. Acunetix

Acunetix – это готовый к работе сканер уязвимостей веб-приложений, которому доверяют более 4000 компаний по всему миру. Не только сканирование SQLi: инструмент способен найти более 6000 других уязвимостей.

Каждая находка классифицируется, и показываются потенциальные корректировки системы безопасности: поэтому пользователь всегда знает, что нужно сделать, чтобы исправить ситуацию к лучшему. Кроме того, человек может интегрироваться с системой CI/CD и SDLC, поэтому каждый риск безопасности идентифицируется и фиксируется до того, как приложение будет развернуто.

9. Wapiti

Wapiti – это сканер уязвимостей на основе Рython. Он поддерживает большое количество инструментов для обнаружения следующих атак:

  • Sql и XPath;

  • CRLS и XSS;

  • Shellshock;

  • File disclosure;

  • Server-side request forgery;

  • Command execution.

Он поддерживает конечную точку HTTP/HTTPS, несколько типов аутентификации, такие как Basic, Digest, NTLM и Kerberos. У пользователя есть возможность создавать отчеты о сканировании в формате HTML, XML, JSON и TXT.

10. Scant3r

Scant3r – это «легкий сканер», основанный на Python.

Он ищет возможность проведения атак XSS, SQLi, RCE, SSTI в заголовках и параметрах URL-адресов.

Почему нужно изучать SQL в 2024 году

В 2024 году изучение SQL и баз данных остается важным и актуальным. Вот несколько причин, почему стоит уделить внимание этой области:

  1. Рост количества данных: В настоящее время объем данных, генерируемых и собираемых компаниями, стремительно растет. SQL и базы данных являются основными инструментами для хранения, управления и анализа этих данных. Изучение SQL позволяет эффективно работать с большими объемами информации.

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

  3. Улучшение аналитических навыков: SQL позволяет проводить сложные аналитические запросы к данным. Изучение SQL поможет вам научиться эффективно фильтровать, сортировать и агрегировать данные для получения ценной информации. Это может быть полезно для принятия бизнес-решений, оптимизации процессов и выявления трендов.

  4. Развитие карьеры: Изучение SQL и баз данных может стать отличным инструментом для развития вашей карьеры. Навыки работы с базами данных могут помочь вам продвигаться по службе или перейти на более высокооплачиваемую должность. Кроме того, знание SQL может быть полезным дополнением к другим навыкам, таким как аналитика данных, машинное обучение или разработка программного обеспечения.

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

Комментарии (26)


  1. Z55
    07.01.2024 12:34
    +7

    И что, есть кто-то, кто всё это прошёл? Вместо всей этой шелухи можно было оставить ссылку на sql-ex.ru , и это был бы вполне самодостаточный мануал.


    1. ALexKud
      07.01.2024 12:34
      +3

      Следует заметить вот что: в основном sql рассматривается как язык выборок и получения данных из связанных таблиц. Но никто даже не упоминает что вся мощь sql проявляется в процедурах обработки данных, когда выходной набор лишь результат сложных и не очевидных манипуляций с данными из таблиц. Сейчас распространено, что обработка данных только на клиенте и это приводит как правило к серьёзному сетевому трафику. Данные надо загрузить, обработать и вернуть назад в бд, что не оптимально. А можно сделать процедуру, которую можно вызвать из клиента и она внутри сервера сделает все что нужно без лишнего трафика и более оптимально, так как план выполнения процедуры строится при её компиляции и потом переиспользуется. Запрос всегда медленнее, потому что план выполнения каждый раз строится сервером заново. Высший пилотаж в SQL это строить системы с бизнес логикой на сервере, а не на клиенте, когда можно применить всю мощь языка, а не 20 % примерно как в web разработках или datasience. К тому же те же web разработчики часто полагаются на фреймворки, которые генерируют такой sql код, что разобраться с ним практически невозможно человеку.


      1. bolk
        07.01.2024 12:34
        +3

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


      1. YokaiiSpirit
        07.01.2024 12:34

        >> фреймворки, которые генерируют такой sql код

        встретил недавно код нагенерённый, который делал фулскан данных за 2 недели состоящих из кучи вложенных подзапросов, чтобы получить пропавшие имена со вчера. причём там 60 полей собираемых каждый день и индексы по именам/датам присутствуют.

        на 120к записей в день, может пропасть 1-20 примерно

        в общем, я думаю, такого кода ещё у нас много(


      1. andrewdeath
        07.01.2024 12:34

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


        1. rozhnev
          07.01.2024 12:34
          +4

          Смена базы данных это как раз не основной недостаток переноса логики в базу, так как встречается практически никогда.

          Гораздо больший недостаток это отсутствие версионности и сложности тестирования


          1. miksoft
            07.01.2024 12:34

            Смена базы данных это как раз не основной недостаток переноса логики в базу, так как встречается практически никогда.

            Последние два года весьма часто.


        1. LeetCode_Monkey
          07.01.2024 12:34
          -1

          В базу обычно лезет backend, и база это по сути часть бэка, быть она может даже на той же машине, или на соседней в локальной сети. Следовательно не совсем понятно о каком лишнем трафике идёт речь...

          Когда эмулируют работу СУБД, тут надо сразу бить по рукам, не важно локалка там это или что. Потом им ещё алгоритмы подавай, а то чо-то тормозит всё, ога.

          Ну и реализовывать бизнес логику в функциях базы не есть хорошо.

          Всю - не хорошо. Хорошо только ту часть которая непосредственно лопатит данные. Для того СУБД и придумывались. А не для того чтобы таблички там хранить.


      1. nronnie
        07.01.2024 12:34

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

        По-моему, уже все что угодно умеет и план кешировать, и даже перед этим параметризовать запросы.


    1. rozhnev
      07.01.2024 12:34
      -1

      Мне кажется sql-ex морально устарел. Я работаю над своей версией SQL тренажёра sqltest.online


      1. cijic
        07.01.2024 12:34
        +2

        Морально устарел - маркетинговое понятие, используемое для стимулирования или обоснования покупок.

        Какой смысл вы хотели сообщить в этой фразе, помимо маркетингового?


        1. rozhnev
          07.01.2024 12:34
          +1

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

          По поводу sql-ex одна из моих претензий - абсолютно не адекватная тестовая база. Ну и в догонку - интерфейс который тоже является частью учебного процесса


          1. cijic
            07.01.2024 12:34

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

            Так это не моральное устаревание, а технологическое, т.е. как раз реальное.

            Моральное "устаревание" - это часть запланированного устаревания. Рекомендую узнать побольше о последнем.


    1. IgorMartynkin1981
      07.01.2024 12:34
      -3

      Не соглашусь:

      1. Чувак реально пропахал над статьёй и только за это респект и уважуха!!!

      2. Он собрал основу в одном месте и сделал описание, а для сикволовской скорлупы это ценнее и полезнее.


      1. vindy123
        07.01.2024 12:34
        +3

        1. Чувак реально пропахал над статьёй и только за это респект и уважуха!!!

        вроде после прочтения 10-15 сгенерированных нейронкой статей вырабатывается однозначная чуйка на этот кал, нет?


    1. alexbolgov94
      07.01.2024 12:34
      +1

      sql-ex, имхо, не только морально устарел, он ещё и вреден для новичков

      1. Примеры БД там, откровенно говоря, не имеют ничего общего с тем, с чем придётся столкнуться в реальных БД бизнес-приложений.

      2. Некоторые задачи и БД описаны крайне плохо и запутанно, можно час биться, пытаясь понять, чего же хотели вообще авторы. Это бесит и демотивирует.

      3. sql-tutorial, куда можно подглядывать за теорией, крутится вокруг MS SQL Server, диалект SQL которого местами очень сильно отличается от ANSI. Да и в целом, если уж и углубляться в дебри конкретной СУБД, пусть это лучше будет постгря, она уже на каждом шагу.

      В качестве альтернативы quick start могу посоветовать sql-academy.org (да, сложных задач не очень много, но они по крайней мере действительно чему то научат) + книжка Алана Болье "Изучаем SQL" (в отличие от Грабера нормальный перевод на русский без ошибок, которые путают + нормально разобраны джоины, агрегатные и аналитические функции).


      1. Z55
        07.01.2024 12:34

        Не могу согласиться, ибо:

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

        2. Задачи там сформулированы вполне нормально. Если уж совсем непонятно, можно посмотреть на ожидаемый рекордсет, чтобы уж точно понять что от тебя хотят.

        3. Тут я не могу утверждать, но по моему мнению, во времена, когда зарождался sql-ex, MS SQL Server был куда более популярнее постгреса. Но ещё раз, могу и ошибаться. А для решения задач, по крайней мере первого этапа, различия в диалектах практически ничтожно.


  1. Akina
    07.01.2024 12:34
    +2

    Начните с понимания базового синтаксиса, структуры базы данных и основных команд SQL, таких как SELECT, INSERT, UPDATE, DELETE и JOIN.

    Не-не... JOIN из этого списка следует убрать и расположить особняком. Если первые 4 и правда могут быть названы командами, то вот последнее - с весьма большой натяжкой. Тёплое с мягким в одном списке только запутает.

    Шаг 2: Изучите различные типы СУБД

    И опять всё в кучу. Понятия БД и СУБД ну никак нельзя объединять! Более того - их следует чётко и однозначно отделить друг от друга. Ну хотя бы для привития элементарной терминологической грамотности.

    Ниже приведены некоторые из лучших ресурсов для поиска вопросов и практических заданий по SQL

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

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

    То же можно написать и про "популярные датасеты". Многие СУБД предлагают модельные датасеты в составе инсталлятора или рядом с ним (AdventureWorks в SQL Server, Sakila в MySQL и т.п.). Но эти "датасеты из коробки" хороши тем, что объём обучающих задач на них гораздо обширнее, а SQL Server так и вовсе большинство примеров в документации строит на именно своей учебной базе. А если где заткнулся - ещё поди найди энтузиаста, который озаботится импортом невесть откуда взятого датасета, чтобы помочь тебе с проблемой, на которую своих навыков нехватило.

    5. Научитесь защищать свои базы данных

    А вот эта задача, как по мне, вообще лежит далеко за рамками изучения собственно SQL. Это - уже администрирование, причём далеко не начала.

    -----------------

    PS. А ещё очень огорчает отсутствие ссылок на наши, родные, ресурсы, предназначенные для изучения основ SQL. Ланит, Интуит и тому подобные.. там далеко не всё платно, даже скорее наоборот.


  1. Hivemaster
    07.01.2024 12:34
    +2

    Язык программирования? А что же значит вторая буква в его названии?



  1. jimquery
    07.01.2024 12:34

    Изучал SQL в 2013-ом году по видеокурсу от УЦ Специалист за авторством Гурьянова. Курс Microsoft 10774. При желании можно найти в интернете. Имхо, мало кто из блоггеров сравнится в качестве подачи материала.


    1. Vitaliy_Zlobin
      07.01.2024 12:34

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


  1. Senecaminor
    07.01.2024 12:34
    +1

    Если проще SQL - это ремесло. На мой субъективный взгляд (я примерно прикинул) существует около 300 "фишек", "приёмчиков ", "шаблонов" для sophisticated data analysis. Это очень похоже на оригами, а я им занимался в начальной школе:). Таблицы как бумага, ее нужно гнуть в определённых последовательностях.

    Во-первых берите неагрегированные данные, чем "сырее" тем лучше и ближе к жизни.

    Я убедился, что нужно не тренажёры проходить (на то стоит потратить время все таки), но для развития мастерства нужно делать и делать запросы к новым данным и ставить аналитические гипотезы самому себе! И не на одном датасете, а в первый год перепробовать их несколько десятков.

    Во-вторых. Важно! Не берите датасеты из kaggle, за редким исключением:спорт, погода, игры. Не берите ирисы, титаник, может только в самом начале. Берите csv с сайтов всемирного банка, мосбиржи, разные сайты по медицинским исследованиям с сырыми данными. Некоторые имеют открытые базы данных read only.

    Все потому, что в большинстве датасеты на kaggl сгенерированы (скорее всего с помощью faker) по Паретто. Конечно не все, но очень часто синтетические. Это просто не интересно анализировать. Трудно будет научиться делать выводы и последовательный анализ.

    Еще про интерес: мне крайне было не интересно анализировать библиотеку на степике, в том самом "легендарном" курсе. Не интересно было проходить на sqlex задания про продажи оргтехники. Но вот что увлекло, так это создание собственных ds из открытых источников, stratascratch faang задачи, top 50 SQL вопросов на leetcod, и курс Глеба Михайлова (после него я действительно увидел "анализ", почувствовал вкус к этому и полюбил инструмент. (Если вы не изучили до сих пор SQL, скорее вы его не любите)

    P. S. Учите clickhouse ( синтаксис, и его эксклюзивные функции, будете на порядок круче всех и востребованнее.)


    1. BugM
      07.01.2024 12:34
      +1

      P. S. Учите clickhouse ( синтаксис, и его эксклюзивные функции, будете на порядок круче всех и востребованнее.)

      Да, но только после минимум нескольких лет работы с классическими sql базами.

      Продвинутый Кликхаус довольно сложный для понимания и работает так как более оптимально, а не так как более правильно. Сразу в такое не стоит.

      Количество людей на самом понимающих как работают и что делают array* функции и как на них построить то что нужно бизнесу очень невелико. Сюда же правильное проектирование таблиц чтобы не тормозило. С учетом всех особенностей array* функций.


  1. Batalmv
    07.01.2024 12:34

    Странная статья

    И дорожная карта, скажем так, вызывает вопросы

    1. Понятно, предложить начать с реляционной алгебры уже не модно, народу надо быстро "оттарабанить" курсы и начать "рубить капусту". Ну ладно, то такое.

    2. SELECT, INSERT, UPDATE, DELETE и JOIN - а JOIN уже отдельная команда?

    3. Хоть чуть-чуть про транзации можно узнать? Я пониманию, отсутствие знания о транзакциях не мешает писать простые запросы, но хоть чуток ...

    4. Я не очень понял, что надо изучить о типах. Как раз 99% времени используеться буквально три типа "строка", "число", "блоб". И вариации на тему длины. Понятно многообразие типов больше, но если честно, я вообще редко помню, когда над этим стоило задуматься, кроме очень "нишевых" опций.

    5. Индексы, оптимизатор?

    6. Зачем изучать задачи админа, такие как защита - я не понял. Или почему только их? Чего не изучить как растянуть базу в гео-кластер на расстоянии в 100 км? Или как делать backup?

    7. Задача защиты от иньекций - тут я вообще потерялся

    Но я могу допустить, что для Data Science нужен свой отдельный learning path


  1. alexeyvolya
    07.01.2024 12:34
    -1

    Автору спасибо за сборку ресурсов. Часть из них мне была не известна☺️.

    SQL либо любят, либо ненавидят - среднего не дано.????????

    Всем удачи и available timing ????