SQL Ready | Базы Данных
Авторский канал про Базы Данных и SQL Ресурсы, гайды, задачи, шпаргалки. Информация ежедневно пополняется! Cотрудничество: @energy_c РКН: https://clck.ru/3QREBc
Ko'proq ko'rsatish📈 Telegram kanali SQL Ready | Базы Данных analitikasi
SQL Ready | Базы Данных (@sql_ready) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 17 768 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 7 318-o'rinni va Rossiya mintaqasida 37 051-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 17 768 obunachiga ega bo‘ldi.
20 Oktabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni 730 ga, so‘nggi 24 soatda esa 24 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 11.55% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 5.98% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 2 052 marta ko‘riladi; birinchi sutkada odatda 1 062 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 23 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent sql, строка, users, индекс, user_id kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Cотрудничество: @energy_c
РКН: https://clck.ru/3QREBc”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 21 Oktabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
• Работа с NULL и применение логики ветвления IF-THEN-ELSE
• Дедупликация данных
• Анализ истории со Slowly Changing Dimensions
🔊 Продолжить читать можешь на Habr!➡️ SQL Ready | #статья
CAST — преобразует указанное значение в заданный тип данных. Необходимо для преобразования строковых значений в числовые, чтобы их можно было сравнить.
• CONVERT — аналогичный метод преобразования данных, но предлагает расширенный функционал для форматирования, но поддерживается не всеми СУБД.
🔥 — если узнал новое
🤝 — если уже пользовался
➡️ SQL Ready | #метод• Лайфхаки при работе с большими загрузками.
• В каком виде стоит загружать данные.
• Неочевидные советы при работе с индексами.
🔊 Продолжить читать можешь на Habr!➡️ SQL Ready | #статья
EXPLAIN и ANALYZE.
Предположим, у нас есть большая таблица, которая содержит около миллиона строк с разными книгами. Естественно у нас уже есть некластерный индекс по столбцу жанр — для быстрого поиска книг по жанрам, сделаем запрос:
SELECT book_title, author FROM books WHERE genre = 'Фантастика';
Но запрос возвращает результат не за 200 ожидаемых мс, а за 900 мс. Многовато, надо разбираться, проанализируем запрос:
EXPLAIN ANALYZE SELECT book_title, author FROM books WHERE genre = 'Фантастика';
Запрос EXPLAIN ANALYZE возвращает план запроса и время выполнения каждой операции в запросе:
QUERY PLAN Seq Scan on books (cost=0.00..25000.00 rows=1000 width=100) (actual time=0.010..900.000 rows=500 loops=1) Filter: (genre = 'Фантастика'::text) Rows Removed by Filter: 999500 Planning Time: 0.200 ms Execution Time: 900.500 ms (4 rows)Проанализируем план запроса и увидим, что планировщик запроса собирается обойти всю таблицу —
Seq Scan on books, хотя должен использовать индекс по жанру. Это значит, планировщик не использует индекс из-за устаревшей статистики или из-за быстрого роста записей в таблице.
🔥 В следующей части расскажу, что делать для обновления статистики таблицы и как избежать таких ситуаций с помощью VACUUM ANALYZE.
➡️ SQL Ready | #практикаЭта шпаргалка поможет понять, в каком порядке вызываются SQL операторы и как правильно писать запросы, учитывая этот порядок.
➡️ SQL Ready | #шпора• Предобработка данных перед записью в БД. • Логирование изменений - кто внес изменения, добавил или удалил строчки. • Оповещение другие модулей или сервисов при взаимодействии с таблицей. • Реализация бизнес-логики.В следующей части рассмотрим как создать исполняемую функцию для такого триггера! ➡️ SQL Ready | #гайд
SELECT * FROM users WHERE username = '$username' AND password = '$password'
Но что если юзер в поле логин решил ввести следующее:
' OR '1'='1'Тогда запрос приобретет вид:
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '$password'
И поскольку для запроса поле username остается пустым, левая часть оператора OR будет истиной, запрос вернет пользователю все учетные записи из БД, и тот сможет авторизоваться под любой из них.
Решение — использование параметризованных запросов и placeholders вида %s для PostgreSQL.
Перепишем запрос с помощью Python, но условимся, что уже подключены к БД и объекту курсора для выполнения запросов:
username = input()
password = input()
sql = "SELECT * FROM users WHERE username = %s AND password = %s;"
cur.execute(sql, (username, password)) # метод объекта курсора, выполняющий запрос
results = cur.fetchall() # возвращает все строки результата запроса
И не забудем закрыть подключение к БД и объекту курсора.
🔥 Поэтому! Используйте параметризацию данных или ORM, внимательно настраивайте валидацию этих данных и вы точно избежите утечек связанными с SQL-инъекциями.
➡️ SQL Ready | #практика