Где изучить sql
Перейти к содержимому

Где изучить sql

  • автор:

Интерактивный учебник по SQL

Если вы хотите узнать, что такое SQL — этот сайт для вас.

Если вы знаете, что такое SQL, но хотите научиться писать запросы на этом языке — этот сайт для вас.

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

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

Если вам покажется все понятным в настоящем учебнике, испытайте себя на тестах SQL-EX.RU. Обучающий этап здесь уже доступен для разных СУБД, включая MSSQL, MySQL, Oracle, PostgreSQL.

Мы надеемся, что сайт окажется полезным как новичкам, так и профессионалам в SQL.

Перейти к учебнику

Запросы в тексте учебника выполняются реальной СУБД. Пока это Microsoft SQL Server, но мы планируем** возможность использования также и других серверов баз данных, начиная со свободно распространяемых и заканчивая коммерческими продуктами:

  • MySQL
  • PostgreSQL
  • Oracle
  • .

с тем, чтобы можно было изучать особенности диалектов языка SQL у разных СУБД.

Однако уже сейчас вы можете адресовать запросы не только к MS SQL Server, но и к MySQL и PostgreSQL, используя консоль.

** Свои замечания и пожелания вы можете высказать, используя почтовую форму.

©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.

Изучение SQL с нуля самостоятельно

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

Руководство не содержит справочных данных, вместо этого мы ссылаемся на другие ресурсы.

Основная идея — SQL это навык, а не теоретические знания. Т.е. чтобы эффективно использовать SQL, в первую очередь, необходимо нарабатывать практику запросов, а не проходить обучающие курсы с упором на теорию баз данных.

Что такое SQL?

SQL — это язык извлечения данных из базы данных.

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

Сама база управляется через специальную программу СУБД (система управления базами данных).

Наиболее популярные СУБД — Oracle, SQL Server, MySQL, PostrgreSQL.

В статье мы будем говорить о SQL Server (СУБД от Microsoft). MS SQL база является основой в рамках веб-платформы Falcon Space.

Зачем изучать SQL?

Практически любая программа обрабатывает данные и хранит их в своей базе данных.

Таким образом в любой системе используется SQL язык (иногда он скрыт за фасадом некоторых оберток, например, ORM-систем).

В нашей платформе Falcon Space мы сделали SQL центральным звеном. Т.е. зная только один SQL можно создавать сложные веб-приложения.

Нет необходимости знать серверные языки типа Java, C#, Python, NodeJS и т.д.

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

SQL — одна из ключевых технологий IT, которая используется практически везде.

Что значит «знать SQL»?

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

Используя арсенал SQL, вы можете строить очень сложные запросы и извлекать информацию из базы в нужном виде:

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

Если вы имеете общее представление, как это работает, но не можете на практике извлечь данные из базы, то это ничего не дает в практическом плане.

Начало изучения SQL

Вы можете параллельно выполнять следующие шаги:

1. Изучите текстовый бесплатный курс по SQL Server на Метанит — https://metanit.com/sql/sqlserver/

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

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

Структура БД — это правильное определение таблиц и связей между ними.

Если база данных спроектирована плохо, то сопровождать такую базу будет непросто, и запросы будут работать неэффективно.

4. Подготовьте рабочее место:

Необходимо установить SQL Server (СУБД) и MS SQL Management Studio (программа для доступа к SQL Server). Установка описана в курсе Метанита.

После установки попробуйте подключиться к локальному серверу SQL и выполнить один простой запрос (например, select 1).

В дальнейшем вся практика будет проходить в MS SQL management Studio.

Практика по SQL — ключевой момент

Установка SQL Server локально:

  • https://falconspace.ru/list/sqlserver/ustanovka-ms-sql-server-2019-express-edition—487
  • https://falconspace.ru/list/sqlserver/ustanovka-sql-server-management-studio—488
  • https://metanit.com/sql/sqlserver/1.2.php

Практика по SQL состоит из 2 частей:

  1. Создание структуры базы данных,
  2. Написание запросов.

Создание структуры базы данных

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

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

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

Возьмите 10 разных областей, которые вам понятны (работа кинотеатра, ВУЗ, записная книжка, сотрудники завода, социальная сеть, CRM, учет рабочего времени, приложение для молодых родителей, служба такси и т.д.) и создайте для них свои структуры базы данных.

Что важно учитывать при создании структуры базы данных:

  • У объектов есть статусы, эти статусы меняются во времени, важно вести лог изменения статусов.
  • Некоторые важные изменения в объектах нужно логировать (кто когда какой элемент менял)
  • В целом по сущностям полезно хранить данные кто когда создал, обновил или закрыл.
  • Таблицы должны учитывать возможность будущего расширения (структура должна быть достаточно гибкой для расширений)

Практика написания запросов

В первую очередь это запрос SELECT. Из-за Join и подзапросов SELECT запросы могут быть бесконечно длинными и сложными.

