Python中如何进行数据库编程?代码举例讲解

Python有丰富的数据库驱动,可以轻松连接各种数据库。主要有:

1. MySQL:

  • 使用pymysql驱动连接MySQL数据库。
  • 用法:
import pymysql

conn = pymysql.connect(host='localhost', user='root', password='123456', database='test')

cursor = conn.cursor()
cursor.execute('select * from users')
result = cursor.fetchall()
print(result)

cursor.execute('insert into users values(%s,%s)', ('Jack', '123456'))
conn.commit()

cursor.close() 
conn.close() 

2. PostgreSQL:

  • 使用psycopg2驱动连接PostgreSQL数据库。
  • 用法:
import psycopg2

conn = psycopg2.connect(database='test', user='postgres', password='123456', host='localhost')

cursor = conn.cursor()
cursor.execute('SELECT * FROM users;') 
result = cursor.fetchall()
print(result)

cursor.execute('INSERT INTO users VALUES (%s, %s);', ('Jack', '123456'))
conn.commit()   

cursor.close()
conn.close()

3. MongoDB:

  • 一个 NoSQL 数据库,使用pymongo驱动进行连接。
  • 用法:
import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017/') 
db = client['test']
collection = db['users']

result = collection.find()
for item in result:
    print(item)

collection.insert_one({'name': 'Jack', 'age': 18})  

client.close() 

4. Redis:

  • 一个 NoSQL Key-Value数据库,使用redis-py驱动进行连接。
  • 用法:
import redis

conn = redis.Redis('localhost')

conn.set('name', 'Jack')
print(conn.get('name'))    # Jack

conn.lpush('list', 1, 2, 3)
conn.lrange('list', 0, -1)   # [b'3', b'2', b'1']

conn.hset('user', 'name', 'Jack') 
conn.hget('user', 'name')         # b'Jack'

conn.zadd('score', {'Jack': 95, 'Tom': 85})
conn.zrange('score', 0, -1, withscores=True)  
# [(b'Tom', 85), (b'Jack', 95)]