Как изучать 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 с нуля
← →
capkoh © ( 2008-03-26 12:45 ) [0]
Вопрос такой: за какое время можно изучить SQL в такой степени, чтобы можно было претендовать на звание «начинающий»? Положим, что я буду уделять этому занятию ровно два часа в день (только будни).
Вопрос второй: что должен знать и уметь человек с опытом работы с SQL в один год?
Стоит ли этим заниматься безотносительно к какой-либо конкретной БД?
Если нет, то какую БД выбрать?
← →
Ega23 © ( 2008-03-26 12:54 ) [1]
> Положим, что я буду уделять этому занятию ровно два часа
> в день (только будни).
Простите, не удержался: а с женой у вас как? Тоже по расписанию поминутному? 🙂
← →
Romkin © ( 2008-03-26 12:57 ) [2]
www.sql-ex.ru
Сертификат. Это — начальный уровень
← →
Правильный_Вася ( 2008-03-26 12:59 ) [3]
> за какое время можно изучить SQL в такой степени, чтобы
> можно было претендовать на звание «начинающий»?
полная неделя интенсивных занятий
← →
Corwin ( 2008-03-26 13:00 ) [4]
http://www.sql.ru/docs/sql/u_sql/index.shtml
Данный книг отражает собственно весь pure SQL.
В зависимости от вовлеченности, после около 0,5 года производственной деятельности, после набора критической суммы опыта, стоит озадачиться вопросами из области SQL tuning (такая книжка тоже есть у O»Reilly), что подразумевает знакомство с конкретной БД (если это Oracle, то помочь могут Скотт Урманн, Том Кайт, и Oracle Concept Manuals).
Какая БД — вопрос всецело решается производственной необходимостью.
← →
capkoh © ( 2008-03-26 13:10 ) [5]
> Простите, не удержался: а с женой у вас как? Тоже по расписанию
> поминутному? 🙂
Да ничего. Жены у меня нет, и в ближайшее время не предвидится.
Мне ещё месяца два-три быть студентом, к слову. Тут, знаете, полезно план составлять и его придерживаться.
Почему вы решили, что она у меня есть? 🙂
Но вопрос не в этом.
Если есть ещё у кого-то подобные вопросы, то задавайте скорее. Чем быстрее они кончатся, тем быстрее начнутся полезные посты, я надеюсь.
Заранее спасибо за содержательные ответы.
← →
Игорь Шевченко © ( 2008-03-26 13:16 ) [6]
Купить две книжки: Мартина Грубера по SQL и Джо Селко — SQL для профессионалов. Прочитать их обе. Осмыслить. После этого на уровень «Для начинающих» вполне можно претендовать.
← →
Ega23 © ( 2008-03-26 13:19 ) [7]
Практика, практика и ещё раз практика.
← →
Reindeer Moss Eater © ( 2008-03-26 13:30 ) [8]
Примерно одна минута и ты уже начинающий.
← →
Правильный_Вася ( 2008-03-26 13:39 ) [9]
> Примерно одна минута и ты уже начинающий.
а дальше — начавший, продолжающий, продолживший и т.п.
← →
Sergey13 © ( 2008-03-26 13:50 ) [10]
Предлагаю, по итогам дискуссии, присвоить звание «начинающего» автору вопроса.
😎
← →
Kolan © ( 2008-03-26 13:58 ) [11]
> www.sql-ex.ru
+1
← →
DrPass © ( 2008-03-26 14:01 ) [12]
> за какое время можно изучить SQL в такой степени, чтобы
> можно было претендовать на звание «начинающий»? Положим,
> что я буду уделять этому занятию ровно два часа в день
> (только будни).
Скажи, какой у тебя IQ?
← →
Anatoly Podgoretsky © ( 2008-03-26 15:19 ) [13]
> capkoh (26.03.2008 12:45:00) [0]
А SQL это что, только составление запросов или больше. Запросы можно освоить от пары дней до недели.
← →
ditrix © ( 2008-03-26 15:30 ) [14]
>>за какое время можно изучить SQL
ни за какое.
образование не есть результат. образование — есть процесс.
← →
capkoh © ( 2008-03-26 16:36 ) [15]
> Скажи, какой у тебя IQ?
Это сказано иронично, подозреваю?
В таком случае, если вы оцениваете все умственные способности человека единственным показателем IQ, то дайте мне ссылку на тест IQ, результатам которого вы доверяете. Я его пройду.
> образование не есть результат. образование — есть процесс.
Согласен. Но во всех вакансиях, которые я видел, требуется «опыт работы с SQL от года» или подобное. Конечно, мне интересно, где я (ничего не зная на данный момент про SQL) этот опыт могу получить. Понятно также, что никто меня такого на работу брать не будет. Кому выгодно обучать с нуля? Вот именно получение базовых знаний мне сейчас наиболее интересно (книги, курсы). За www.sql-ex.ru спасибо.
Если кто-то хочет высказаться на тему проблемы получения «опыта от года» в коммерческой организации, то создайте отдельную ветку (меня там не увидите, это всё и так понятно). Здесь об этом писать не нужно.
← →
Ega23 © ( 2008-03-26 17:28 ) [16]
> Вот именно получение базовых знаний мне сейчас наиболее
> интересно
Если серьезно, то так:
если у тебя нет проблем с дискретной математикой (а точнее — с логикой, т.е. прекрасно представляешь, что такое ((A and B) or C), где A, B и С — некие множества), то разобраться самостоятельно во всем этом деле можно за пару дней.
Если рядом присутствует тот, кто тебе может это «на пальцах» объяснить, то за пару часов (мне в своё время шеф аккурат так и объяснил, после чего я тут же зачет пошёл сдавать).
Сложного в SQL нифига нет.
А вот дальше начинается голая практика. И тут тебе уже никто не поможет, практический опыт накапливается долго.
← →
DrPass © ( 2008-03-26 18:12 ) [17]
> > Скажи, какой у тебя IQ?
>
> Это сказано иронично, подозреваю?
> В таком случае, если вы оцениваете все умственные способности
> человека единственным показателем IQ, то дайте мне ссылку
> на тест IQ, результатам которого вы доверяете. Я его пройду.
>
Иронично, конечно. Но смысл ты уловил — ничего не зная о твоих умственных способностях и подготовке, невозможно хотя бы примерно оценить, сколько тебе времени потребуется на изучение SQL
← →
capkoh © ( 2008-03-26 20:52 ) [18]
Я спрашивал об изучении азов SQL (в этом можно убедиться, посмотрев первый пост). Думаю, что на это у всех уходит примерно равное время.
> [16] Ega23 © (26.03.08 17:28)
Спасибо.
← →
ferr ( 2008-03-26 20:59 ) [19]
фтыкаешь проводи и говоришь: я знаю кун-фу. примерно так..
← →
Anatoly Podgoretsky © ( 2008-03-26 21:53 ) [20]
> capkoh (26.03.2008 20:52:18) [18]
На азы нужно всего несколько часов, если конечно знать, что азы, а что нет.
Select * From tbl
Вот на это на понимание надо несколько секунд без объяснений и книге
И вообще язык очень простой, для работы с данными всего четыре команды
SELECT, UPDATE, INSERT, DELETE
← →
Johnmen © ( 2008-03-26 22:06 ) [21]
> Думаю, что на это у всех уходит примерно равное время.
Ошибочно думаешь.
Некоторые вообще не могут изучить 2*2 пожизненно. Что наглядно демонстрирует конференция «Начинающим».
← →
ferr ( 2008-03-26 22:28 ) [22]
> Select * From tbl
звёздочка маст дай
← →
Johnmen © ( 2008-03-26 22:36 ) [23]
> ferr (26.03.08 22:28) [22]
> > Select * From tbl
> звёздочка маст дай
Зачем так грубо?
← →
ferr ( 2008-03-26 22:41 ) [24]
> Зачем так грубо?
Так это вселенское зло и корень всех бед. Она вообще ну никак не стыкуюется с реляционной алгеброй, добавлена для линтяев.. почти имхо.
← →
Palladin © ( 2008-03-26 22:42 ) [25]
> ferr (26.03.08 22:28) [22]
угу и придумали ее идиоты. и мудрый ferr сейчас расскажет почему они были неправы.
← →
Anatoly Podgoretsky © ( 2008-03-26 23:08 ) [26]
> Palladin (26.03.2008 22:42:25) [25]
О чем речь, фирма IBM изобрела SQL для рядовых непрограммирующих пользователей и как же она ошиблась.
← →
Palladin © ( 2008-03-26 23:41 ) [27]
> Anatoly Podgoretsky ©
во во. а если быть точнее для экономистов аналитиков. что бы они могли почти как на нормальном английском запросить данные из хранилища.
но язык запросов очень понравился всем 🙂 осрбонно программистам и получил дальнейшее развитие.
← →
Ega23 © ( 2008-03-27 00:39 ) [28]
> Некоторые вообще не могут изучить 2*2 пожизненно.
Зависит от системы счисления.
Вот конкретнос ейчас я пьян, и чё0та не могу все комьинациии расписать. Но они отличны от 4.
← →
Petr V. Abramov © ( 2008-03-27 02:05 ) [29]
> добавлена для линтяев.. почти имхо.
> ferr (26.03.08 22:41) [24]
для админов ушедших годов, когда не было восхитительных пакетов типа Erwin, где все в графическом виде со связями. Но дураки, сместо того, чтоб ждать, когда загрузится смема и потом выискивать, просто пишут select * и знают поля 🙂
← →
Petr V. Abramov © ( 2008-03-27 02:18 ) [30]
> Anatoly Podgoretsky © (26.03.08 23:08) [26]
>
> О чем речь, фирма IBM изобрела SQL для рядовых непрограммирующих
> пользователей и как же она ошиблась.
когда фирма изобрела, человека, неспособного написать sql-запрос, к компу не подпускали 🙂
Компы были для программистов, не для юзеров, хотя их и использовали в мирных целях.
счас следующая попытка научить комп выдавать инфу по запросу на человеческом языке, тоже неудачная
http://www.yandex.ru/yandsearch?text=%D0%BB%D1%8E%D0%B1%D0%BE%D0%B2%D1%8C+%D0%B4%D0%B5%D0%B2%D1%83%D1%88%D0%BA%D0%B0+%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%BE
← →
Смирнов ( 2008-03-27 11:00 ) [31]
> И вообще язык очень простой, для работы с данными всего
> четыре команды
>
> SELECT, UPDATE, INSERT, DELETE
может быть даже 3 всего, т.к. update = delete + insert (исходя из того, что в триггерах есть deleted и inserted), возможно я ошибаюсь, но мне так преподавали.
← →
Palladin © ( 2008-03-27 11:05 ) [32]
> update = delete + insert
бред.
← →
Игорь Шевченко © ( 2008-03-27 11:06 ) [33]
Palladin © (27.03.08 11:05) [32]
Не всегда 🙂 Внутре оно по крайней мере часто работает именно так.
← →
Palladin © ( 2008-03-27 11:08 ) [34]
> Игорь Шевченко © (27.03.08 11:06) [33]
ужас. интересно, какие в этом выгоды.
← →
clickmaker © ( 2008-03-27 11:10 ) [35]
> [33] Игорь Шевченко © (27.03.08 11:06)
однако, практика показывает, что delete работает дольше, чем update.
← →
Palladin © ( 2008-03-27 11:11 ) [36]
Честно говоря, кроме как избавления от реализации функционала update, я выгоды в этом не вижу. То бишь выгода только для разработчиков получается.
← →
Ega23 © ( 2008-03-27 11:18 ) [37]
> однако, практика показывает, что delete работает дольше,
> чем update.
Частичная реиндексация?
Быстрее всего drop работает. 🙂
← →
clickmaker © ( 2008-03-27 11:19 ) [38]
> Быстрее всего drop работает
или truncate )
← →
Palladin © ( 2008-03-27 11:21 ) [39]
угу. к ним бы еще where прикрутить 🙂
← →
Игорь Шевченко © ( 2008-03-27 11:24 ) [40]
Palladin © (27.03.08 11:08) [34]
> интересно, какие в этом выгоды.
минус одна операция при реализации.
clickmaker © (27.03.08 11:10) [35]
> однако, практика показывает, что delete работает дольше,
> чем update.
Вполне разумно, данных для отката готовить больше
← →
Eraser © ( 2008-03-27 11:29 ) [41]
> Anatoly Podgoretsky © (26.03.08 21:53) [20]
> > capkoh (26.03.2008 20:52:18) [18]На азы нужно всего
> несколько часов, если конечно знать, что азы, а что нет.
> Select * From tbl
+1 для того, чтобы понять различные вариации SELECT * FROM WHERE особо напрягать мозг не надо, imho. если это знаешь, ну а так же вставку, обновление, удаление.. то считай, что начинающий..
а следующий этап это уже внешние объединения, группировки и т.д.
← →
clickmaker © ( 2008-03-27 11:33 ) [42]
> внешние объединения, группировки
Тамбовские, Солнцевские. )
На самом деле, основной гемор при работе с SQL — оптимизация запросов по скорости
Если смотрели фильм «Никола Паганини» — так там он говорит «истинная гениальность — играть не на одной струне, а вообще без струн»
Так вот, основной парадокс при работе с базами в том, что нужно стараться как можно реже к этой самой базе обращаться )
← →
Eraser © ( 2008-03-27 11:35 ) [43]
> clickmaker © (27.03.08 11:33) [42]
эт точно, кэширование рулит )
← →
Sergey13 © ( 2008-03-27 11:41 ) [44]
> [40] Игорь Шевченко © (27.03.08 11:24)
> > однако, практика показывает, что delete работает дольше, чем update.
>
> Вполне разумно, данных для отката готовить больше
Но тогда, по этой логике на delete + insert должно готовиться еще больше, пусть и не на много. И апдейт должен бы работать медленнее.
← →
Игорь Шевченко © ( 2008-03-27 11:53 ) [45]
Sergey13 © (27.03.08 11:41) [44]
Я извиняюсь, я имел в виду реализацию уже после того, как данные отката подготовлены. Мои слова не стоит понимать, как «СУБД при получении запроса UPDATE самостоятельно строит из него запросы DELETE и INSERT и последовательно их выполняет, как если бы они пришли от клиента».
← →
Sergey13 © ( 2008-03-27 11:56 ) [46]
> [45] Игорь Шевченко © (27.03.08 11:53)
Ок.
← →
capkoh © ( 2008-03-27 15:37 ) [47]
Благодарю всех откликнувшихся, теперь я понял с чего нужно начать изучение SQL и к чему стремиться при формировании запросов. А дальше, думаю, втянусь постепенно.
← →
Simpson ( 2008-03-27 20:19 ) [48]
LOL Он начнет изучение SQL с Fortran»a. Возьми Груббера прочитай станеш начинающим, базу для самостоятельных заданий используй существующую и уже запущенную (для Дельфи всегда идет Интербэйз(упрощено для понимания)). Просто проделай все примеры из книги и можеш смело говорить что в SQL ты начинающий.
← →
MsGuns © ( 2008-03-27 21:01 ) [49]
На основе почти трехлетней плотной работы с пользователями самой разной квалификации и опыта могу сказать, что :
Самостоятельно составлять простейшие запросы на выборку из одной таблицы с перечнем выбираемых полей
с использованием Where средний пользователь может через день-два.
Выборка из более чем одной таблицы (связки — join) — неделя
Выборка с группировками (агрегатами) и агрегатными условиями (having) — две-три недели
Составление вложенных запросов — две-три недели
Составление кросс-выборок — от нескольких месяцев или никогда
Понимание и проектирование бизнес-логики — никогда.
Оптимизация запросов, анализ планов и т.д. — никогда
Все особенности конкретного скл-сервера слабо влияют на эти сроки за исключениес случаев когда одному пользователю приходится писать запросы к разным серверам поочередно (как пример, очень разные Interbase и MSSQL)
← →
Petr V. Abramov © ( 2008-03-27 21:05 ) [50]
> MsGuns © (27.03.08 21:01) [49]
когда в вакансиях пишут «SQL от года», обычно как раз имеют в виду
> Понимание и проектирование бизнес-логики — никогда.
> Оптимизация запросов, анализ планов и т.д. — никогда
За сколько можно выучить sql с нуля

G eekBrains
Длительность: 20 уроков
Уровень: с нуля
| Узнать больше |

Длительность: 21,5 часов
Уровень: с нуля
| Узнать больше |

Длительность : 4 месяца
Уровень: с нуля
| Узнать больше |
С чего начать изучение SQL-программирования
Для начала изучения SQL необходимо больше узнать о базе данных, так как язык создан конкретно для работы с ней. Базой данных можно назвать логически связанные между собой массивы, которые находятся в одном месте. В качестве примера можно рассмотреть график или таблицу, содержащую различного рода информацию. Существуют и специальные системы управления базами данных – с помощью них можно активно работать над структурированием информации. Язык SQL и является частью данной системы, он выступает в качестве инструмента, с помощью которого можно управлять базой данных.
В отличие от других языков программирования, содержащих определенные функции, в SQL нет таких возможностей, активно использующихся в работе. Он направлен на обработку запросов, необходимых человеку для анализа. Программист или администратор базы данных составляет «тело» запроса (его суть), чтобы изменить или извлечь необходимую ему информацию. Дальше в работу включается система управления базами данных и начинает разбираться в намеченной задаче. Когда нужно обработать огромный массив информации для получения детального расчета с точными цифрами, SQL — подходящий инструмент.
Человеку, решившему изучать SQL, важно понимать, что на нем не получится в привычном понятии программировать. Данный язык создан для получения доступа к базе данных и управления ими. Первым шагом на пути к освоению его инструментов может стать обучение на курсах вкупе со специальной литературой. На этом этапе важное понять основы, научиться писать код (отправлять команды), увидеть, как происходит работа с базами данных. Полезно будет также профессиональным сообществам: существует много форумов и групп в социальных сетях, где профи рассказывают об особенностях работы с SQL. Важно также ознакомиться не с одной базой данных, а с несколькими (Microsoft SQL Server, MySQL), изучить их подробнее для дальнейшей работы.
Популярные языки программирования

JavaScript
Длительность : от 41,5 часов
Зарплата: от 80 000 рублей
| Узнать больше |
Длительность: от 38,5 часов
Зарплата: от 60 000 рублей
| Узнать больше |
Как изучить 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