Python与数据库:MySQL、PostgreSQL、SQLite等
Python是一门广泛应用于各种领域的编程语言,通过集成各种数据库模块,使其能够和各种类型的数据库打交道。MySQL、PostgreSQL和SQLite等数据库受到Python程序员们的喜爱,这些数据库可通过Python知名模块如:MySQLdb、psycopg2和sqlite3与Python进行交互。
本文将会讨论如何在Python中与这些数据库进行交互,主要涉及以下内容:
1.安装数据库和Python模块
为了使Python能够和MySQL、PostgreSQL和SQLite等数据库进行交互,你需要在自己的系统中安装相应的数据库和Python模块。在Linux命令行下,使用以下命令可以轻松地安装MySQL和SQLite:
```
$ sudo apt-get install mysql-server mysql-client
$ sudo apt-get install sqlite3
```
安装PostgreSQL需要使用以下命令:
```
$ sudo apt-get install postgresql-9.5
$ sudo apt-get install libpq-dev
```
接下来,你需要安装Python模块来让Python语言与这些数据库进行交互,命令如下:
```
$ pip install MySQL-python
$ pip install psycopg2
$ pip install sqlite3
```
2.连接MySQL数据库
从Python程序中连接MySQL数据库需要使用`mysql-python`模块。下面是一个简单的例子:
```python
import MySQLdb
# 打开数据库连接
db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" )
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 查询语句
sql = "SELECT * FROM EMPLOYEE \
WHERE INCOME > %s" % (1000)
try:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 打印结果
print("fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
(fname, lname, age, sex, income ))
except:
print("Error: unable to fetch data")
# 关闭数据库连接
db.close()
```
3.连接PostgreSQL数据库
使用Python连接PostgreSQL数据库需要使用`psycopg2`模块。下面是一个简单的例子:
```python
import psycopg2
# 打开数据库连接
conn = psycopg2.connect(database="testdb", user="user", password="password", host="127.0.0.1", port="5432")
# 创建一个游标对象
cur = conn.cursor()
# 执行一个SQL语句
cur.execute("SELECT * FROM test_table")
# 获取结果集
rows = cur.fetchall()
# 打印结果
for row in rows:
print(row)
# 关闭游标和数据库连接
cur.close()
conn.close()
```
4.连接SQLite数据库
Python中连接SQLite数据库需要使用`sqlite3`模块。下面是一个简单的例子:
```python
import sqlite3
# 打开数据库连接
conn = sqlite3.connect('test.db')
# 创建一个游标对象
cur = conn.cursor()
# 创建表
cur.execute('''CREATE TABLE COMPANY
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);''')
# 插入数据
cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (1, 'Paul', 32, 'California', 20000.00 )")
# 提交事务
conn.commit()
# 查询数据
cur.execute("SELECT id, name, address, salary from COMPANY")
for row in cur:
print(row)
# 关闭游标和数据库连接
cur.close()
conn.close()
```
总结:
通过Python语言与MySQL、PostgreSQL和SQLite等数据库进行交互是一种非常实用的技术,并且在各种应用程序中广泛应用。上述介绍的方法是连接这些数据库的最基本方法,程序员可以通过这些模块实现更复杂的数据库操作。