Выполняем SQL запрос в питоне

В питоне можно выполнить запрос к базе данных на SQL сервере, а ответ получить как датасет пандос.

Импортируем библиотеки, в примере мы будем подключаться к MS SQL серверу, но можно подключаться к другим базам данных, используя нужную библиотеку.

import pyodbc
import pandas as pd

В переменную con запишем подключение к SQL серверу

# создание подключения к базе данных
con = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
                      "Server=NAME_SQL_SERVER;"
                      "Database=NAME_BASE;"
                      "Trusted_Connection=yes;")

Функция select — для быстрой отправки sql запроса, на входе sql запрос, на выходе результат выполнения

# функция отправки запроса к базе sql
def select(sql):
    return pd.read_sql(sql,con)

Используем тройные кавычки, для переноса построчно, иначе нужно писать в одну строку

# Переменной sql присваиваем запрос
sql='''

DECLARE
@today DATE,
@yesterday DATE

SELECT
@yesterday = DATEADD(day, -1, CAST(GETDATE() AS date))  --вчера в виде даты без времени
,@today = CAST(GETDATE() AS date)  --сегодня в виде даты без времени

SELECT 
  *  
FROM table.data

WHERE
 DataZvonka <= @yesterday 
 and
 DataPrihoda >= @today

'''

Присваиваем датасету df, результат выполнения запроса sql

# создание датасета с данными запроса
df=select(sql)

Дальше можно производить вычисления в пандос, и делать что нужно с данными, например, записать в гугл таблицу, отправить в телеграм группу.

Отправить
Поделиться
Твитнуть