Содержание

Python, введение в БД / Хабр

Здравствуйте, здесь и сейчас я хочу рассказать, что такое базы данных, зачем они нужны, и т.д.; для работы с ними мы будем использовать python и его библиотеку sqlite3.

База данных — совокупность данных, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных

Так нам говорит Яндекс, но если сказать простыми словами, не углубляясь во все эти понятия, то:

Базы данных (БД) — библиотека, хранящая данные в том или ином виде.

То есть как в библиотеку мы можем прийти и взять книгу «Война и мир», зная что она будет лежать в разделе романов, на букву «В», так и из БД мы можем взять запись по определённому аргументу, в данном случае жанру.

И тут возникает вопрос.


Как это сделать?

И что бы ответить на этот вопрос, мы должны кое-что узнать.


Сначала нужно понять, что БД делятся на:


  • Реляционные
  • Сетевые
  • Иерархические

Сетевые и иерархические БД:

Такие БД представляют собой графы и хранят информацию в них же.


  • Иерархические — древовидный граф
  • Сетевые — полный граф

Данные БД здесь мы рассматривать не будем. Поэтому перейдём к реляционной БД.


Реляционные базы данных

Реляционные БД — БД, в которых данные хранятся в виде таблицы, например Exel.

SQL — именно реляционная БД, и все данные в ней хранятся, в виде таблицы. Например такой:

Я думаю что, на вопрос мы ответили, и можно идти дальше.


За всю жизнь, человечество накопила невероятно много информации, а БД, как мы знаем собирают, и сортирует эту информацию по таблицам

(в нашем случае). И БД помогают абсолютно спокойно ориентироваться во всей этой куче информации, добавлять её туда, изменять и т.д.;


Сейчас мы пойдём в практику, но перед этим хотелось бы уточнить кое-что. Сверху я написал такую строку:


SQL — именно реляционная БД, и все данные в ней хранятся, в виде таблицы.

И как вы понимаете, это неверно.
SQL — это структурированный язык запросов (structured query language). Грубо говоря это язык программирования, позволяющий управлять Базами данных, таблицами в них и т.д.

Мой косяк исправили, идём в практику!


Да, это смешно, но мало ли кому-нибудь понадобится

Я не буду описывать алгоритм установки, ведь это давно сделали за меня, если вам нужно установить данный модуль, то просьба идти вот сюда.


import sqlite3 as sql
con = sql.connect('test.db')
with con:
    cur = con.cursor()
    cur.execute("CREATE TABLE IF NOT EXISTS `test` (id INTEGER)")
    con.commit()

Сначала импорт, потом «con =».
Объясняю, sql.connect(«test.db») — создает файл с именем «test.db», если запустили впервые. То есть принимает на вход путь до файла с расширением .db

cur = con.cursor — позволит нам производить операции с БД, остальное не важно.

cur.execute(…) — создаёт таблицу с именем тест и всего 1 колонкой id, в которой все данные — числа

commit() — грубо говоря, сохранение БД

А давайте создадим программу, которая запрашивает имя и фамилию, и записывает их в БД, а потом по выбору цифр либо выводит, либо записывает снова.

import sqlite3 as sql
print("1 - добавление\n2 - получение")
choice = int(input("> "))
con = sql.connect('test.db')
with con:
    cur = con.cursor()
    cur.execute("CREATE TABLE IF NOT EXISTS `test` (`name` STRING, `surname` STRING)")
    if choice == 1:
        name = input("Name\n> ")
        surname = input("Surname\n> ")
        cur.execute(f"INSERT INTO `test` VALUES ('{name}', '{surname}')")
    elif choice == 2:
        cur.execute("SELECT * FROM `test`")
        rows = cur.fetchall()
        for row in rows:
            print(row[0], row[1])
    else:
        print("Вы ошиблись")
    con.commit()
    cur.close()

Стандартные моменты пропустим.

cur.execute(«INS…») — Добавление данных

cur.execute(«SeL…») — Получение данных. И так как там отдаётся массив, то мы его перебираем, а после ещё и из кортежа данные берём.

«SELECT», «INSERT», «DROP» и т.д. — это всё SQL.

cur.fetchall() — это что бы в переменную записалось всё, что пришло из БД.


Базы данных — важная и очень нужная вещь. Здесь мы затронули настолько её малую часть, что аж смешно. Поэтому чтобы действительно узнать как это работает, советую почитать об этом всём в интернете, благо информации много. Удачи!

Базы данных и их использование в приложениях на Python

В данной статье мы рассмотрим, что такое базы данных и какие из них чаще всего используются, если речь идет о разработке на Python.

Пожалуй, начнем с определения. База данных – это абстракция над файловой системой операционной системы, которая значительно упрощает создание приложений, создающих, читающих, обновляющих и удаляющих различные данные.

Зачем нужны базы данных?

На высоком уровне веб-приложения хранят данные и представляют их пользователям в удобном виде. Например, Google хранит данные о дорогах и предоставляет маршруты для проезда из одного места в другое при каждом использовании вами Google Maps. Строить такие маршруты движения возможно благодаря тому, что данные хранятся в структурированном формате.

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

Для управления созданием и использованием баз данных создано много реализаций СУБД — систем управления базами данных. Примеры СУБД — PostgreSQL, MySQL, SQLite. Также существуют нереляционные базы данных — NoSQL.

[python_ad_block]

Реляционные базы данных

В веб-разработке на Python чаще всего используются реляционные базы данных.

В этих базах данные хранятся в виде серии таблиц. Взаимосвязи между таблицами создаются при помощи внешних ключей. (Само определение «реляционные» происходит от англ. relations — «связи, отношения», — прим. перев.)

Внешний ключ – это уникальная ссылка из одной строки в реляционной таблице на другую строку, которая чаще всего находится в другой таблице, хотя может быть и в той же самой.

Реализации хранилищ баз данных различаются по сложности. SQLite — СУБД, встроенная в Python — создает один файл для всех данных каждой базы данных.

Другие СУБД, такие как PostgreSQL, MySQL, Oracle и Microsoft SQL Server, имеют более сложные схемы хранения. Кроме того, они предлагают дополнительные расширенные функции, полезные для хранения данных веб-приложений. Например:

  1. Репликация данных между главной базой данных и одним или несколькими подчиненными экземплярами, доступными только для чтения.
  2. Расширенные типы столбцов, которые могут эффективно хранить полуструктурированные данные, такие как JSON (JavaScript Object Notation).
  3. Сегментирование, которое позволяет горизонтально масштабировать несколько баз данных, каждая из которых служит экземпляром для чтения и записи, за счет задержки в согласованности данных.
  4. Мониторинг, статистика и другая полезная информация о выполнении для схем и таблиц базы данных.

Обычно веб-приложения начинаются с одного экземпляра базы данных, например PostgreSQL, с простой схемой. Со временем схема базы данных превращается в более сложную структуру с использованием миграций. При этом возрастает потребность в расширенных функциях, таких как репликация, сегментирование и мониторинг, поскольку использование базы данных становится более интенсивным.

Наиболее распространенные базы данных для веб-приложений на Python

PostgreSQL и MySQL – две наиболее распространенные базы данных с открытым исходным кодом для хранения данных веб-приложений на Python.

SQLite – это база данных, которая хранится в одном файле на диске. SQLite встроена в Python, но предназначена только для доступа по одному соединению за раз. Поэтому настоятельно рекомендуется не запускать производственное веб-приложение с SQLite. Эта база данных хороша для учебных проектов, когда вы только осваиваете, как всё работает.

Для продакшена же лучше использовать PostgreSQL или MySQL, или другую базу данных, в том числе нереляционную – всё зависит от специфики вашего приложения.

База данных PostgreSQL

PostgreSQL – это рекомендуемая реляционная СУБД для работы с веб-приложениями на Python. Функционал PostgreSQL, его активное развитие и улучшение, а также стабильность послужили причиной использования этой СУБД в бэкенде миллионов приложений, существующих сегодня в сети.

База данных MySQL

MySQL – еще одна практичная реализация СУБД для приложений, написанных на Python. Имеет открытый исходный код.

MySQL проще в освоении, чем PostgreSQL, но не так богата функциями.

Подключение к базе данных с помощью Python

