Поколение Python 🐍
43.2K subscribers
1.62K photos
15 videos
5 files
676 links
Серия курсов по языку Python от BEEGEEK 🐝.

Сайт: pygen.ru
Мерч: shop.pygen.ru
Чат: @pygen_ru_comments
Бот: @pygen_ru_bot
Поддержка: @pygen_ru_support

Перечень РКН: https://www.gosuslugi.ru/snet/673650d605391b3bfb5541c0
Download Telegram
Друзья, Новый год — долгожданный и радостный праздник для каждого. 🎄 Спасибо за то, что развиваетесь вместе с нами. Мы будем рады вашим успехам в программировании в Новом году! 🏆

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

Промокод HOHOHO дает скидку 🚩🚩🚩 при покупке всех курсов через наш официальный сайт.

А если вы хотите получить промокод на бо́льшую скидку, предлагаем напрячь 🧠 и решить задачу. Мы знаем, вы любите это дело!

Задача. Санта очень любит играть с числами. Он задумал посчитать сумму всех цифр в числах от 1 до 10**n (10 в степени n). При n = 2 он легко посчитал нужную сумму: 1 + 2 + 3 + … + (9 + 9) + (1 + 0 + 0) = 901.

Скидка 🚩🚩🚩: решите задачу Санты для n = 8, то есть посчитайте сумму цифр во всех числах от 1 до 100 000 000.

Скидка 🚩🚩🚩: решите задачу Санты для n = 18, то есть посчитайте сумму цифр во всех числах от 1 до 1 000 000 000 000 000 000.

Ответы на задачи и являются промокодами на скидку. 🚩

🌚🌚🌚🌚Покупайте курсы сейчас, не ждите ежегодного повышения цен. Доступ к курсам не ограничен по времени: вы можете купить их сейчас, а пройти — когда вам будет удобно. Количество промокодов ограничено

Это последняя большая распродажа — не пропустите! 🎅

UPD: ❗️все промокоды на скидки закончились❗️

#распродажа #скидка #поколение #профи #ооп #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥1713😁5🎉4👀4💋3😍2🎄2🥰1🆒1
Друзья, спешим сообщить, что сегодня открылись все модули нашего нового курса "Поколение Python": базы данных и SQL для начинающих. 🖥

Пройдя курс, вы научитесь:

✔️ извлекать информацию из таблиц с помощью SQL-запросов
✔️ добавлять в таблицы новые данные
✔️ удалять и изменять данные в таблицах
✔️ фильтровать данные с помощью WHERE и HAVING
✔️ выполнять агрегацию данных с помощью GROUP BY
✔️ соединять таблицы с помощью JOIN
✔️ объединять таблицы с помощью UNION
✔️ работать с функциями для обработки чисел, дат и текста
✔️ вычислять среднее, минимальное и максимальное значения с помощью функций AVG, MIN, MAX
✔️ использовать вложенные SQL-запросы
✔️ использовать общие табличные выражения CTE
✔️ создавать пользовательские функции и хранимые процедуры

⭐️ Мы добавили новые уроки на рекурсивные CTE, чтобы вам было нескучно. В новых уроках есть как несложные задачи по типу вычисления факториала, так и весьма интересные — на обработку деревьев.

⭐️ Мы добавили два mock-собеседования (экзамен на время), чтобы вы могли проверить свои знания по SQL.

‼️‼️‼️❗️ Многие наши студенты попросили добавить еще одну важную тему в этот курс, и мы решили это сделать. В ближайшем будущем в курсе появится новый модуль, который будет особенно полезен при прохождении собеседований. Как думаете, о чем будут новые уроки? Пишите в комментариях.

Купить наши курсы можно на нашем официальном сайте.
Все актуальные скидки доступны на странице.

#sql #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥99👍2623🗿5👾5🤯4😁2💋1👨‍💻111
Друзья, в честь праздника мужества мы принесли вам скидки на наши платные курсы на 🚩🚩🚩 и 🚩🚩🚩.

