匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

Python与数据库:MySQL、PostgreSQL、SQLite等

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等数据库进行交互是一种非常实用的技术,并且在各种应用程序中广泛应用。上述介绍的方法是连接这些数据库的最基本方法,程序员可以通过这些模块实现更复杂的数据库操作。