Python数据库操作:使用Python连接和操作数据库
Python是一种高级编程语言,也是一种功能强大的脚本语言。在大数据时代,数据处理和分析越来越重要,Python因其简单易用、面向对象、可扩展性强等优点而在数据科学领域得到广泛应用。在Python中,连接和操作数据库是非常常见的任务,Python提供了多种连接数据库的接口,本文将详细介绍Python连接和操作数据库的方法和技巧。
一、Python连接数据库的方法
Python连接数据库的方法有很多,根据不同的数据库类型,采用不同的连接方式。下面介绍几种常见的Python连接数据库的方法。
- MySQL数据库
MySQL是一种常用的关系型数据库,Python提供了多种连接MySQL的接口,包括Python DB API、MySQLdb、pymysql等。其中,Python DB API是Python标准库提供的一种通用的数据库访问接口,可以连接各种类型的数据库。MySQLdb是Python的一个MySQL的接口,是Python的一个第三方库。而pymysql是一种Python对MySQL数据库的接口,与MySQLdb功能相似。
(1)Python DB API连接MySQL
Python DB API是Python标准库提供的一种通用的数据库访问接口,支持连接各种类型的数据库,包括MySQL。使用Python DB API连接MySQL的代码如下所示:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM customers")
myresult = mycursor.fetchall()
for x in myresult:
print(x)
上面的代码首先导入mysql.connector模块,然后使用connect方法连接到MySQL数据库。其中,host、user、password、database是连接MySQL的必要参数。之后,创建一个游标对象,使用execute方法执行SQL语句,再使用fetchall方法获取执行结果。
(2)MySQLdb连接MySQL
MySQLdb是Python的一个MySQL的接口,是Python的一个第三方库。使用MySQLdb连接MySQL的代码如下所示:
import MySQLdb
db = MySQLdb.connect(host="localhost", user="yourusername",
passwd="yourpassword", db="mydatabase")
cursor = db.cursor()
cursor.execute("SELECT * FROM customers")
data = cursor.fetchall()
for row in data:
print(row)
上面的代码首先导入MySQLdb模块,然后使用connect方法连接到MySQL数据库。其中,host、user、passwd、db是连接MySQL的必要参数。之后,创建一个游标对象,使用execute方法执行SQL语句,再使用fetchall方法获取执行结果。
(3)pymysql连接MySQL
pymysql是一种Python对MySQL数据库的接口,与MySQLdb功能相似。使用pymysql连接MySQL的代码如下所示:
import pymysql
conn = pymysql.connect(host="localhost", user="yourusername",
passwd="yourpassword", db="mydatabase")
cur = conn.cursor()
cur.execute("SELECT * FROM customers")
res = cur.fetchall()
for row in res:
print(row)
上面的代码首先导入pymysql模块,然后使用connect方法连接到MySQL数据库。其中,host、user、passwd、db是连接MySQL的必要参数。之后,创建一个游标对象,使用execute方法执行SQL语句,再使用fetchall方法获取执行结果。
- SQLite数据库
SQLite是一种轻量级的关系型数据库,适合小型应用程序。Python自带了一个SQLite模块,可以直接使用Python操作SQLite数据库。
使用Python连接SQLite数据库的代码如下所示:
import sqlite3
conn = sqlite3.connect('mydatabase.db')
print("Opened database successfully");
conn.execute('''CREATE TABLE COMPANY
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);''')
print("Table created successfully");
conn.close()
上面的代码首先导入sqlite3模块,然后使用connect方法连接到SQLite数据库。之后,使用execute方法执行SQL语句,创建一个Company表格。最后,使用close方法关闭数据库连接。
- MongoDB数据库
MongoDB是一种非关系型数据库,以文档的方式存储数据,在Python中连接MongoDB需要使用第三方库pymongo。下面的代码演示了如何使用Python连接MongoDB数据库。
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mydict = {"name": "John", "address": "Highway 37"}
x = mycol.insert_one(mydict)
print(x.inserted_id)
上面的代码首先导入pymongo模块,然后使用MongoClient方法连接到MongoDB数据库。其中,mongodb://localhost:27017/表示连接本地的MongoDB数据库。之后,使用mydb方法创建一个数据库对象,使用mycol方法创建一个集合对象。最后,使用insert_one方法向集合中插入一个文档。
二、Python操作数据库内容的方法
Python连接数据库后,就可以使用Python操作数据库内的内容。常见的操作包括插入、删除、修改和查询。下面介绍使用Python操作数据库内内容的方法。
- 插入数据
插入数据是向数据库中添加新数据的过程。使用Python向数据库插入数据的代码如下所示:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
上面的代码首先连接到MySQL数据库,使用execute方法执行SQL语句。其中,使用%作为占位符,使用val表示插入的数据。使用commit方法保存更改,使用rowcount方法获取受影响的行数。
- 删除数据
删除数据是删除数据库中的数据的过程。使用Python删除数据库中的数据的代码如下所示:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "DELETE FROM customers WHERE address = 'Highway 21'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "record(s) deleted")
上面的代码首先连接到MySQL数据库,使用execute方法执行SQL语句。其中,使用WHERE子句指定删除的条件。使用commit方法保存更改,使用rowcount方法获取受影响的行数。
- 修改数据
修改数据是修改数据库中的数据的过程。使用Python修改数据库中的数据的代码如下所示:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "UPDATE customers SET address = 'Canyon 123' WHERE address = 'Highway 37'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "record(s) affected")
上面的代码首先连接到MySQL数据库,使用execute方法执行SQL语句。其中,使用SET子句指定修改的内容,使用WHERE子句指定修改的条件。使用commit方法保存更改,使用rowcount方法获取受影响的行数。
- 查询数据
查询数据是从数据库中获取数据的过程。使用Python查询数据库中的数据的代码如下所示:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM customers")
myresult = mycursor.fetchall()
for x in myresult:
print(x)
上面的代码首先连接到MySQL数据库,使用execute方法执行SQL语句。使用fetchall方法获取执行结果。最后,使用循环遍历输出查询结果。
三、Python操作数据库的注意事项
在Python连接和操作数据库时,需要注意以下几点:
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/260d934e57.html