Для работы с реляционной базой данных с использованием Python нужны библиотеки. Наиболее распространенные библиотеки для реляционных баз данных:

  • psycopg2 (исходный код) для PostgreSQL.
  • MySQLdb (исходный код) для MySQL. Обратите внимание, что разработка этого драйвера в основном заморожена. Поэтому будет целесообразно обратить внимание на альтернативные варианты, если в бэкенде вашего приложения используется MySQL.
  • cx_Oracle (исходный код) для Oracle Database.

Поддержка SQLite встроена во все версии Python 2. 7+, поэтому отдельная библиотека для подключения не требуется. Просто импортируйте sqlite3 (import sqlite3), и можно начинать работатьтоirметоyey.

Объектно-реляционное отображение

Объектно-реляционное отображение (англ. object-relational mapping, ORM) позволяет разработчикам получать доступ к данным из бэкенда при помощи Python-кода, а не SQL-запросов. Все структуры веб-приложений по-разному обрабатывают интеграцию ORM. По объектно-реляционному отображению есть множество ресурсов, так что вы без проблем разберетесь в этой теме.

Размещение баз данных на стороннем сервере

Многие компании предлагают свои серверы для хостинга баз данных. В услугах, предоставляемых такими компаниями, часто есть автоматическое резервное копирование и восстановление, усиленные настройки безопасности и простое вертикальное масштабирование.

  • Amazon Relational Database Service (RDS) предоставляет предварительно настроенные экземпляры MySQL и PostgreSQL. Экземпляры можно масштабировать до больших или меньших конфигураций в зависимости от требований к хранилищу и производительности.
  • Google Cloud SQL – это сервис для работы с серверами MySQL, PostgreSQL и SQL. Позволяет управлять базами данных, делать бэкапы, репликации и вносить автоматические исправления. Cloud SQL интегрируется с Google App Engine, но также может использоваться и независимо.
  • BitCan предоставляет размещение баз данных MySQL и MongoDB с обширными услугами резервного копирования.
  • ElephantSQL – это SaaS-компания, которая размещает базы данных PostgreSQL и управляет конфигурацией сервера, резервным копированием и подключением к данным поверх экземпляров Amazon Web Services.

Полезные источники для изучения баз данных

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

Книги для изучения баз данных:

  1. «Изучаем SQL», автор — Алан Бьюли. Эта книга отлично подойдет для новичков, только начинающих знакомиться с обширным миром баз данных.
  2. «SQL», автор — Крис Фиайли. В этой книге подробно и на примерах разбирается использование языка запросов SQL для решения разных задач.
  3. «SQL. Сборник рецептов», автор — Энтони Молинаро. Данное пособие подойдет тем, кто уже имеет определенные знания об SQL и хочет развивать свои навыки.
  4. «SQL. Библия пользователя», авторы — Алекс Кригель и др., 2-е издание. Уникальность книги в том, что в ней приведены примеры реализации различных запросов на трех основных диалектах ведущих СУБД.
  5. «Семь баз данных за семь недель. Введение в современные базы данных и идеологию NoSQL», авторы — Эрик Редмонд, Джим Р. Уилсон. В данной книге рассказывается в основном о нереляционных базах данных. Вы узнаете об особенностях таких СУБД, как Redis, Neo4J, CouchDB, MongoDB, HBase, PostgreSQL и Riak.
  6. «Работа с PostgreSQL: настройка и масштабирование», автор — А. Ю. Васильев. Это справочник по настройке и масштабированию  PostgreSQL и тонкостям его использования.

Видеокурсы:

Если же вы больше предпочитаете видеоуроки и курсы, то существует множество источников для любого уровня подготовки. Ниже приведены примеры таких источников. Они в основном рассчитаны для новичков:

  • Основы баз данных
  • Изучение SQL для начинающих
  • Видеокурс по базам данных от Технопарка
  • Python and MySQL: Database Manipulation with Python

