📜  如何将Python与 SQL 数据库连接起来?

📅  最后修改于: 2022-05-13 01:57:09.915000             🧑  作者: Mango

如何将Python与 SQL 数据库连接起来?

Python是一种高级、通用且非常流行的编程语言。基本上,它的设计重点是代码可读性,程序员可以用更少的代码行来表达他们的概念。我们还可以将Python与 SQL 一起使用。在本文中,我们将学习如何使用“MySQL Connector Python ”模块将 SQL 与Python连接起来。下图说明了连接请求是如何发送到 MySQL 连接器Python的,它是如何从数据库中被接受的,以及游标是如何与结果数据一起执行的。

与Python的 SQL 连接

用Python连接 SQL

为了在 MySQL 数据库和Python之间创建连接,使用了mysql.connector模块的connect()方法。我们在方法调用中传递数据库详细信息,如主机名、用户名和密码,然后方法返回连接对象。

将 SQL 与Python连接起来需要以下步骤:

第 1 步:从此处下载并安装免费的 MySQL 数据库。

第 2 步:安装 MySQL 数据库后,打开命令提示符。

第 3 步:将您的命令提示符导航到 PIP 的位置。点击这里查看,如何安装 PIP?

第 4 步:现在运行下面给出的命令以下载并安装“MySQL 连接器”。在这里,mysql.connector 语句将帮助您与 MySQL 数据库进行通信。

pip install mysql-connector-python 

第 5 步:要检查安装是否成功,或者您是否已经安装了“MySQL 连接器”,请转到您的 IDE 并运行以下代码:

import mysql.connector

如果上面的代码执行没有错误,“MySQL 连接器”就可以使用了。

第 6 步:现在要将 SQL 与Python连接起来,在您的 IDE 中运行下面给出的代码。

Python3
# Importing module
import mysql.connector
 
# Creating connection object
mydb = mysql.connector.connect(
    host = "localhost",
    user = "yourusername",
    password = "your_password"
)
 
# Printing the connection object
print(mydb)


Python3
import mysql.connector
 
mydb = mysql.connector.connect(
    host = "localhost",
    user = "yourusername",
    password = "your_password"
)
 
# Creating an instance of 'cursor' class
# which is used to execute the 'SQL'
# statements in 'Python'
cursor = mydb.cursor()
 
# Creating a database with a name
# 'geeksforgeeks' execute() method
# is used to compile a SQL statement
# below statement is used to create
# the 'geeksforgeeks' database
cursor.execute("CREATE DATABASE geeksforgeeks")


Python3
import mysql.connector
 
mydb = mysql.connector.connect(
    host = "localhost",
    user = "root",
    password = "1234"
)
 
# Creating an instance of 'cursor' class
# which is used to execute the 'SQL'
# statements in 'Python'
cursor = mydb.cursor()
 
# Show database
cursor.execute("SHOW DATABASE")
 
for x in cursor:
  print(x)


Python3
import mysql.connector
 
mydb = mysql.connector.connect(
    host = "localhost",
    user = "yourusername",
    password = "your_password",
    database = "geeksforgeeks"
)
 
cursor = mydb.cursor()
 
# Creating a table called 'gfg' in the
# 'geeksforgeeks' database
cursor.execute("CREATE TABLE gfg (name VARCHAR(255), user_name VARCHAR(255))")


Python3
import mysql.connector
 
mydb = mysql.connector.connect(
    host = "localhost",
    user = "root
    password = "1234",
    database = "geeksforgeeks"
)
 
cursor = mydb.cursor()
 
# Show existing tables
cursor.execute("SHOW TABLES")
 
for x in cursor:
  print(x)


输出:

在这里,在上面的代码中:

代码信息

创建数据库

要创建数据库,我们将使用 CREATE DATABASE database_name 语句,我们将通过创建“光标”类的实例来执行该语句。

Python3

import mysql.connector
 
mydb = mysql.connector.connect(
    host = "localhost",
    user = "yourusername",
    password = "your_password"
)
 
# Creating an instance of 'cursor' class
# which is used to execute the 'SQL'
# statements in 'Python'
cursor = mydb.cursor()
 
# Creating a database with a name
# 'geeksforgeeks' execute() method
# is used to compile a SQL statement
# below statement is used to create
# the 'geeksforgeeks' database
cursor.execute("CREATE DATABASE geeksforgeeks")

输出:

如果名称为“geeksforgeeks”的数据库已经存在,那么您将收到错误消息,否则不会出现错误。因此,请确保您正在创建的新数据库与您已经创建或以前存在的数据库不具有相同的名称。现在要检查您创建的数据库,使用“SHOW DATABASES” - SQL 语句,即 cursor.execute(“SHOW DATABASES”)

Python3

import mysql.connector
 
mydb = mysql.connector.connect(
    host = "localhost",
    user = "root",
    password = "1234"
)
 
# Creating an instance of 'cursor' class
# which is used to execute the 'SQL'
# statements in 'Python'
cursor = mydb.cursor()
 
# Show database
cursor.execute("SHOW DATABASE")
 
for x in cursor:
  print(x)

输出:

创建表

现在要在数据库中创建表,首先,我们必须选择一个数据库,为此,我们将在 connect()函数中传递database = “NameofDatabase”作为您的第四个参数。由于我们在上面创建了一个名为“geekforgeeks”的数据库,所以我们将使用它并创建我们的表。我们将使用CREATE TABLE gfg (variableName1 datatype, variableName2 datatype)语句来创建名为“gfg”的表。

Python3

import mysql.connector
 
mydb = mysql.connector.connect(
    host = "localhost",
    user = "yourusername",
    password = "your_password",
    database = "geeksforgeeks"
)
 
cursor = mydb.cursor()
 
# Creating a table called 'gfg' in the
# 'geeksforgeeks' database
cursor.execute("CREATE TABLE gfg (name VARCHAR(255), user_name VARCHAR(255))")

输出:

如果名称为“gfg”的表已经存在,则会报错,否则不会报错。因此,请确保您正在创建的新表与您已经创建或之前存在的表不具有相同的名称。现在要检查您创建的表,请使用“SHOW TABLES” - SQL 语句即 cursor.execute(“SHOW TABLES”)。

Python3

import mysql.connector
 
mydb = mysql.connector.connect(
    host = "localhost",
    user = "root
    password = "1234",
    database = "geeksforgeeks"
)
 
cursor = mydb.cursor()
 
# Show existing tables
cursor.execute("SHOW TABLES")
 
for x in cursor:
  print(x)

输出:

笔记:

  • mysql.connector允许Python程序访问 MySQL 数据库。
  • 带有参数的 MySQL Connector 类的connect()方法将连接到 MySQL,如果连接建立成功,将返回一个 MySQLConnection 对象。
  • user = “yourusername” ,这里的 “yourusername” 应该是你在安装 MySQL 时设置的用户名。
  • password = “your_password” ,这里的 “your_password” 应该和你在 MySQL 安装时设置的密码一样。
  • cursor()用于执行Python中的 SQL 语句。
  • execute()方法用于编译 SQL 语句。