Чтобы получить промокоды на скидку, предлагаем напрячь 🧠 и решить задачи. Мы знаем, вы любите это дело!

💡Задача на скидку 23%. Два числа, не оканчивающиеся на ноль, при умножении дают миллион, то есть 10⁶. Чему равна сумма этих чисел?

💡Задача на скидку 32%. На стандартной шахматной доске размером 8×8 есть 204 квадрата различного размера: 1×1, 2×2, ..., 8×8. А сколько всего квадратов на шахматной доске размером 10⁶×10⁶?

Ответ на задачу и является промокодом на скидку. 🚩

🌚🌚🌚🌚Покупайте курсы сейчас, не ждите повышения цен, которое будет совсем скоро. Доступ к курсам не ограничен по времени: вы можете купить их сейчас, а пройти — когда вам будет удобно. Промокоды действуют до 29 февраля.

Промокоды действуют на нашем официальном сайте.

🏆 Если вдруг вы уже купили все наши курсы, то просто порешайте задачи. Они интересные!

#задача #скидка #профи #ооп #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥63👍26187🤔7👏3👨‍💻3👀21🎉1🆒1
Друзья, многие просили добавить оконные функции в новый курс по SQL. И мы прислушались к вашей просьбе! 😎

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

SQL нужен всем. 🔥 Огромное количество задач в нашем курсе делает его полезным даже для тех, кто уже знаком с этой темой.

‼️‼️‼️❗️ Покупайте курс до ежегодного повышения цен, которое будет уже совсем скоро!

⭐️ Решите задачу и получите промокод на скидку 30%.

Задача. Назовем число строго возрастающим, если каждая его цифра при чтении слева направо больше предыдущей. Например, числа 29, 125, 3489, 23789 — возрастающие, в то время как числа 122, 1435, 65397 — нет. Сколько существует пятизначных строго возрастающих чисел?

Ответ на задачу и является промокодом, который действует при покупке любого курса на нашем сайте. Скидка действует два дня, до 10 апреля. Успевайте купить курсы по выгодной цене! ❤️

#поколениеpython #sql #интеллектуальнаяраспродажа #скидка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥103👍4119👾54🤩2🆒2🤯1💋1🤝11
Друзья, нам написали из Банка России. 😱 Хотят рассмотреть наших студентов на позицию бизнес-аналитика со знанием Python и SQL.

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

Обязанности:

🟢 разработка и поддержка аналитических отчетов на Python, в том числе разработка алгоритмов построения и выводных форм
🟢интеграция с различными источниками данных, такими как базы данных, API, файлы
🟢 анализ и обработка данных, подготовка, очистка и нормализация данных
🟢 разработка витрин данных для генерации отчетов
🟢 участие в разработке функциональных требований для развития целевых программных продуктов Банка России

Требования:

✔️ знание Python, основ работы с базами данных и SQL
✔️ навыки разработки аналитических отчетов и визуализации данных
✔️ умение работать с большими объемами данных
✔️ умение работать в команде и соблюдать сроки выполнения задач
✔️ высшее образование: информатика и вычислительная техника, физико-математические науки, автоматика и управление, экономика и управление

Работа в Москве, м. Октябрьская.

⭐️ Опыт работы в данной сфере не требуется, работодатель поможет с дообучением.

📌 Если вас заинтересовала эта работа, отправляйте анкету по адресу электронной почты svc_it_ddipdfo@cbr.ru.

Ставьте ❤️ посту, пусть специалист найдется среди наших студентов.

#вакансия #поколениеpython #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
259🔥43👍12❤‍🔥6🤝5😱42🥰2👀2😎2💯1
Друзья, мы продолжаем улучшать наши курсы!

На этот раз расскажем об обновлениях в курсе "Базы данных и SQL для начинающих". 🖥

ЧТО ПОМЕНЯЛОСЬ:

1️⃣ Уроки по фильтрации данных
Улучшили и актуализировали теоретический материал.

2️⃣ Урок по вычисляемым полям
Улучшили теоретический материал.

3️⃣ Урок по условному оператору CASE
Улучшили теоретический материал и добавили больше примеров использования оператора.

4️⃣ Урок по триггерам и представлениям
Добавили новые задачи. ⚡️

5️⃣ Урок по группировке данных
Улучшили теоретический материал.

6️⃣ Урок по внешнему соединению
Улучшили теоретический материал.

7️⃣ Урок по обновлению данных в таблицах
Улучшили теоретический материал.

8️⃣ Урок по добавлению данных в таблицы
Улучшили описание тестовых задач.

9️⃣ Урок по подзапросам
Добавили теорию про оператор EXISTS и тестовые вопросы по этой теме.

Ставь реакцию:

❤️ — если уже прошел курс для SQL
😎 — если проходишь или планируешь его пройти

📌 Хотим поблагодарить наших студентов за конструктивные предложения по доработке курсов! Благодаря вам мы делаем курсы "Поколения" еще лучше.

#поколениеpython #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
😎18058🔥10👍77👨‍💻32😱2🆒2
Друзья, отличные новости! Мы дополнили и улучшили наш последний на сегодня курс "Базы данных и SQL для начинающих". 😎

🐝 ЧТО ИЗМЕНИЛОСЬ 🐝

1️⃣ добавили целый модуль по регулярным выражениям
2️⃣ добавили новый урок по индексам
3️⃣ внесли несколько улучшений в теорию и задачи

Улучшения курсов становятся возможны благодаря отзывам наших студентов. Спасибо за ваши идеи и предложения! 😍

📌 Напоминаем, что оставить отзыв на курс по SQL можно по ссылке. Это станет замечательным подарком для всей команды "Поколения"!

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

Оценка курса на Stepik — ⭐️⭐️⭐️⭐️⭐️. Очень гордимся нашей работой и вашим доверием! 💗

🔝🔝🔝Отдельное спасибо Михаилу Крыжановскому за обратную связь по курсу. Почитайте его развернутый отзыв. И кстати, подписывайтесь на канал Миши "Стать специалистом по машинному обучению", там много полезного!

‼️‼️‼️❗️ Промокод SQLMASTER (действует до 14 ноября) дает скидку 30% на покупку курса по SQL и базам данных через наш сайт pygen.ru.

Ставьте реакцию:

🔥 — если уже прошли или проходите курс по SQL
👀 — если планируете его пройти

#sql #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥73👀71👍17107😁1🤩1🌚1😎1
Друзья, а вот и она — последняя распродажа уходящего года! 😍

🎁 Чтобы вам было легче врываться в новый год с новыми планами, даем скидку 🚩🚩🚩 на курсы для профессионалов, ООП и SQL.

Напоминаем важные подробности:

❄️ можно купить курс сейчас, а пройти — когда появится время
❄️ курсы можно дарить, это быстро и удобно
❄️ вложения в саморазвитие всегда окупаются 🔥

Спасибо за то, что учитесь и растете над собой вместе с нами! Мы будем рады вашим успехам в программировании в новом году! 🏆

💵💵💵💵 действует по промокоду НОВЫЙГОД при покупке курсов через наш официальный сайт. Промокод активен до конца года. 😉

Ставьте реакцию:

❤️ — если ждали последнюю распродажу
😎 — если уже купили все курсы

#распродажа #скидка #поколение #профи #ооп #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
54😎3830🔥10👍64🆒2🤷‍♀1🥰1🏆1👨‍💻11
Друзья, продолжаем радовать вас подарками ко дню рождения Python! 😎

Поскольку языку программирования Python в этом году исполняется 34 года, мы делаем скидку 34% при покупке наших платных курсов:

🔘 курс для профессионалов
🔘 курс по ООП
🔘 курс по базам данных и SQL

