使用Python实现数据库连接与操作

发布时间:2023-05-12

一、连接数据库

在使用Python操作数据库之前,我们需要先连接数据库。Python中很多第三方库可以支持数据库连接,如PyMySQL、psycopg2等。 以PyMySQL为例,在使用之前需要先安装PyMySQL库。

pip install PyMySQL

连接数据库需要提供数据库的地址、用户名、密码、数据库名等信息,具体代码如下:

import pymysql
db = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    database='database_name'
)

上述代码中,db就是所连接的数据库。

二、创建表

在连接数据库之后,我们可以通过Python代码创建表。创建表需要使用SQL语句,使用Python的MySQLCursor.execute()方法执行SQL语句即可。

import pymysql
db = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    database='database_name'
)
cursor = db.cursor()
# SQL语句
sql = '''
    CREATE TABLE `users` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
        `age` int(11) DEFAULT NULL,
        `email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
'''
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库
db.commit()
# 关闭游标和数据库连接
cursor.close()
db.close()

上述代码中,我们使用了CREATE TABLE语句创建了一个名为users的表,表中包含了idnameageemail四个字段。

三、插入数据

在创建了表之后,我们可以使用Python代码向表中插入数据。插入数据同样需要使用SQL语句,Python的MySQLCursor.execute()方法同样可以执行插入数据的SQL语句。

import pymysql
db = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    database='database_name'
)
cursor = db.cursor()
# SQL语句
sql = "INSERT INTO `users`(`name`, `age`, `email`) VALUES ('Tom', 20, 'tom@example.com')"
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库
db.commit()
# 关闭游标和数据库连接
cursor.close()
db.close()

上述代码中,我们使用INSERT INTO语句向users表中插入了一条数据。

四、查询数据

在向表中插入了数据之后,我们可以使用Python代码查询数据。查询数据同样需要使用SQL语句,Python的MySQLCursor.execute()方法同样可以执行查询数据的SQL语句。查询数据之后需要使用MySQLCursor.fetchall()方法获取查询结果,并且必须在查询完毕之后关闭游标。

import pymysql
db = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    database='database_name'
)
cursor = db.cursor()
# SQL语句
sql = "SELECT * FROM `users`"
# 执行SQL语句
cursor.execute(sql)
# 获取查询结果
results = cursor.fetchall()
for row in results:
    id = row[0]
    name = row[1]
    age = row[2]
    email = row[3]
    print(f"id={id}, name={name}, age={age}, email={email}")
# 关闭游标和数据库连接
cursor.close()
db.close()

上述代码中,我们使用SELECT语句查询了users表中的所有数据,并将查询结果打印输出。

五、更新数据

在查询到数据之后,我们也可以使用Python代码更新数据。更新数据同样需要使用SQL语句,并且需要使用Python的MySQLCursor.execute()方法执行更新数据的SQL语句。

import pymysql
db = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    database='database_name'
)
cursor = db.cursor()
# SQL语句
sql = "UPDATE `users` SET `email`='tom_new@example.com' WHERE `name`='Tom'"
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库
db.commit()
# 关闭游标和数据库连接
cursor.close()
db.close()

上述代码中,我们使用UPDATE语句将users表中nameTom的记录的email字段更新为tom_new@example.com

六、删除数据

在删除数据之前,我们需要知道需要删除哪些数据,并且需要使用SQL语句执行删除数据的操作。Python的MySQLCursor.execute()方法同样可以执行删除数据的SQL语句。

import pymysql
db = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    database='database_name'
)
cursor = db.cursor()
# SQL语句
sql = "DELETE FROM `users` WHERE `name`='Tom'"
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库
db.commit()
# 关闭游标和数据库连接
cursor.close()
db.close()

上述代码中,我们使用DELETE语句将users表中nameTom的记录删除。