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