python连接数据库(连MySQL)
Python操作和连接数据库
在Python中,你可以使用不同的库来操作和连接数据库,最常用的是sqlite3
、MySQLdb
和psycopg2
。
- 使用
sqlite3
连接和操作SQLite数据库:
import sqlite3
# 连接数据库
conn = sqlite3.connect('database.db')
# 创建游标
cursor = conn.cursor()
# 执行SQL语句
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)")
# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('John', 25))
# 提交事务
conn.commit()
# 查询数据
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
# 关闭连接
conn.close()
- 使用
MySQLdb
连接和操作MySQL数据库: - python3.7安装不了MySQLdb这个模块,应该安装mysqlclient,就可以import MySQLdb了。
import MySQLdb
# 连接数据库
conn = MySQLdb.connect(host='localhost', user='root', passwd='password', db='database')
# 创建游标
cursor = conn.cursor()
# 执行SQL语句
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), age INT)")
# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ('John', 25))
# 提交事务
conn.commit()
# 查询数据
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
# 关闭连接
conn.close()
- 使用
psycopg2
连接和操作PostgreSQL数据库:
import psycopg2
# 连接数据库
conn = psycopg2.connect(host='localhost', user='postgres', password='password', dbname='database')
# 创建游标
cursor = conn.cursor()
# 执行SQL语句
cursor.execute("CREATE TABLE IF NOT EXISTS users (id SERIAL PRIMARY KEY, name VARCHAR(255), age INT)")
# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ('John', 25))
# 提交事务
conn.commit()
# 查询数据
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
# 关闭连接
conn.close()
以上是连接和操作数据库的基本示例,具体的操作和语法会根据不同的数据库而有所不同。你可以根据自己的需求选择适合的库和数据库进行操作。
使用pycharm3.8版本安装mysqlclient模块:就可以使用MySQLdb模块了
python3.7安装不了MySQLdb这个模块,应该安装mysqlclient,就可以import MySQLdb了。
import MySQLdb
# 连接数据库
conn = MySQLdb.connect(host='192.168.8.200', user='root', passwd='123456', db='test')
# 创建游标
cursor = conn.cursor()
# 执行SQL语句
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), age INT)")
# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ('aaa', 25))
cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ('bbb', 19))
cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ('ccc', 21))
# 提交事务
conn.commit()
# 查询数据
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
# 关闭连接
conn.close()
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
使用pymysql连接数据(执行查询语句):
import pymysql
# 创建数据库连接
conn = pymysql.connect(
host = '192.168.8.200', # 连接主机, 默认127.0.0.1
user = 'root', # 用户名
passwd = '123456',# 密码
port = 3306, # 端口,默认为3306
db = 'test', # 数据库名称
charset = 'utf8' # 字符编码
)
# 生成游标对象 cursor
cursor = conn.cursor()
# 查询数据库版本
cursor.execute("select * from users") # 返回值是查询到的数据数量
# 通过 fetchall方法获得数据
data = cursor.fetchall()
for row in data:
print(row)
cursor.close() # 关闭游标
conn.close() # 关闭连接
Python小例子
关注后可发消息