Язык программирования Python

Доступ к базам данных в Python с помощью pyodbc

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, поскольку они используют почти одинаковый синтаксис, а также имеют поддержку других типов баз данных.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *