Библиотека баз данных
Самая большая библиотека бесплатных книг по SQL По всем вопросам- @haarrp @ai_machinelearning_big_data - machine learning @pythonl - Python @itchannels_telegram - 🔥 best it channels @ArtificialIntelligencedl - AI РКН: № 5037640984
Mostrar más📈 Análisis del canal de Telegram Библиотека баз данных
El canal Библиотека баз данных (@sql_lib) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 10 154 suscriptores, ocupando la posición 11 533 en la categoría Tecnologías y Aplicaciones y el puesto 62 043 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 10 154 suscriptores.
Según los últimos datos del 06 octubre, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -48, y en las últimas 24 horas de -5, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 9.38%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 3.81% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 952 visualizaciones. En el primer día suele acumular 387 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 5.
- Intereses temáticos: El contenido se centra en temas clave como sql, субд, индекс, user_id, архитектура.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Самая большая библиотека бесплатных книг по SQL
По всем вопросам- @haarrp
@ai_machinelearning_big_data - machine learning
@pythonl - Python
@itchannels_telegram - 🔥 best it channels
@ArtificialIntelligencedl - AI
РКН: № 5037640984”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 07 octubre, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
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