📜  讨论Python MySQL(1)

📅  最后修改于: 2023-12-03 14:57:36.986000             🧑  作者: Mango

Python MySQL

Python与MySQL是很好的朋友。Python提供了非常方便的MySQL驱动程序,使得程序员们可以轻松地与MySQL数据库交互。在本文中,我们将学习如何使用Python连接MySQL数据库以及进行一些常见的操作。

MySQL驱动程序

Python提供了很多MySQL驱动程序,比如PyMySQLmysql-connector-python。这两个驱动程序都在Python 3中得到了广泛的支持和使用。在本文中,我们将使用PyMySQL作为我们的MySQL驱动程序,因为它提供了简单易用的API。

安装PyMySQL

要安装PyMySQL,可以使用pip命令:

pip install PyMySQL
连接MySQL数据库

在使用Python与MySQL交互之前,我们需要先连接到MySQL数据库。使用PyMySQL连接到MySQL数据库非常简单。以下是一个链接到MySQL数据库的示例代码:

import pymysql

# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="password", database="test")

# 关闭数据库连接
db.close()

在上面的代码中,我们使用pymysql模块打开了一个MySQL数据库连接。我们需要指定数据库的主机名、用户名、密码和数据库名称。在该连接使用结束后,我们应该关闭它以释放资源。

创建数据表

在我们开始向MySQL数据库插入数据之前,我们需要先创建一个数据表。以下是一个创建数据表的示例代码:

import pymysql

# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="password", database="test")

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 使用 execute() 方法执行 SQL,如果数据表存在则删除
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

# 使用 execute() 方法执行 SQL,创建 EMPLOYEE 数据表
sql = """CREATE TABLE EMPLOYEE (
         FIRST_NAME  CHAR(20) NOT NULL,
         LAST_NAME  CHAR(20),
         AGE INT,  
         SEX CHAR(1),
         INCOME FLOAT )"""

cursor.execute(sql)

# 关闭数据库连接
db.close()

在上面的代码中,我们使用了CREATE TABLE语句来创建一个名为EMPLOYEE的数据表。在此数据表中,我们定义了FIRST_NAME、LAST_NAME、AGE、SEX和INCOME等字段。

插入数据

现在我们已经创建了一个名为EMPLOYEE的数据表,我们可以向其中插入一些数据了。以下是一个插入数据的示例代码:

import pymysql

# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="password", database="test")

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
         LAST_NAME, AGE, SEX, INCOME)
         VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""

try:
    # 执行sql语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
except:
    # 如果发生错误则回滚
    db.rollback()

# 关闭数据库连接
db.close()

在上面的代码中,我们使用SQL语句向EMPLOYEE数据表中插入一笔数据。在执行SQL语句之前,我们需要调用db.commit()方法提交事务以保存更改。在执行SQL语句时,如果出现错误,我们可以使用db.rollback()方法回滚事务以撤销更改。

查询数据

现在我们已经向EMPLOYEE数据表中添加了一些数据,我们可以查询它们了。以下是一个查询数据的示例代码:

import pymysql

# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="password", database="test")

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# SQL 查询语句
sql = "SELECT * FROM EMPLOYEE \
       WHERE INCOME > '%d'" % (1000)

try:
    # 执行SQL语句
    cursor.execute(sql)
    # 获取所有记录列表
    results = cursor.fetchall()
    for row in results:
        first_name = row[0]
        last_name = row[1]
        age = row[2]
        sex = row[3]
        income = row[4]
        # 打印结果
        print("first_name=%s,last_name=%s,age=%d,sex=%s,income=%d" % \
              (first_name, last_name, age, sex, income))
except:
    print("Error: unable to fetch data")

# 关闭数据库连接
db.close()

在上面的代码中,我们使用SQL语句查询EMPLOYEE数据表中收入大于1000的员工记录。然后,我们使用cursor.fetchall()方法获取所有的匹配记录。最后,我们使用for循环逐行处理每一行记录。