隨着互聯網的不斷發展,數據成為了重要的資產,對於企業來說,數據是難以替代的重要財富,而在 Python 中,與數據庫進行交互是其中一個重要的功能。Python 作為一種高級編程語言,自然而然具備了與數據庫交互的能力。通過 Python,我們可以訪問和操作多種數據庫類型,包括但不限於 MySQL、SQLite、PostgreSQL 等等,Python 的 DB-API 還可以讓你在某種程度上「常用」各類數據庫,這樣的能力在數據多元化的今天非常重要。
一、安裝 SQLAlchemy
在開始用 Python 操作數據庫之前,我們需要通過 pip 安裝一個 Python 的 ORM 庫 SQLAlchemy。
pip install SQLAlchemy
ORM 是 Object Relationship Mapping 的簡稱,也就是對象關係映射。ORM 把數據庫的表結構映射到對象上,操作數據庫表就變成了操作類和對象。
二、連接數據庫
Python 和數據庫連接的方式有許多,我們在這裡介紹兩種最常用的方法,分別是 SQLite 和 MySQL 的連接。
1. SQLite 連接
SQLite 是一款輕型的關係型數據庫,Python 所有版本默認都已安裝了這款數據庫。以下是一個 Python 使用 SQLite 的示例代碼:
import sqlite3
# 連接到 SQLite 數據庫,文件名是 test.db,如果文件不存在,會自動在當前目錄創建:
conn = sqlite3.connect('test.db')
# 創建一個 Cursor(游標):
cursor = conn.cursor()
# 執行一條 SQL 語句,創建 user 表:
cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')
# 繼續執行一條 SQL 語句,插入一條記錄:
cursor.execute('insert into user (id, name) values (\'1\', \'Michael\')')
# 通過 rowcount 獲得插入的行數:
print(cursor.rowcount)
# 關閉 Cursor(游標):
cursor.close()
# 提交事務:
conn.commit()
# 關閉 Connection(連接):
conn.close()
2. MySQL 連接
MySQL 是最流行的關係型數據庫之一,提供了多種編程語言的 API,這裡以 Python 的 PyMySQL 和 MySQL Connector 為例:
在使用 PyMySQL 之前,需要先安裝這個模塊,使用如下命令安裝:
pip install PyMySQL
PyMySQL 示例代碼如下:
import pymysql
# 打開數據庫連接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用 cursor() 方法創建一個游標對象 cursor
cursor = db.cursor()
# 使用 execute() 方法執行 SQL 查詢
cursor.execute("SELECT * FROM EMPLOYEE")
# 使用 fetchone() 方法獲取單條數據.
data = cursor.fetchone()
print ("Database version : %s " % data)
# 關閉數據庫連接
db.close()
MySQL Connector 使用:
import mysql.connector
# 打開數據庫連接
conn = mysql.connector.connect(user='root', password='yourpassword', database='test')
# 創建游標對象
cursor = conn.cursor()
# 執行 SQL 查詢
cursor.execute('SELECT * FROM test')
# 獲取所有結果集
result = cursor.fetchall()
# 關閉游標和連接
cursor.close()
conn.close()
三、操作數據庫
1. 插入數據
插入數據是數據庫操作的基本操作之一,下面是一段示例代碼:
import pymysql
# 打開數據庫連接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用 cursor() 方法創建一個游標對象 cursor
cursor = db.cursor()
# SQL 插入語句
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
LAST_NAME, AGE, SEX, INCOME) \
VALUES ('%s', '%s', '%s', '%s', '%s')" % \
('Mac', 'Mohan', 20, 'M', 2000)
try:
# 執行 sql 語句
cursor.execute(sql)
# 提交到數據庫執行
db.commit()
except:
# 如果發生錯誤則回滾
db.rollback()
# 關閉數據庫連接
db.close()
2. 查詢數據
查詢數據也是數據庫操作中常見的操作之一,以下是 Python 操作 MySQL 數據庫查詢語句的示例代碼:
import mysql.connector
# 打開數據庫連接
conn = mysql.connector.connect(user='root', password='yourpassword', database='test')
# 創建游標對象
cursor = conn.cursor()
# 執行 SQL 查詢
cursor.execute('SELECT * FROM test')
# 獲取所有結果集
results = cursor.fetchall()
# 循環遍歷結果集並打印
for row in results:
print(row)
# 關閉游標和連接
cursor.close()
conn.close()
3. 更新數據
更新數據也是數據庫操作中常見的操作之一,以下是 Python 操作 MySQL 更新數據的示例代碼:
import mysql.connector
# 打開數據庫連接
conn = mysql.connector.connect(user='root', password='yourpassword', database='test')
# 創建游標對象
cursor = conn.cursor()
# SQL 更新語句
sql = "UPDATE employee SET age = age + 1 WHERE SEX = '%c'" % ('M')
try:
# 執行 SQL 語句
cursor.execute(sql)
# 提交到數據庫執行
conn.commit()
except:
# 發生錯誤時回滾
conn.rollback()
# 關閉游標和連接
cursor.close()
conn.close()
4. 刪除數據
刪除數據也是數據庫操作中常見的操作之一,以下是 Python 操作 MySQL 刪除數據的示例代碼:
import mysql.connector
# 打開數據庫連接
conn = mysql.connector.connect(user='root', password='yourpassword', database='test')
# 創建游標對象
cursor = conn.cursor()
# SQL 刪除語句
sql = "DELETE FROM employee WHERE AGE > '%d'" % (20)
try:
# 執行 SQL 語句
cursor.execute(sql)
# 提交修改
conn.commit()
except:
# 發生錯誤時回滾
conn.rollback()
# 關閉游標和連接
cursor.close()
conn.close()
總結:
在 Python 中操作數據庫是很常見的任務,Python 提供了多種操作數據庫的方法,我們可以選擇最合適的方法來完成我們的任務。SQLite、MySQL 或 PostgreSQL 這些數據庫系統都可以通過 Python 輕鬆連接,提供了各種方便的操作方式,同時 ORM 也是連接和操作數據庫的一個有效手段。無論你是要開發 Web、移動應用還是數據分析,Python 都能提供完整的工具鏈以及巨大的優勢,操作數據庫是其中一個非常重要的技能。
原創文章,作者:MSNUV,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/330415.html