Найти в Дзене
Базы данных. SQL

Базы данных. SQL

Всё про запросы SQL и работу с базами данных
подборка · 7 материалов
2 месяца назад
🔐 Подключение к БД PostgreSQL на Railway hosting
Нашёл халявный хостинг для тренировки по SQL: railway.com Можно создать тестовую БД на 24 часа как в ныне почившем ElephantSQL. Всё интуитивно понятно. После создания БД, например PostgreSQL, можно получить доступы для подключения: в строке: 🔌 postgresql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME} Все эти переменные прописываем в файл .env, который будет лежать вместе с нашим скриптом. В самом .env переменные хранятся в виде: DB_HOST=hopper.proxy.rlwy.net DB_PORT=11948 DB_NAME=railway DB_USER=postgres DB_PASSWORD=ваш_пароль...
7 месяцев назад
Подсчёт сессий пользователей на сайте через SQL
Частая задача подсчёта количества сессий пользователей сайта. Решаем на SQL, пишем в Jupyter Notebook... import pandas as pd import numpy as np import random import sqlite3 from datetime import datetime, timedelta # Настройки генерации num_users = 10 # Количество уникальных пользователей events_per_user = 20 # Среднее количество событий на пользователя start_date = datetime(2024, 1, 1) end_date = datetime(2024, 12, 31) # Генерация данных data = [] for user_id in range(1, num_users + 1): ···# Случайное количество событий для пользователя (от 10 до 100) ···num_events = random...
7 месяцев назад
SQL: ROW_NUMBER(), RANK(), DENSE_RANK()
При запросах к БД через SQL часто бывает нужно ранжировать строки таблицы по какому-либо значению и потом, например применять фильтр. Для этого очень удобно использовать функции с окнами: ROW_NUMBER(), RANK(), DENSE_RANK(). Как использовать смотрим в Jupyter Notebook на тестовой БД SQLite. Открываем ноутбук, пишем: import pandas as pd import sqlite3 from contextlib import contextmanager from IPython.display import display data = pd.DataFrame({ 'student': ['Жек Воробьёв', 'Жек Воробьёв', 'Жек Воробьёв',...
7 месяцев назад
Заповеди SQL. Премудрость №2
1. Никогда не пиши SQL-запрос без псевдонимов (alias.col_name) или без полного наименования таблицы (table_name.col_name). Это приведёт к ошибкам и сделает код не читаемым. Пример с псевдонимами (alias): SELECT * FROM table1 AS t1 LEFT JOIN table2 AS t2 ON t1.id = t2.id Пример с полными наименованиями таблиц: SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id 2. Не используй RIGHT JOIN, вместо него пиши LEFT JOIN. FULL JOIN есть не во всех базах данных, но его можно эмулировать: SELECT * FROM table1 LEFT JOIN table2 ON table1...
10 месяцев назад
Кодировка в файлах. DataLens
DataLens поддерживает следующие кодировки: При этом в Data Lens от Яндекса можно подключать файлы MS Excel только в формате CSV и XLSX. Если загружаемый CSV-файл в другой кодировке, то при загрузке появится ошибка. Для исправления нужно изменить кодировку файла... Через программерский блокнот Notepad++ (или любой другой): Для изменения кодировки в с помощью python нужно прочитать файл, а потом сохранить: # Импорт библиотеки Pandas import pandas as pd # Чтение CSV файла с указанием исходной кодировки df = pd...
11 месяцев назад
Заповеди SQL. Премудрость №1
Перед тем как работать с реальными данными, всегда тестируйт свои JOIN-запросы на «игрушечных» данных. Это поможет убедиться, что логика запроса корректна, и избежать ошибок при работе с большими объёмами информации. Например, создайте небольшие тестовые таблицы и проверьте, как они объединяются. Для именования столбцов рекомендуется использовать стиль snake_case. Например, user_id или order_date. Это делает код более читаемым и универсальным. Избегайте пробелов и CamelCase, так как они могут вызвать проблемы при работе с некоторыми СУБД...