Контрольный чеклист для изучения баз данных

  1. Установите PostgreSQL на свой сервер или персональный компьютер. Если вы используете Ubuntu, запустите sudo apt-get install postgresql.
  2. Убедитесь, что в зависимостях вашего приложения есть библиотека psycopg2.
  3. Настройте свое веб-приложение для подключения к экземпляру PostgreSQL.
  4. Создавайте модели в ORM с помощью встроенного ORM Django или SQLAlchemy с Flask.
  5. Создайте таблицы своей базы данных или синхронизируйте модели ORM с экземпляром PostgreSQL, если вы используете ORM.
  6. Начните создавать, читать, обновлять и удалять данные в базе данных из вашего веб-приложения.

Заключение

В этой статье мы кратко рассказали про базы данных в Python. Обсудили, какие они бывают и в чем особенности использования той или иной СУБД. Также мы дали вам подборки книг и видеоматериалов для дальнейшего изучения баз данных. Надеемся, что вам все это пригодится. Успехов в освоении баз данных и написании кода!

На основе статьи «Databases».

баз данных Python 101: что выбрать?

Науку о данных невозможно написать без данных. Ладно, это банально, но это правда! Большую часть времени (если не все) необходимые вам данные хранятся в СУБД (системе управления базами данных) на удаленном сервере или на вашем жестком диске.

Это означает, что вам необходимо взаимодействовать и взаимодействовать с этой СУБД для хранения и извлечения данных, но для взаимодействия с СУБД вам необходимо говорить на ее языке: SQL (язык структурированных запросов). (Примечание: с годами люди сами стали называть базы данных SQL.)

Недавно появился еще один термин: базы данных NoSQL. Если вы только начинаете заниматься наукой о данных или уже некоторое время работаете в этой области, вы, вероятно, слышали как о базах данных SQL, так и о базах данных NoSQL.

Использование баз данных SQL или NoSQL зависит от ваших данных и целевого приложения. Но, допустим, вы используете Python и уже знаете, какую схему базы данных вы собираетесь использовать. Теперь вопрос в том, какую библиотеку Python вы используете?

В этой статье я расскажу о наиболее известных, используемых и разработанных библиотеках баз данных Python. Мы поговорим о каждой библиотеке и о лучших причинах для использования каждой из них.

The Skinny на SQLSQLZoo — лучший способ попрактиковаться в SQL

Мы используем библиотеки SQL с реляционными базами данных (RDBMS). Реляционные базы данных хранят данные в разных таблицах, и каждая таблица содержит несколько записей. Эти таблицы связаны с помощью одного или нескольких отношений.


SQLite

SQLite изначально была библиотекой на языке C, созданной для реализации небольшого, быстрого, автономного, бессерверного и надежного ядра базы данных SQL. Теперь SQLite встроен в ядро ​​Python, а это значит, что вам не нужно его устанавливать. Вы можете использовать его прямо сейчас. В Python эта библиотека связи с базой данных называется sqlite3.

Используйте SQLite, когда…

  • вы новичок, только начинаете изучать базы данных и способы взаимодействия с ними.

  •  вы используете встроенные приложения. Если вашему приложению требуется переносимость, используйте SQLite, потому что SQLite занимает мало места и очень легкий.

  • ваши данные хранятся в файле на вашем жестком диске. Вы можете использовать SQLite в качестве параллельного решения для клиент-серверной СУБД в целях тестирования.

  • вам нужно быстрое подключение к вашим данным. Вам не нужно подключаться к серверу, чтобы использовать SQLite, что также означает, что библиотека имеет низкую задержку.

SQLite — не лучший вариант, если параллелизм представляет большую проблему для вашего приложения, поскольку операции записи сериализованы. Кроме того, SQLite слаб, когда речь идет о многопользовательских приложениях».

Еще от Sara A. MetwalliКак написать псевдокод

Произошла ошибка.

Невозможно выполнить JavaScript. Попробуйте посмотреть это видео на сайте www.youtube.com или включите JavaScript, если он отключен в вашем браузере.

Базы данных SQLite с Python

 

MySQL

MySQL является одним из наиболее широко используемых и известных коннекторов СУБД с открытым исходным кодом. Он использует архитектуру сервер/клиент, состоящую из многопоточного SQL-сервера. Это позволяет MySQL работать хорошо, потому что он легко использует несколько процессоров. Первоначально MySQL был написан на C/C++, а затем расширен для поддержки различных платформ. Ключевыми особенностями MySQL являются масштабируемость, безопасность и репликация.

