Python数据库操作:使用Python连接和操作数据库

Python是一种高级编程语言,也是一种功能强大的脚本语言。在大数据时代,数据处理和分析越来越重要,Python因其简单易用、面向对象、可扩展性强等优点而在数据科学领域得到广泛应用。在Python中,连接和操作数据库是非常常见的任务,Python提供了多种连接数据库的接口,本文将详细介绍Python连接和操作数据库的方法和技巧。

一、Python连接数据库的方法

Python连接数据库的方法有很多,根据不同的数据库类型,采用不同的连接方式。下面介绍几种常见的Python连接数据库的方法。

  1. 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方法获取执行结果。

  1. 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方法关闭数据库连接。

  1. 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操作数据库内内容的方法。

  1. 插入数据

插入数据是向数据库中添加新数据的过程。使用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方法获取受影响的行数。

  1. 删除数据

删除数据是删除数据库中的数据的过程。使用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方法获取受影响的行数。

  1. 修改数据

修改数据是修改数据库中的数据的过程。使用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方法获取受影响的行数。

  1. 查询数据

查询数据是从数据库中获取数据的过程。使用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连接和操作数据库时,需要注意以下几点:

  1.  

 

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/260d934e57.html