Гайды по БД и SQL
الذهاب إلى القناة على Telegram
Владелец, реклама – @Ak_Mihail Купить рекламу на бирже: https://telega.in/channels/learn_bd_sql/card
إظهار المزيد6 350
المشتركون
-324 ساعات
-97 أيام
-3930 أيام
أرشيف المشاركات
6 350
Использование SQL для анализа данных
SQL или язык структурированных запросов — это язык программирования, используемый для связи с базами данных. Это позволяет пользователям извлекать, манипулировать и управлять данными, хранящимися в системах управления реляционными базами данных (RDBMS). SQL — это мощный инструмент для анализа данных, поскольку он позволяет пользователям быстро и легко получать доступ к большим объемам данных, хранящихся в базе данных, и манипулировать ими. В этой статье мы рассмотрим основы использования SQL для анализа данных.
⤷ Ссылка на статью
Гайды по БД и SQL
6 350
Какая разница между TRUNCATE TABLE table_name и DELETE FROM table_name?
Ответ:
Фактически обе эти команды вызовут удаление всех строк из таблицы под названием table_name, но вот произойдет это совсем по-разному:
1. При вызове команды TRUNCATE таблица полностью сбрасывается и создается снова, в то время как команда DELETE удаляет каждую строку таблицы по отдельности. Из-за этого TRUNCATE отрабатывает значительно быстрее.
2. Как следствие первого пункта, команда TRUNCATE не вызывает срабатывание триггеров и правил внешних ключей, то есть, очищая таблицу таким способом, можно не бояться каскадного удаления или изменения данных в других таблицах.
3. В отличие от DELETE команда TRUNCATE не транзакционная. То есть, если в момент ее вызова, таблица table_name будет заблокирована какой-либо транзакцией — может возникнуть ошибка.
Гайды по БД и SQL
6 350
SQL — Индексы
Индексы SQL представляют собой специальные таблицы, которые поисковая система базы данных может использовать для ускорения поиска данных. Проще говоря, индекс является указателем на данные в таблице. Индекс в базе данных очень похож на содержание в конце книги.
⤷ Ссылка на статью
Гайды по БД и SQL
6 350
Шпаргалка по всем базовым командам SQL с пояснением и примерами
Гайды по БД и SQL
6 350
DB Fiddle — онлайн-площадка для работы с базами данных SQL
Её можно использовать как своеобразную песочницу для тестирования, отладки и обмена фрагментами SQL. Есть поддержка разных версий MySQL, PostgreSQL и SQLite
Из интересного: к работе над базой можно подключить приятеля — делается это буквально в пару кликов
Гайды по БД и SQL
6 350
Почему не выполнится этот запрос?
SELECT
user_name,
YEAR(user_birth_date) AS year_of_birth
FROM
users
WHERE
year_of_birth = 2000
Ответ
Запрос не выполнится из-за обращения к псевдониму year_of_birth в выражении WHERE. Дело в том, что псевдонимы полей в SQL используются для форматирования данных уже полученных из базы. Поэтому их можно использовать только в выражениях, которые отвечают за оформление результата, таких как GROUP BY, ORDER BY и HAVING. В выражениях, отвечающих за получение данных, таких как WHERE, нужно использовать оригинальные имена полей.
Гайды по БД и SQL6 350
⚡️Сишарповец, апнуться — просто!
Начните на бесплатном вебинаре онлайн-курса «C# ASP.NET Core разработчик» — «ASP.NET: взаимодействие с источниками данных»: регистрация
На бесплатном занятии мы:
— познакомимся с видами баз данных;
— разберем, как работать с реляционными и нереляционными базами данных напрямую и через ORM.
🔥Экспертизой поделится Дмитрий Гурьянов — опытный Тимлид команды разработки CRM-решений на платформе .NET.
— Продолжить обучение после вебинара по спеццене можно на полном курсе, доступном также в рассрочку.
Нативная интеграция. Информация о продукте www.otus.ru
6 350
Как бы вы нашли вторую по величине зарплату в таблице на картинке сверху?
Ответ:
select * from employee
select max(e_salary) from employee where e_salary not in (select max(e_salary) from employee)
Гайды по БД и SQL6 350
Преобразование xml-поля в SQL
В данной публикации рассматривается метод по парсингу информации из xml полей в таблицах различных баз данных в СУБД MS SQL. В таблицах баз данных встречаются текстовые поля nvarchar(max), которые содержат в себе xml-формат представления данных. Фактически это таблица в таблице со своими столбцами и строками.
⤷ Ссылка на статью
Гайды по БД и SQL
6 350
В чем разница между кластеризованным и некластеризованным индексами в SQL?
1. Различия между кластеризованным и некластеризованным индексами в SQL:
Кластерный индекс используется для простого и быстрого извлечения данных из базы данных, тогда как чтение из некластеризованного индекса происходит относительно медленнее.
2. Кластеризованный индекс изменяет способ хранения записей в базе данных — он сортирует строки по столбцу, который установлен как кластеризованный индекс, тогда как в некластеризованном индексе он не меняет способ хранения, но создает отдельный объект внутри таблицы, который указывает на исходные строки таблицы при поиске.
3. Одна таблица может иметь только один кластеризованный индекс, тогда как некластеризованных у нее может быть много.
Гайды по БД и SQL
6 350
15 лучших практик SQL после 20 лет программирования
Обратите внимание, что, хотя все эти советы можно считать «мнениями», эти методы я использовал после 20 лет совершения ошибок, проблем с эффективным чтением, редактированием и пониманием кода и наблюдения за тем, как члены моей команды сталкиваются с теми же проблемами. Я постараюсь рассказать вам о практике и логике их использования и оставлю вам возможность рассмотреть эти методы и посмотреть, что актуально для вас и вашей команды.
⤷ Ссылка на статью
Гайды по БД и SQL
6 350
Объясните различные типы нормализации.
Существует много последовательных уровней нормализации. Это так называемые нормальные формы. Каждая последующая нормальная форма включает предыдущую. Первых трех нормальных форм обычно достаточно.
- Первая нормальная форма (1NF) — нет повторяющихся групп в строках.
- Вторая нормальная форма (2NF) — каждое неключевое (поддерживающее) значение столбца зависит от всего первичного ключа.
- Третья нормальная форма (3NF) — каждое неключевое значение зависит только от первичного ключа и не имеет зависимости от другого неключевого значения столбца.
Гайды по БД и SQL
6 350
Хороший урок с задачами SQL
Есть разные виды баз данных, но этот урок посвящен базам данных, поддерживающим язык SQL. В них любые операции над данными - добавление, удаление, поиск - делаются с помощью отправки SQL-запросов. Сам язык достаточно простой и запросы на нем напоминают обычные предложения на английском языке. Ну к примеру, запрос на удаление из БД пользователя с email ivan@example.com выглядит так: DELETE FROM users WHERE email = 'ivan@example.com'. Если знать английский ("удалить из пользователей где email равен 'ivan@example.com'"), то смысл запроса легко понять, даже не зная SQL. Запросы может отправлять как сам разработчик вручную, так и написанная им программа.
⤷ Ссылка на статью
Гайды по БД и SQL
6 350
Вопросы по СУБД
Что такое транзакция? Приведите пример, где это может пригодиться. Расскажите про свойства транзакций и уровень изолированности.
Ответ:
Транзакция объединяет последовательность действий в одну операцию и обеспечивает выполнение либо всех действий из последовательности, либо ни одного. Канонический пример — списывание денег с одного счета и зачисление на другой, что требует два update-а, которые гарантированно должны выполниться или не выполниться вместе.
Что такое server side cursor и зачем он нужен?
Ответ:
Способ работы с результатом запроса в базу данных, который позволяет не загружать весь объем данных в память, позволяет работать с большими объемами данных. Дополнительно углубленно можно поговорить про особенности работы в связке с pgbouncer.
Гайды по БД и SQL
6 350
Задание SQL с реального собеседования
Вводные данные:
Есть таблица анализов Analysis:
an_id — ID анализа;
an_name — название анализа;
an_cost — себестоимость анализа;
an_price — розничная цена анализа;
an_group — группа анализов.
Есть таблица групп анализов Groups:
gr_id — ID группы;
gr_name — название группы;
gr_temp — температурный режим хранения.
Есть таблица заказов Orders:
ord_id — ID заказа;
ord_datetime — дата и время заказа;
ord_an — ID анализа.
Формулировка задачи: нарастающим итогом рассчитать, как увеличивалось количество проданных тестов каждый месяц каждого года с разбивкой по группе.
Эта задача среднего уровня: ее можно давать как Middle, так и Junior специалистам. Здесь проверяется базовое понимание оконных функций, джоинов и группировок.
Примечание После того, как вы написали первую версию своего запроса, попробуйте его оптимизировать. Например, в данном примере мы используем CTE — обобщенные табличные выражения.
Гайды по БД и SQL6 350
100+ шпаргалок для аналитиков данных и data scientists
Шпаргалки помогут:
🔹 подготовиться к экзамену
🔹 подготовиться к собеседованию
🔹 в повседневной работе – быстро вспомнить нужную информацию
Гайды по БД и SQL
6 350
Задачи с собеседования
Найти идентификатор с максимальным значением
depname | empno | salary |
-----------+-------+--------+
develop | 11 | 5200 |
develop | 7 | 4200 |
develop | 9 | 4500 |
develop | 8 | 6000 |
develop | 10 | 5200 |
personnel | 5 | 3500 |
personnel | 2 | 3900 |
sales | 3 | 4800 |
sales | 1 | 5000 |
sales | 4 | 4800 |
Задача: написать запрос, чтобы получить empno с самой высокой зарплатой. Убедитесь, что ваше решение обрабатывает случаи одинаковых зарплатами!
Решение:
WITH max_salary AS (
SELECT
MAX(salary) max_salary
FROM
salaries
)
SELECT
s.empno
FROM
salaries s
JOIN
max_salary ms ON s.salary = ms.max_salary
Альтернативное решение с использованием RANK():
WITH sal_rank AS
(SELECT
empno,
RANK() OVER(ORDER BY salary DESC) rnk
FROM
salaries)
SELECT
empno
FROM
sal_rank
WHERE
rnk = 1;
Гайды по БД и SQL
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