Чтобы использовать MySQL, вам необходимо установить его коннектор. В командной строке вы можете сделать это, запустив:

 python -m pip install mysql-connector-python
 

Используйте MySQL, когда.

..

  • вам нужна дополнительная безопасность. Благодаря преимуществам безопасности MySQL он оптимален для приложений, требующих аутентификации пользователя или пароля.

  • вам нужна многопользовательская поддержка. В отличие от SQLite, MySQL поддерживает многопользовательские приложения и является хорошим выбором для распределенных систем.

  • вам нужны расширенные возможности резервного копирования и взаимодействия, но с простым синтаксисом и легкой установкой.

MySQL плохо работает, когда вы выполняете массовые операции INSERT или хотите выполнять операции полнотекстового поиска.

 

PostgreSQL

PostgreSQL — это еще один соединитель РСУБД с открытым исходным кодом, ориентированный на расширяемость и использующий структуру базы данных клиент/сервер. В PostgresSQL мы называем обмен данными, управляющий файлами и операциями базы данных, «процессом Postgres», откуда библиотека и получила свое название.

Для связи с базой данных PostgresSQL вам необходимо установить драйвер, который позволяет Python делать это. Одним из часто используемых драйверов является psycopg2. Вы можете установить его, выполнив следующую инструкцию командной строки:

 pip install psycopg2 

Используйте PostgreSQL, когда…

  • вы запускаете хранилище данных аналитических приложений. PostgresSQL обладает выдающимися возможностями параллельной обработки.

  • ваша база данных должна соответствовать модели ACID (A: атомарность; C: согласованность; I: изоляция; D: надежность) (в основном финансовые приложения). В этом случае PostgresSQL предоставляет для этого оптимальную платформу.

  • вам нужны базы данных исследований и научных проектов.

PostgresSQL немного сложнее установить и начать работу, чем MySQL. Тем не менее, это стоит хлопот, учитывая бесчисленные расширенные функции, которые он предоставляет.

Нужна консультация по приложениям для работы? We Got You.4 Типы проектов, которые вам нужны в вашем портфолио Data Science

 

Библиотеки Python NoSQL

Библиотеки Python NoSQL

  • MongoDB
  • Redis
  • Cassandra
  • Neo4j

Базы данных NoSQL более гибкие, чем реляционные базы данных. В этих типах баз данных структура хранения данных разработана и оптимизирована для конкретных требований. Существует четыре основных типа библиотек NoSQL:

  1. Документо-ориентированные

  2. Пара ключ-значение

  3. Столбчатые

  4. Граф 90 003

 

MongoDB

MongoDB — хорошо известное среди современных разработчиков хранилище данных базы данных. Это система хранения данных с открытым исходным кодом, ориентированная на документы. Обычно мы используем PyMongo, чтобы обеспечить взаимодействие между одним или несколькими экземплярами MongoDB через код Python.

MongoEngine — это Python ORM, написанный для MongoDB поверх PyMongo.

Чтобы использовать MongoDB, вам необходимо установить механизм и актуальные библиотеки MongoDB.

 pip установить пимонго == 3.4.0
pip install mongodb 

Использовать MongoDB, когда…

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

  • ваши данные имеют документальную структуру, но вы хотите использовать возможности реляционных баз данных.

  • у вас есть приложение с переменными структурами данных, например приложения IoT.

  • вы работаете с приложениями реального времени, такими как приложения электронной коммерции и системы управления контентом.

Готово3 шага к завершению вашего приложения. Подсказка: начните с конца.

 

Redis

Redis — это хранилище структур данных в памяти с открытым исходным кодом. Он поддерживает структуры данных, такие как строки, хеш-таблицы, списки, наборы и многое другое. Redis обеспечивает высокую доступность с помощью Redis Sentinel и автоматическое разбиение на разделы с помощью Redis Cluster. Redis также считается самой быстрой базой данных в мире.

Вы можете настроить Redis, выполнив следующие инструкции из командной строки:

 wget http://download.redis.io/releases/redis-6.0.8.tar.gz
смола xzf redis-6.0.8.tar.gz
компакт-диск редис-6.0.8
делать
 

