Библиотека баз данных
Самая большая библиотека бесплатных книг по SQL По всем вопросам- @haarrp @ai_machinelearning_big_data - machine learning @pythonl - Python @itchannels_telegram - 🔥 best it channels @ArtificialIntelligencedl - AI РКН: № 5037640984
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Библиотека баз данных
تُعد قناة Библиотека баз данных (@sql_lib) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 10 154 مشتركاً، محتلاً المرتبة 11 533 في فئة التكنولوجيات والتطبيقات والمرتبة 62 043 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 10 154 مشتركاً.
بحسب آخر البيانات بتاريخ 06 أكتوبر, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -48، وفي آخر 24 ساعة بمقدار -5، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 9.38%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 3.81% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 952 مشاهدة. وخلال اليوم الأول يجمع عادةً 387 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 5.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل sql, субд, индекс, user_id, архитектура.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Самая большая библиотека бесплатных книг по SQL
По всем вопросам- @haarrp
@ai_machinelearning_big_data - machine learning
@pythonl - Python
@itchannels_telegram - 🔥 best it channels
@ArtificialIntelligencedl - AI
РКН: № 5037640984”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 07 أكتوبر, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
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