Библиотека баз данных
Самая большая библиотека бесплатных книг по SQL По всем вопросам- @haarrp @ai_machinelearning_big_data - machine learning @pythonl - Python @itchannels_telegram - 🔥 best it channels @ArtificialIntelligencedl - AI РКН: № 5037640984
Ko'proq ko'rsatish📈 Telegram kanali Библиотека баз данных analitikasi
Библиотека баз данных (@sql_lib) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 10 154 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 11 533-o'rinni va Rossiya mintaqasida 62 043-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 10 154 obunachiga ega bo‘ldi.
06 Oktabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -48 ga, so‘nggi 24 soatda esa -5 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 9.38% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 3.81% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 952 marta ko‘riladi; birinchi sutkada odatda 387 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 5 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent sql, субд, индекс, user_id, архитектура kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Самая большая библиотека бесплатных книг по SQL
По всем вопросам- @haarrp
@ai_machinelearning_big_data - machine learning
@pythonl - Python
@itchannels_telegram - 🔥 best it channels
@ArtificialIntelligencedl - AI
РКН: № 5037640984”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 07 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.
localhost:5432 - получили Connection refused.
Одна из возможных причин: теперь этот адрес ведёт внутрь контейнера с приложением. Если PostgreSQL работает отдельно, приложение ищет базу не там.
Наруто и его клон сидят в разных комнатах. Для каждого «здесь» означает свою комнату. В обычной изолированной сети Docker похожая история: у каждого контейнера свой localhost.
Если база в соседнем контейнере
В общей сети Docker Compose сервисы доступны по именам. Если сервис PostgreSQL называется db, настройки приложения могут выглядеть так:
DB_HOST=db
DB_PORT=5432
Названия переменных зависят от приложения. Здесь важны адрес db и порт, который слушает PostgreSQL внутри контейнера.
Даже если у базы настроено:
ports:
- "15432:5432"
из соседнего контейнера обращаемся к `db:5432`, а с компьютера - к `localhost:15432`.
Если база работает на компьютере
В Docker Desktop для доступа из контейнера к хосту предусмотрено имя:
host.docker.internal
В Docker Engine на Linux может понадобиться добавить в настройки сервиса приложения:
extra_hosts:
- "host.docker.internal:host-gateway"
При этом PostgreSQL должен слушать доступный из контейнера адрес и разрешать такие подключения. Одной замены имени хоста недостаточно, если доступ закрывают настройки базы или файрвол.
Что проверить при Connection refused:
• Где запущена база: в этом контейнере, соседнем или на хосте?
• Правильно ли указаны адрес и порт?
• Есть ли у контейнеров общая сеть?
• Запущена ли база и готова ли принимать подключения?
Не каждая ошибка подключения связана с localhost, но после переноса приложения в Docker его стоит проверить одним из первых.NULL:
SELECT NULL = NULL;
-- NULL
Поэтому условие:
WHERE old_value = new_value
не считает два NULL равными.
В PostgreSQL используйте:
WHERE old_value IS NOT DISTINCT FROM new_value
Оператор работает как безопасный аналог =:
1 IS NOT DISTINCT FROM 1 -- true
NULL IS NOT DISTINCT FROM NULL -- true
1 IS NOT DISTINCT FROM NULL -- false
Полезно при сравнении версий строк, поиске изменений и синхронизации таблиц:
SELECT *
FROM old_data o
JOIN new_data n USING (id)
WHERE o.email IS DISTINCT FROM n.email;
Запрос вернёт строки, где значение действительно изменилось, включая переходы NULL → значение и значение → NULL.Open-OSS/privacy-filter возглавил топ Hugging Face, маскируясь под инструмент OpenAI. Под видом модели Privacy Filter распространялся инфостилер для Windows. Проект набрал 244 тысячи скачиваний за 18 часов.
При попытке использования установочные скрипты загружали вредонос, который повышал привилегии в системе через UAC и добавляла себя в исключения Microsoft Defender. Стилер собирал пароли, данные криптокошельков, токены сессий Discord и конфигурации FileZilla, после чего полностью удалял свои следы из системы.
По данным аналитиков HiddenLayer, эта атака использует инфраструктуру, связанную с китайской хакерской группировкой Silver Fox. Администрация Hugging Face уже заблокировала доступ к репозиторию.
thehackernews.com
@ai_machinelearning_big_data
#news #ai #ml async Task<IActionResult> пишется на автомате. Вы точно знаете, почему EF Core сгенерировал именно такой SQL - и как переписать запрос, чтобы он летал.
Это не фантазия. Это результат после 16 модулей, в которых каждая концепция объясняется через код и закрепляется практикой.
ООП, SOLID, LINQ, async/await, DI, EF Core, ASP.NET Core, Docker, Kubernetes - всё, что казалось магией, станет рабочим инструментом.
А бонусом - портфолио проектов: от CLI-утилит и REST API до собственного SaaS с multi-tenancy, JWT и деплоем в Kubernetes под TLS.
Скидка - 58% доступна 48 часов: https://stepik.org/a/282984/
SELECT * FROM orders WHERE status = 'paid';
И потом сравнивают: «вернулись нужные строки или нет».
Но в реальных системах чаще ломается не сам happy path, а скрытые свойства данных.
Например, для отчёта по заказам тест должен проверять не только конкретные строки, а правила:
-- сумма по пользователям должна совпадать с общей суммой
WITH by_user AS (
SELECT user_id, SUM(amount) AS total
FROM orders
WHERE status = 'paid'
GROUP BY user_id
),
overall AS (
SELECT SUM(amount) AS total
FROM orders
WHERE status = 'paid'
)
SELECT
(SELECT SUM(total) FROM by_user) = (SELECT total FROM overall) AS is_valid;
То есть вы тестируете не «мне вернулось 10 строк», а:
агрегаты не теряют деньги
join не размножает строки
фильтр не выкидывает валидные данные
NULL не ломает расчёты
сумма после группировки совпадает с суммой до группировки
каждый order попадает ровно в одну категорию
дедупликация не удаляет нужные записи
Особенно полезный приём - тест на размножение строк после JOIN:
WITH before_join AS (
SELECT COUNT(*) AS cnt
FROM orders
),
after_join AS (
SELECT COUNT(*) AS cnt
FROM orders o
JOIN users u ON u.id = o.user_id
)
SELECT
after_join.cnt <= before_join.cnt AS no_unexpected_multiplication
FROM before_join, after_join;
Если после JOIN строк стало больше без явной причины - у вас почти наверняка проблема с кардинальностью.
Хороший SQL-тест проверяет не только ответ, а свойства запроса, которые должны оставаться истинными при любых данных. Именно так ловятся баги, которые не видно на маленьком тестовом датасете.
https://www.youtube.com/shorts/Rj2HKshtWO8