How to Connect Python with SQL Database?
Python is a high-level, general-purpose, and very popular programming language. Basically, it was designed with an emphasis on code readability, and programmers can express their concepts in fewer lines of code. We can also use Python with SQL. In this article, we will learn how to connect SQL with Python using the ‘MySQL Connector Python module. The diagram given below illustrates how a connection request is sent to MySQL connector Python, how it gets accepted from the database and how the cursor is executed with result data.
SQL connection with Python
Connecting MySQL with Python
To create a connection between the MySQL database and Python, the connect() method of mysql.connector module is used. We pass the database details like HostName, username, and the password in the method call, and then the method returns the connection object.
The following steps are required to connect SQL with Python:
Step 1: Download and Install the free MySQL database from here.
Step 2: After installing the MySQL database, open your Command prompt.
Step 3: Navigate your Command prompt to the location of PIP. Click here to see, How to install PIP?
Step 4: Now run the commands given below to download and install “MySQL Connector”. Here, mysql.connector statement will help you to communicate with the MySQL database.
Download and install “MySQL Connector”
pip install mysql-connector-python
Step 5: Test MySQL Connector
To check if the installation was successful, or if you already installed “MySQL Connector”, go to your IDE and run the given below code :
If the above code gets executed with no errors, “MySQL Connector” is ready to be used.
Step 6: Create Connection
Now to connect SQL with Python, run the code given below in your IDE.
Подключение к базе данных MySQL с помощью Python
Часто разработчики сталкиваются с задачей подключения к базе данных MySQL при написании программ на Python. Это может быть необходимо для выполнения различных операций с данными: их чтения, записи, обновления и удаления.
Пример проблемы
Рассмотрим простой пример. Представьте, что имеется база данных MySQL, которая содержит информацию о студентах: их имена, возраст и специальность. Вам нужно написать Python-программу, которая будет подключаться к этой базе, получать данные и выводить их на экран.
Решение
Для подключения к MySQL из Python можно использовать специальный модуль mysql.connector .
Прежде всего, убедитесь, что этот модуль установлен в вашей системе. Если нет, его можно установить с помощью команды pip install mysql-connector-python .
Вот как выглядит базовый код для подключения к базе данных MySQL:
import mysql.connector cnx = mysql.connector.connect(user='username', password='password', host='hostname', database='database_name') cnx.close()
В этом коде username и password — это имя пользователя и пароль для подключения к базе данных, hostname — это имя хоста, на котором работает сервер MySQL (обычно это localhost ), а database_name — это имя базы данных.
После установки соединения с базой данных можно выполнять любые операции. Когда они окончены, важно не забыть закрыть соединение с помощью метода close() .
Операции с данными
Чтобы выполнить операцию с данными, например, запросить все записи из таблицы students , можно использовать следующий код:
import mysql.connector cnx = mysql.connector.connect(user='username', password='password', host='hostname', database='database_name') cursor = cnx.cursor() query = ("SELECT * FROM students") cursor.execute(query) for (name, age, major) in cursor: print(f", , ") cursor.close() cnx.close()
В этом примере создается курсор, который выполняет SQL-запрос к базе данных. Затем результаты запроса выводятся на экран.
Таким образом, подключение к базе данных MySQL и выполнение операций с данными в Python — это достаточно простая задача, которую можно выполнить с помощью нескольких строк кода и специального модуля mysql.connector .
How do I connect to a MySQL Database in Python?
Most answers here focus on installing MySQLdb library, I would really suggest opting for MySQL Connector/Python provided by MySQL/Oracle, which makes the process much simpler: stackoverflow.com/questions/372885/…
The problem with using Oracle’s Connector/Python is that it has subtle bugs and other integration issues. It’s easy to install, but nearly impossible to get to work for all the real-world use cases I’ve tried it for. Hence why I always recommend MySQLdb.
w3schools.com/python/python_mysql_create_db.asp : I know that senior devs looks down upon w3school tutorials but they are a good started. Go though it !
26 Answers 26
Connecting to MYSQL with Python 2 in three steps
You must install a MySQL driver before doing anything. Unlike PHP, Only the SQLite driver is installed by default with Python. The most used package to do so is MySQLdb but it’s hard to install it using easy_install. Please note MySQLdb only supports Python 2.
For Windows user, you can get an exe of MySQLdb.
For Linux, this is a casual package (python-mysqldb). (You can use sudo apt-get install python-mysqldb (for debian based distros), yum install MySQL-python (for rpm-based), or dnf install python-mysql (for modern fedora distro) in command line to download.)
After installing, Reboot. This is not mandatory, But it will prevent me from answering 3 or 4 other questions in this post if something goes wrong. So please reboot.
Then it is just like using any other package :
#!/usr/bin/python import MySQLdb db = MySQLdb.connect(host="localhost", # your host, usually localhost user="john", # your username passwd="megajonhy", # your password db="jonhydb") # name of the data base # you must create a Cursor object. It will let # you execute all the queries you need cur = db.cursor() # Use all the SQL you like cur.execute("SELECT * FROM YOUR_TABLE_NAME") # print all the first cell of all the rows for row in cur.fetchall(): print row[0] db.close()
Of course, there are thousand of possibilities and options; this is a very basic example. You will have to look at the documentation. A good starting point.
3 — More advanced usage
Once you know how it works, You may want to use an ORM to avoid writing SQL manually and manipulate your tables as they were Python objects. The most famous ORM in the Python community is SQLAlchemy.
I strongly advise you to use it: your life is going to be much easier.
I recently discovered another jewel in the Python world: peewee. It’s a very lite ORM, really easy and fast to setup then use. It makes my day for small projects or stand alone apps, Where using big tools like SQLAlchemy or Django is overkill :
import peewee from peewee import * db = MySQLDatabase('jonhydb', user='john', passwd='megajonhy') class Book(peewee.Model): author = peewee.CharField() title = peewee.TextField() class Meta: database = db Book.create_table() book = Book(author="me", title='Peewee is cool') book.save() for book in Book.filter(author="me"): print book.title
This example works out of the box. Nothing other than having peewee ( pip install peewee ) is required.