Начинайте с самых простых и постепенно усложняйте примеры:

  • сначала просто select from
  • добавьте where
  • добавьте join
  • добавьте подзапрос в select
  • добавьте подзапрос в where
  • сортирока
  • сложные условия в where
  • обработка условий с датами (выборка за последние полгода)
  • объединение 2 запросов
  • подзапрос в from
  • алиасы (в том числе с пробелами)
  • группировка
  • группировка и having
  • группировка по 2 параметрам
  • разные агрегирующие функции

Возьмите 1 хорошо проработанную структуру базы данных и создайте для нее по меньшей мере 200 запросов SELECT.

В итоге у вас получится большой список из 2 колонок:

  • смысл запроса (на языке обычных людей: «найти наиболее продаваемые товары за квартал», а не «взять из таблицы t1 данные, отсортированные по столбцу x1»)
  • сам запрос (работу запроса проверить на практике).

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

  • сколько я пробегаю в разрезе месяцев?
  • какая у меня средняя скорость?
  • в какие дни я бегаю быстрее?
  • с кем из партнеров я бегал больше всего?
  • в каких локациях сколько и как быстро я пробегал?
  • сколько в среднем раз в неделю я бегал и какую среднюю дистанцию за 1 раз.

С запросами update, delete, insert все намного проще. Их дополнительная сложность может возникнуть только в случае использования подзапросов SELECT.

В файле можно занести по 2-3 примера на запросы изменения данных.

Про запросы выборки и обновления данных в базе данных:

Результат практики

В результате практики у вас будет наработано 10 структур баз данных и 200 запросов SELECT различной сложности.

Оформите запросы в файле на Google Docs (в виде таблицы).

Структуры можно изобразить в виде скринов диаграмм SQL для наглядности.

Проделав подобную работу, вы уже имеете на руках некое портфолио по SQL, на которое вы можете ссылаться в реллевантных вакансиях.

Но главный результат выполеннной работы — ваш навык быстро извлекать нужные данные и создавать структуры данных.

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

Написание SQL запросов сродни печати вслепую на клавиатуре — вы просто думаете над смыслом текста, а руки сами что-то пишут.

Заключение

Присылайте ваши наработки нам в телеграм @hecrus (ссылку на ваш гугл диск документ с доступом на комментирование по ссылке), и мы постараемся дать вам обратную связь по неточностям в структуре и запросах.

Дополнительно прикрепляем полезные ресурсы по теме SQL:

  • https://www.mssqltips.com/sqlservertip/6818/sql-select-examples/
  • https://www.sql-ex.ru/?Lang=0
  • https://sql-academy.org/ru/guide

Уроки SQL

Уроки SQL для начинающих / #1 - Что такое SQL? Введение

Уроки SQL для начинающих / #1 — Что такое SQL? Введение

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

Видеоурок

Полезные ссылки:

  1. Программа XAMPP ;
  2. Программа OpenServer ;
  3. Программа MAMP .

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

Информация про SQL

Немного информации про язык. Язык SQL появился еще в 70-х годах, но до сих пор остается мега популярным и востребованным языком. SQL используется для написания всевозможных запросов к базе данных: выборка, обновление, добавление, удаление записей и многое другое.

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

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

Компании зачастую требуют навыки и знаний языка SQL при трудоустройстве на работу. В ходе видеокурса вы познакомитесь с написанием команд для работы с базой данных и на основе этих команд вы сможете работать с БД используя любой другой язык: Python , C# , C++ , PHP и так далее. Все языки используют различные варианты для подключения к БД, но принцип отправки запросов к БД остаются одинаковыми, так как они пишутся на языке SQL.

SQL используется во множестве реляционных баз данных. Среди таковых можно выделить: MySQL, SQLite, Oracle, PostgreSQL, Microsoft SQL Server и многие многие другие.

Роль SQL в проектах

Sql выполняет роль посредника, между базами данных и проектом. Рассмотрим работу SQL на реально примере. Предположим, что у вас есть веб программа, написанная на PHP или Python . Также у вас есть база данных, к примеру MySQL, хотя на самом деле не важно какая БД у вас будет. Чтобы соединить обе технологии между собой нужен язык, понимающий как первую, так и вторую часть вышеуказанной логики. Таким языком является SQL. В нем вы записываете команду, при чем эта команда будет одинаковой что для PHP, что для Python, что для других языков программирования. После выполнения команды вы сможете получить данные из БД, записать данные или проделать другие манипуляции.

Информация про курс

В курсе «Уроки SQL для чайников с нуля » мы установим локальный сервер, а также запустим PhpMyAdmin. Это специальная программа, имеющая графический интерфейс для работы с базой данных MySQL. Внутри программы мы будем записывать все SQL команды, создавая таблицы и базы данных, а также работая с записями внутри них. Подобных программ существуют тысячи, но мы выбрали PhpMyAdmin, так как постоянно с ней работаем, плюс она имеет красивый интерфейс и идеально подходит под наши нужды.

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

Видео по работе с графическим интерфейсом PhpMyAdmin можно посмотреть ниже:

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

Задание к уроку

Выполните установку локального сервера и запустите графический редактор PhpMyAdmin.

Как изучить 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *