Лайфхаки в IT

Обработка данных MS SQL Server средствами Python

Время прочтения: 3 мин.

Для работы импортируем необходимые библиотеки:

import pyodbc

В случае, если данная библиотека отсутствует на устройстве, в командной строке запустите команду:

pip install pyodbc

Данный модуль упрощает доступ к базам данных через программный интерфейс ODBC (Open Database Connectivity)

Далее создаём строку подключения к нашей базе данных:

connectionString = ("Driver = {SQL Server Native Client 11.0};""Server =YOUR SERVER;"
"Database = audTv;""Trusted_Connection=yes") 

где Driver – драйвер Microsoft ODBC для SQL Server. Обеспечивает возможность подключения к Microsoft SQL Server из Windows.

Server – указание сервера, на котором будут храниться (хранятся) наши таблицы:

Trusted Connection – указывает на способ подключения пользователей к БД. В случае, если указано значение «yes», для проверки подлинности используется учётная запись Windows, а ключи UID и PWD игнорируются, и наоборот, при выборе значения «no».

После заполнения строки подключения данными, выполним соединение к нашей базе данных:

connection = pyodbc.connect(connectionString, autocommit=True)

Создадим курсор, с помощью которого, посредством передачи запросов будем оперировать данными в нашей таблице:

dbCursor = connection.cursor()

Теперь можно написать наш первый запрос! Допустим, у нас есть таблица с данными о книгах, связанных с проектированием баз данных. Данная таблица будет содержать следующие данные: название книги, имя(имена) автора(ов) книги, год издания и краткое описание.

Добавим данные в нашу таблицу с помощью кода на python:

requestString = ””” INSERT INTO Books(name,author,publicationYear,descript) VALUES 
('Рефакторинг баз данных. Эволюционное проектирование','Скотт В. Эмблер, Прамодкумар Дж. Садаладж',2007,'В книге представлены советы по улучшению кода для баз данных'),
('Базы данных. Проектирование и разработка','Рэймонд Фрост, Джон Дей, Крейг Ван Слайк',2007,'Довольно популярная книга по проектированию и рефакторингу')
”””
dbCursor.execute(requestString)
connection.commit()

Проверим нашу таблицу (для проверки использовался SQL Server Management Studio):

Наш запрос успешно выполнен, но стоит отметить, что возможности использования библиотеки pyodbc не ограничиваются заполнением таблиц данными. Попробуем выбрать данные из нашей таблицы:

requestString2 = ”””select name,author from Books where publicationYear=2007”””
dbCursor.execute(requestString)
for row in dbCursor:
	print(“Название книги: ” + row.name + “Автор(ы) книги: ” + row.author)

Результат работы программы:

Так же есть возможность сохранения результата запроса в объект DataFrame, для дальнейшей обработки средствами библиотеки pandas:

import pandas as pd
from IPython.display import display
df = pd.read_sql_query(requestString,connection)
display(df.head())

Результат работы программы:

Таким образом, сегодня мы научились с помощью скриптов на языке python посредством библиотеки pyodbc создавать запросы для работы с SQL серверами, что может быть использовано для удобства работы с данными в повседневной деятельности аудитора.

Советуем почитать