Используйте Redis, когда…

  • скорость является приоритетом в ваших приложениях.

  • у вас хорошо спланированный дизайн. Redis имеет много определенных структур данных и дает вам возможность явно указать, как вы хотите, чтобы ваши данные хранились.

  • ваша база данных имеет стабильный размер. Redis может увеличить скорость поиска конкретной информации в ваших данных.

 

Cassandra

Apache Cassandra — это хранилище данных NoSQL, ориентированное на столбцы, предназначенное для приложений хранения с большим количеством операций записи. Cassandra обеспечивает масштабируемость и высокую доступность без ущерба для производительности. Cassandra также обеспечивает меньшую задержку для многопользовательских приложений. Cassandra немного сложна в установке и запуске. Однако вы можете сделать это, следуя руководству по установке на официальном сайте Cassandra.

Используйте Cassandra, когда…

  • у вас есть огромные объемы данных. Cassandra обладает большой гибкостью и мощностью для работы с невероятными объемами данных, поэтому большинство приложений для работы с большими данными — хороший вариант использования Cassandra.

  • вам нужна надежность. Cassandra обеспечивает стабильную производительность в режиме реального времени для приложений потоковой передачи и онлайн-обучения.

  • безопасность превыше всего. Cassandra имеет мощное управление безопасностью, что делает ее идеальной для приложений по обнаружению мошенничества.

 

Neo4j

Neo4j — это графовая база данных NoSQL, созданная с нуля для использования данных и взаимосвязей данных. Neo4j соединяет данные по мере их хранения, позволяя выполнять запросы с высокой скоростью. Первоначально Neo4j был реализован на Java и Scala, а затем расширен для использования на других платформах, таких как Python.

Neo4j, по сути, является библиотекой базы данных графов и имеет один из лучших веб-сайтов и систем технической документации. Он четкий, лаконичный и охватывает все вопросы, которые могут возникнуть у вас по поводу установки, начала работы и использования библиотеки.

Используйте Neo4j, когда…

  • вам необходимо визуализировать и анализировать сети и их характеристики.

  • вы разрабатываете и анализируете системы рекомендаций.

  • вы анализируете связи в социальных сетях и извлекаете информацию на основе существующих связей.

  • вы собираетесь выполнять операции по управлению идентификацией и доступом.

  • вам нужно выполнить различные оптимизации цепочки поставок.

Что нужно, чтобы стать специалистом по данным?4 Основные навыки, необходимые каждому специалисту по данным

 

Выводы

Выбор правильной базы данных для вашей структуры данных и приложения может сократить время разработки вашего приложения при одновременном повышении эффективности твоя работа. Развитие способности выбирать правильный тип базы данных на лету может занять некоторое время, но как только вы это сделаете, большая часть утомительной работы над вашим проектом станет намного проще, быстрее и эффективнее. Единственный способ развить любой навык — это практика. Другой способ исследовать — методом проб и ошибок (обычно мой метод). Пробуйте разные варианты, пока не найдете тот, который лучше всего вам подходит и подходит для вашего приложения.

Как использовать базы данных с Python

Поиск

Python позволяет разработчикам взаимодействовать с различными реляционными базами данных (такими как Oracle, SQLite и MySQL) и системами реляционных баз данных (RDBMS) через несколько различных библиотек, которые должны соответствовать стандартам, определенным в PEP. 249.

В этом руководстве по программированию баз данных мы обсудим, как подключиться к базе данных MySQL с помощью Python и выполнять запросы к базе данных. Вы можете узнать больше о PEP 249, посетив Спецификацию API базы данных Python.

Как создать соединение с базой данных в Python

Чтобы создать соединение с базой данных MySQL в Python, разработчикам сначала необходимо загрузить соединитель базы данных , который представляет собой модуль, который позволит вашим сценариям Python взаимодействовать с данными. В этом руководстве будет использоваться база данных MySQL, поскольку это одна из самых популярных и широко используемых баз данных.

Не знакомы с MySQL или хотите улучшить свои навыки разработки MySQL? У нас есть список лучших онлайн-курсов по изучению MySQL, которые помогут вам начать работу.