😮 Вместо 6900 рублей цена за курс составит всего 4500 рублей!

🚨🚨⚠️🚨☝️ Чтобы получить скидку, купите курс через наш официальный сайт и введите промокод PYTHON34.

☝️☝️☝️☝️ Промокод можно активировать только 0️⃣ раз, поэтому не откладывайте покупку! Если у вас не получилось активировать промокод, значит, активации уже закончились. 😥

Ставьте реакцию:

🔥 — если планируете отметить день рождения Python
👀 — если ваш способ отметить — пройти пару уроков в курсе

#поколениеpython #скидки #акция #ооп #sql #профи
Please open Telegram to view this post
VIEW IN TELEGRAM
24👀50🔥157🙊431👍1👏1🤩1🆒11
Друзья, сегодня поговорим о способах извлечения данных из баз данных. 😉

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

🔖 За все задачи, связанные с извлечением данных, отвечает всего один оператор — SELECT.

Чтобы при помощи оператора SELECT извлечь данные из базы, нужно указать как минимум две вещи: что именно нужно извлечь и откуда.

📎 Простейший запрос, который извлекает все записи одного поля таблицы, схематично можно представить так:

SELECT <имя поля>
FROM <имя таблицы>;

Имя извлекаемого поля указывается после оператора SELECT, а оператор FROM указывает на таблицу, из которой извлекается поле.

📎 Для извлечения нескольких полей после оператора SELECT необходимо через запятую перечислить их имена. При этом поля возвращаются в том порядке, в котором они указаны:

SELECT <имя первого поля>, <имя второго поля>, ...
FROM <имя таблицы>;

📎 Помимо извлечения конкретных полей с помощью оператора SELECT можно запросить все поля, не указывая каждое из них. Для этого вместо имен полей следует указать специальный групповой символ *:

SELECT *
FROM <имя таблицы>;

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

📎 При извлечении полей возвращаются все значения, содержащиеся в этих полях. Если извлекаемое поле содержит повторяющиеся значения, в результирующей таблице они также будут повторяться. Для извлечения уникальных записей используется оператор DISTINCT, который указывается перед именем поля:

SELECT DISTINCT <имя поля>
FROM <имя таблицы>;

Если извлекаются несколько полей, то оператор DISTINCT применяется сразу ко всем перечисленным полям.

Ставьте реакцию:

❤️ — если знали способы извлечения данных из баз данных
👀 — если слышите о них впервые

#поколениеpython #базыданных #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
151👀64👍1075👨‍💻3🆒3🙈2🏆1
Друзья, сегодня поговорим об операторе ORDER BY в SQL.

❤️ Нередко при извлечении данных возникает необходимость получить их в определенном упорядоченном виде. В SQL для сортировки данных используется оператор ORDER BY.

❤️ Чтобы извлечь данные из базы данных в отсортированном виде, необходимо после операторов SELECT и FROM указать оператор ORDER BY и название одного или нескольких полей, по которым необходимо осуществить сортировку.

Схематично запрос с сортировкой извлекаемых данных можно представить так:

SELECT <поле 1>, <поле 2>, ...
FROM <имя таблицы>
ORDER BY <поле 1>, <поле 2>, ...

Сортировка может выполняться и по тем полям, которые не попадают в итоговую таблицу:

SELECT <поле 1>, <поле 2>
FROM <имя таблицы>
ORDER BY <поле 3>

❤️ По умолчанию оператор ORDER BY выполняет сортировку по возрастанию. Чтобы осуществить сортировку по убыванию, необходимо после имени поля, по которому сортируются данные, указать ключевое слово DESC:

SELECT <поле 1>, <поле 2>
FROM <имя таблицы>
ORDER BY <поле 3> DESC

Для сортировки по возрастанию предусмотрено ключевое слово ASC, использовать которое необязательно.

❤️ Вместо имен полей после оператора ORDER BY можно указывать их порядковые номера. Однако сортировка таким методом возможна только по тем полям, которые присутствуют в итоговой таблице. Нумерация полей начинается с единицы:

SELECT <поле 1>, <поле 2>
FROM <имя таблицы>
ORDER BY 1, 2

🤑🤑🤑🤑 В честь 3000 студентов и 300 отзывов на нашем курсе по SQL и базам данных дарим скидку 33% на него по промокоду SQL при покупке через сайт "Поколения". Стоимость составит 4 623 рубля вместо 6900 рублей.

Ставьте реакцию:

🔥 — если знали об операторе ORDER BY в SQL
👀 — если слышите о нем впервые

#поколениеpython #базыданных #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥140👀35🥰7👍65🍾2🙈21👏1💯11
Друзья, сегодня поговорим об агрегатных функциях в SQL. 😌

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

❤️ Агрегатные функции — это функции, которые выполняют вычисления на наборе значений и возвращают одиночное значение. Наиболее часто используются следующие агрегатные функции:

🔠AVG() — вычисляет среднее арифметическое числовых значений поля

🔠COUNT() — вычисляет количество записей в таблице или количество значений в поле

🔠MIN() и MAX() — выполняют поиск минимального и максимального значений поля соответственно

🔠SUM() — вычисляет сумму числовых значений поля

🔠GROUP_CONCAT() — используется для перечисления значений поля через запятую

❤️ В общем виде запрос с применением агрегатной функции можно представить следующим образом:

SELECT функция(<имя поля>) AS <имя итогового поля>
FROM <имя таблицы>

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

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

Ставьте реакцию:

🔥 — если знали об агрегатных функциях
👀 — если слышите о них впервые

#поколениеpython #базыданных #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥106👀30👍7733😱1👾1
Друзья, сегодня поговорим о группировке данных в SQL. 😌

📎 Группа в SQL — это набор записей, которые определенным образом связаны друг с другом. Создание групп выполняется с помощью оператора GROUP BY, после которого указывается название поля, определяющего принцип группировки. Так, две записи попадают в одну группу, если их значения поля, указанного после оператора GROUP BY, совпадают.

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

SELECT artist, COUNT(*) AS num_of_songs
FROM Songs
GROUP BY artist;

Часть запроса GROUP BY artist говорит о том, что записи при извлечении должны быть сгруппированы по полю artist, в результате чего в части запроса SELECT artist, COUNT(*) AS num_of_songs выполняется работа не со всеми записями из таблицы, а с определенной группой записей. Таким образом, для каждой группы определяются значения полей artist и num_of_songs, первое из которых содержит название исполнителя, второе — количество записей в группе, что соответствует количеству песен исполнителя.

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

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

SELECT artist, album,
COUNT(*) AS num_of_songs
FROM Songs
GROUP BY artist, album;

📎 При использовании группировки для извлечения доступен ограниченный объем данных:

🟢поля группировки
🟢результаты агрегатных функций
🟢константы

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

Ставьте реакцию:

🔥 — если знали об операторе GROUP BY
👀 — если слышите о нем впервые

#поколениеpython #базыданных #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥99👀22👍877💯33😁1😱1💋1👾1
Друзья, у нас отличные новости: запускаем весеннюю распродажу платных курсов! 😍

💚До 2 июня дарим скидку более 2000 рублей на любой платный курс!

➡️ Стоимость курса со скидкой — 4790 рублей вместо 6900.

🌟 Помните, что курс можно купить сейчас, а пройти в любое удобное для вас время (например, в летнем отпуске 😄).

⚠️ Кроме того, мы сделали дополнительную скидку на пакеты курсов, которые доступны по ссылке. Теперь вы сами можете выбрать курсы, которые купите пакетом! Доступны пакеты из 2, 3 и 4 курсов сразу.

☝️☝️☝️☝️ Со скидками весенней распродажи не суммируются другие наши скидки (для студентов, для учителей и так далее). Скидка по распродаже — максимальная из доступных.

