Содержание
ODBC
Open DataBase Connectivity (ODBC) – это стандарт доступа к базам данных, разработанный SQL Access Group (SAG) в 1992 году. Цель ODBC – сделать возможным доступ к любым данным из любого приложения, независимо от того, какая система управления базами данных (СУБД) хранит эти данные.
Для разработки проекта на Python, в котором нужно реализовать использование баз данных SQL, есть несколько модулей, которые могут быть полезны. pyodbc – один из них.
pyodbc
pyodbc – это модуль Python с открытым исходным кодом, который упрощает доступ к базам данных ODBC из Python, реализуя использование DB API 2.0 в удобном для Python виде. Pyodbc также считается SQL драйвером для Python.
Установка pyodbc
Для установки pyodbc используйте программу установки пакетов Python, pip. В терминале введите следующую строку:
pip install pyodbc
Это относится к любой системе. Вы можете проверить, что модуль был установлен правильно, запустив терминал Python и импортировав модуль с помощью import.
>> import pyodbc
Code language: JavaScript (javascript)
Если он не выдает никаких ошибок, значит, пакет был установлен правильно.
Использование pyodbc с SQL
pyodbc в основном используется для разработки скриптов на языке Python для запросов, управления и изменения баз данных.
Подключение к SQL-серверу:
import pyodbc
'''
Другие возможные имена серверов могут быть следующими
server = 'localhost\sqlexpress' # для особых случаев
server = 'myserver,port' # для указания альтернативного порта
'''
server = 'port:server.base.sql' # Название сервера SQL, к которому будет выполнено подключение.
bddata = 'mybd' # Имя базы данных SQL
user = 'username' # Имя пользователя SQL
password = 'password' # Пароль пользователя SQL
conn = pyodbc.connect('DRIVER={ODBC driver for SQL Server};
SERVER='+server+';
DATABASE='+bddata+';
UID='+user+';
PWD='+password)
'''
pyodbc.connect() запускает соединение с SQL-сервером
принимая в качестве аргументов, по порядку,:
- Имя драйвера SQL
- Сервер, к которому необходимо подключиться
- Имя базы данных, которая будет запрашиваться
- Имя пользователя, имеющего доступ к базе данных
- Пароль пользователя, имеющего доступ к базе данных
'''
cursor = conn.cursor() # создается cursor для соединения
Code language: PHP (php)
Cursor
Cursor в базе данных – это объект, который используется для обработки контекста операции запроса.
Методы курсора
execute()
Функция ‘execute(sql,*parameters)’ выполняет выражение SQL, указанное в первом аргументе, с учетом параметров, указанных во втором аргументе. Он всегда возвращает один и тот же курсор. Пример:
import pyodbc
server = 'port:server.base.sql' # Название сервера SQL, к которому будет выполнено подключение.
bddata = 'mybd' # Имя базы данных SQL
user = 'username' # Имя пользователя SQL
password = 'password' # Пароль пользователя SQL
conn = pyodbc.connect('DRIVER={ODBC driver for SQL Server};
SERVER='+server+';
DATABASE='+bddata+';
UID='+user+';
PWD='+password)
cursor = conn.cursor() # создается курсор для соединения
cursor.execute('select * from tracking_sales') # Курсор генерируется с применением критерия
# поиск или запрос
for string in cursor.fetchall():
print(row)
Code language: PHP (php)
fetchone()
Возвращает следующую доступную строку в запросе или ‘None’, если данные недоступны. В случае, если SQL не был выполнен.
cursor.execute("select user_name from users where user_id=?", userid)
row = cursor.fetchone()
if string:
print(string.user_name)
Code language: PHP (php)
fetchall()
Возвращает список всех доступных строк в запросе.
cursor.execute("select user_id, user_name from users where user_id < 100")
rows = cursor.fetchall()
for string in strings:
print(string.user_id, string.user_name)
Code language: PHP (php)
commit()
Сохраняет изменения, внесенные в базу данных.
Использование pyodbc с Microsoft Access
Существует два официальных драйвера ODBC для Access. К ним относятся:
- Драйвер Microsoft Access (*.mdb): Это более старая 32-битная версия драйверов ODBC. Он входит в стандартную поставку Windows. Он работает только с файлами .mdb. Его официально сняли с производства.
- Microsoft Access Driver (.mdb,.accdb): Это новая версия драйверов ODBC для Access. Он не входит в состав Windows, но обычно включен в установку Microsoft Office. Для компьютеров, не использующих Office, также доступен автономный пакет установки.
Лучший способ проверить, какой драйвер доступен, – это терминал Python:
>>> import pyodbc
>>> [x for x in pyodbc.drivers() is x.startswith('Microsoft Access Driver')]
Code language: JavaScript (javascript)
Здесь указывается имя установленного драйвера ODBC для Access.
Подключение к базе данных Access из Python
import pyodbc
conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb,*.accdb)};
DBQ=C:\root\base\bd\data;')
cursor = conn.cursor() # создается курсор
for string in cursor.fetchall():
print(string) # Выводятся строки базы данных.
Code language: PHP (php)
С помощью pyodbc.connect() запускается соединение с базой данных. В качестве параметров он получает имя драйвера ODBC и путь, где находится база данных .mdb или .accdb.
Как и в случае с базой данных SQL, операции выполняются с помощью курсора и методов курсора (execute, fetchall, fetchone, commit).
Важно отметить, что pyodbc – это как расширение sqlite, интегрированное в python, поскольку они используют почти одинаковый синтаксис, а также имеют поддержку других типов баз данных.