Чтобы загрузить соединитель базы данных Python MySQL, вы можете использовать PIP со следующей командой:

 $ pip install mysql-connector-python
 

Существует ряд других модулей, которые программисты могут использовать для подключения к базе данных, например PyMySQL , MySqlClient и Наш SQL . Однако в этом руководстве по программированию используется коннектор MySQL Python , который официально поддерживается Oracle и написан исключительно на Python.

Чтобы начать работу с этим модулем, вам необходимо импортировать его в свой скрипт с помощью следующей команды:

 import mysql.connector
 

Далее необходимо создать подключение к базе данных. Есть два способа сделать это: либо использовать функцию connect() , либо использовать функцию Объект MySQLConnection .

Как использовать метод connect() в Python

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

 ', пароль = 'мой-пароль', хост = "192.168.5.7", база данных = 'ученик')
 

Есть четыре ключевых аргумента, которые необходимы программисту для подключения к базе данных:

  • пользователь : Имя пользователя, используемое для подключения к базе данных
  • пароль : пароль пользователя
  • хост : IP-адрес хоста, на котором размещена база данных. Обратите внимание, что по умолчанию используется 127.0.0.1 (локальный хост)
  • .
  • база данных : Имя базы данных, к которой вы пытаетесь подключиться

Вам может быть интересно, почему нет аргумента для порта вашего сервера MySQL. На самом деле есть, и по умолчанию 3306 . Если вы настроили свой сервер на использование другого порта, вы можете использовать порт 9.0316 порт аргумент.

connect() имеет больше необязательных аргументов, о которых вы можете прочитать в официальной документации Connector/Python.

Как использовать MySQLConnection для подключения к базе данных

Вот пример кода, показывающий, как использовать Python и объект MySQLConnection для подключения к базе данных:

 из импорта mysql.connector (соединение)

conn = соединение.MySQLConnection (пользователь = 'Джейн', пароль = 'мой пароль', хост = "192.168.5.7", база данных = "ученик")
 

В оставшейся части этого руководства по программированию баз данных будет использоваться метод connect() .

Как выполнить запрос MySQL в Python

Чтобы выполнить запрос MySQL, вам нужен объект MySQLCursor . Этот объект взаимодействует с объектом MySQLConnection и базой данных.

Вы можете создать MySQLCursor в Python, используя следующий пример кода:

 cursor = cnx.cursor()
 

Затем программисты могут использовать метод execute() для обработки запроса:

 my-query = «SELECT * FROM Student»
результат = cursor.execute (мой запрос)
 

Если вы используете операторы INSERT , DELETE или UPDATE , вам необходимо зафиксировать соединение после выполнения запроса. Вы можете сделать это с помощью метода commit() , показанного в следующем примере кода:

 conn.commit()
 

После завершения взаимодействия с базой данных убедитесь, что вы закрыли соединение и курсор, чтобы освободить системные ресурсы. Вы можете сделать это с помощью close() метод:

 cursor.close()
соединение.закрыть()
 

Вот полностью рабочий пример кода, показывающий, как подключиться к базе данных MySQL с помощью Python, запросить таблицу и закрыть соединение:

 import mysql. connector
из mysql.connector Ошибка импорта
из mysql.connector код ошибки импорта


пытаться:
   соединение = mysql.connector.connect (база данных = 'школа', пароль = 'pass456', пользователь = 'root')
   если соединение.is_connected():
       dbVersion = соединение.get_server_info()
       print("Успешное подключение к версии MySQL Server:", dbVersion)
кроме mysql.connector.Error как ошибка:
   если err.errno == код ошибки.ER_ACCESS_DENIED_ERROR:
       print("Пожалуйста, проверьте свои учетные данные (имя пользователя или пароль)")
   Элиф err.errno == код ошибки.ER_BAD_DB_ERROR:
       print("Пожалуйста, проверьте имя базы данных")
   еще:
       печать (ошибка)
соединение.закрыть()
 

Обратите внимание на попытку.. кроме пункта ; разработчики могут использовать эту ошибку перехвата в своих взаимодействиях с базой данных, чтобы перехватывать любые ошибки.

Заключительные мысли об использовании баз данных с Python

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