💵💵💵💵 действует при покупке курсов через наш официальный сайт. 😉

Ставьте реакцию:

🔥 — если планируете учиться летом
❤️ — если будете отдыхать
👀 — если придется работать

#поколениеpython #акция #распродажа #ооп #профи #sql #алгоритмы
Please open Telegram to view this post
VIEW IN TELEGRAM
55🔥72👀1813👍33💋2❤‍🔥1🥰1👏11
Друзья, сегодня поговорим о первичных и внешних ключах в реляционных базах данных. 🖥

✔️ Первичный ключ (Primary Key) — это уникальный идентификатор записи в таблице. Первичный ключ, состоящий из одного поля, называют простым, а из нескольких полей — составным.

Также первичные ключи подразделяют на суррогатные и естественные:

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

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

✔️ Внешний ключ (Foreign Key) — это столбец или набор столбцов в одной таблице, который ссылается на первичный ключ в другой таблице. Внешний ключ используется для установления связей между таблицами.

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

☝️☝️☝️☝️ Подробно о ключах рассказываем в курсе "Базы данных и SQL". Купить курс можно на нашем официальном сайте по ссылке.

Ставьте реакцию:


🔥 — если знали о первичных и внешних ключах
👀 — если слышите эти понятия впервые

#поколениеpython #базыданных #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥72👀42134❤‍🔥32👏1🫡1👾1
Друзья, сегодня поговорим о видах связей между таблицами в реляционных базах данных. 😉

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

🤩Выделяют три вида связей между таблицами:

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

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

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

🤩Выбор типа связи между таблицами зависит от структуры данных и бизнес-логики. Правильное использование связей обеспечивает целостность данных и упрощает запросы к базе данных.

Подробно о связях между таблицами рассказываем в курсе "Базы данных и SQL". Купить курс можно на нашем официальном сайте по ссылке.

Ставьте реакцию:

🔥 — если знали о видах связей между таблицами
👀 — если слышите о них впервые

#поколениеpython #базыданных #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥76👀21👨‍💻8622👏1👾1
Друзья, сегодня поговорим про объединение результатов запросов в языке SQL. 😌

❤️ Одной из возможностей SQL является объединение нескольких результатов запросов в один результирующий набор. Для этого используется оператор UNION. Он указывается между запросами, результаты которых нужно объединить.

Схематично объединение двух результатов запросов можно представить следующим образом:

SELECT <имя поля 1>, <имя поля 2>
FROM <имя таблицы 1>

UNION

SELECT <имя поля 1>, <имя поля 2>
FROM <имя таблицы 2>

😉 Запрос, который объединяет результаты выполнения нескольких запросов, называют комбинированным.

❤️ Чтобы объединить результаты произвольного количества запросов, а не только двух, необходимо указать оператор UNION между всеми запросами, результаты которых требуют объединения.

❤️ При использовании оператора UNION объединяемые результаты запросов обязательно должны иметь одинаковое количество полей, в противном случае произойдет ошибка.

❤️ Названия полей в объединяемых результатах запросов необязательно должны быть одинаковыми, поскольку в качестве итоговых названий полей используются названия самого первого результата запроса.

❤️ Типы значений в соответствующих полях объединяемых результатов запросов могут быть различными, однако объединять рекомендуется только однотипные результаты.

🚨🚨⚠️🚨☝️ Подробно об операторе UNION рассказываем в курсе "Базы данных и SQL". Купить курс можно на нашем официальном сайте по ссылке.

Ставьте реакцию:

🔥 — если знали об операторе UNION в SQL
👀 — если слышите о нем впервые

#поколениеpython #базыданных #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥58👀32113👍1
Друзья, принесли вам новое слово недели! Сегодня поговорим про индексы баз данных. 😉

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

Существует два основных типа индексов.

Кластеризованный индекс:

🌱хранит записи таблицы, отсортированные по их ключевым значениям (это поля таблицы, включенные в определение индекса — как правило, первичный ключ). Существует только один кластеризованный индекс для каждой таблицы, так как записи могут храниться в единственном порядке

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

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

Некластеризованный индекс:

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

🔵для дополнительной эффективности хранит значения индексированного поля в упорядоченном виде

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

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

🚨🚨⚠️🚨☝️ Подробно об индексах рассказываем в курсе "Базы данных и SQL". Купить курс можно на нашем официальном сайте по ссылке.

Ставьте реакцию:

🔥 — если знали, про индексы
👀 — если слышите о них впервые

🔝🔝🔝Сохраняйте пост в избранное, точно пригодится! ✍🏻

#словонедели #sql #индексы
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥56👀20❤‍🔥76👨‍💻3222👻11
Друзья, сегодня поговорим о видах соединений таблиц в SQL.

📎 Соединение таблиц (JOIN) — это операция объединения двух таблиц в одну таблицу согласно определенному правилу. Таблица, получаемая в результате соединения, включает все поля соединяемых таблиц, что значительно упрощает работу с исходными данными, поскольку вся необходимая информация автоматически собирается вместе и предоставляется в виде одной таблицы.

📎 Существуют следующие виды соединений:

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

Внутреннее соединение выполняется с помощью оператора INNER JOIN. Общий синтаксис имеет следующий вид:

<первая таблица> INNER JOIN <вторая таблица> ON <условие соединения>

✔️ Внешнее соединение бывает двух видов:

🟢Левое внешнее соединение — отбираются все пары записей двух таблиц, для которых выполняется условие соединения, а также все оставшиеся записи из левой таблицы, для которых пара не нашлась.

Левое внешнее соединение выполняется с помощью оператора LEFT JOIN. Общий синтаксис имеет следующий вид:

<первая таблица> LEFT JOIN <вторая таблица> ON <условие соединения>

🟢Правое внешнее соединение — отбираются все пары записей двух таблиц, для которых выполняется условие соединения, а также все оставшиеся записи из правой таблицы, для которых пара не нашлась.

Правое внешнее соединение выполняется с помощью оператора RIGHT JOIN. Общий синтаксис имеет следующий вид:

<первая таблица> RIGHT JOIN <вторая таблица> ON <условие соединения>

При внешнем соединении записям без пары в соответствие ставятся значения NULL.

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

Перекрестное соединение выполняется с помощью оператора CROSS JOIN. Общий синтаксис имеет следующий вид:

<первая таблица> CROSS JOIN <вторая таблица>

☝️☝️☝️☝️ Подробно о соединении таблиц рассказываем в курсе "Базы данных и SQL". Купить курс можно на нашем официальном сайте по ссылке.

Ставьте реакцию:

🔥 — если знали о видах соединений таблиц
👀 — если слышите о них впервые

#поколениеpython #базыданных #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥73👀3485221
Друзья, сегодня поговорим о представлениях в языке SQL. 😌

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

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

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

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

📌 Для создания представлений используется оператор CREATE VIEW, синтаксис которого имеет следующий вид:

CREATE VIEW <имя представления> AS
<извлекающий запрос>

📌 Запрос, который используется в представлении, может быть изменен. Для этого используется оператор ALTER VIEW, синтаксис которого имеет следующий вид:

ALTER VIEW <имя представления> AS
<новый извлекающий запрос>

📌 Представление может быть удалено. Для этого используется оператор DROP VIEW, синтаксис которого имеет следующий вид:

DROP VIEW <имя представления>

☝️☝️☝️☝️ Подробно о представлениях рассказываем в курсе "Базы данных и SQL". Купить курс можно на нашем официальном сайте по ссылке.

Ставьте реакцию:

🔥 — если знали о представлениях в SQL
👀 — если слышите о них впервые

#поколениеpython #базыданных #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
4👀67🔥4314332👍1👏1😁1🆒1