DS инженеру приходится работать с целым зоопарком реляционных и нереляционных баз данных. Наш проект сделан для датасайенсов начального уровня и широкого профиля, поэтому мы будем рассматривать работу с SQL базами на примере MySQL / PostgreSQL и SQLite.
SQL (Structured Query Language – язык структурированных запросов). Это способ взаимодействия с базами данных, который тоже является языком программирования (язык запросов).
В изучении любых БД есть основы, это CRUD (Create, Read, Update и Delete), такие самые важные функции, которые нужно освоить, перед тем как использовать базы данных в Python.
Также нужно уметь создавать запросы, выполнять их для чтения, обновления или удаления. Все это мы рассмотрим в этом разделе.
Работа с БД MySQL в Python
MySQL – это очень популярная база данных с открытым кодом. Вы можете подключить ее к Python несколькими различными путями. Например, вы можете подключить ее, используя один из методов ODBC (PyODBC). Либо подключить MySQL к Python через пакет MySQLdb.
Существует некоторый нюанс: MySQLdb не совместим с Python 3. Работать можно через:
- mysql-connector-python
- pymysql
- CyMySQL
- mysqlclient
mysqlclient – это ветка MySQL-Python (MySQLdb), которая обеспечивает поддержку Python 3. Например, этот клиент используется в проекте Django и рекомендуется для подключения к MySQL БД.
Мы в проекте будет использовать pymysql
Установка pymysql в Python
pip3 install pymysql
Подключение к MySQL
После подключения к БД с передачей стандартных авторизационных записей, мы создаем объект курсора, и можем выполнять команды SQL. Далее извлекаем строчку из полученного результата, выводим её и закрываем связь базы данных.
import MySQLdb
conn = MySQLdb.connect('localhost', 'username', 'password', 'table_name')
cursor = conn.cursor()
cursor.execute("SELECT * FROM table_name")
# Получаем данные.
row = cursor.fetchone()
print(row)
# Разрываем подключение.
conn.close()