下面是详细的讲解:
准备工作
- 在服务器上安装并配置MySQL,确保能够正常连接和操作
- 安装Python,在本地电脑或服务器上都可,版本建议使用3.x
安装pymysql库
使用pip或conda命令进行安装:pip install pymysql
或 conda install pymysql
连接数据库
使用pymysql.connect()方法连接MySQL数据库。这个方法接收若干个参数,其中最重要的是host、user、password和db,分别代表数据库的主机地址、用户名、密码和要连接的数据库名。以下是示例代码:
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost', user='root', password='password', db='test', port=3306)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print("Database version : %s " % data)
# 关闭数据库连接
db.close()
执行SQL语句
连接数据库成功后,就可以执行SQL语句了。使用游标对象执行execute()方法即可,该方法接收SQL语句作为参数,并返回一个元组,其中第一个元素表示执行影响的行数,第二个元素是查询结果。以下是示例代码:
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost', user='root', password='password', db='test', port=3306)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 插入一条数据
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) \
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print("插入数据成功!")
except:
# 如果发生错误则回滚
db.rollback()
print("插入数据失败!")
# 查询所有数据
sql = "SELECT * FROM EMPLOYEE"
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("查询数据失败!")
# 关闭数据库连接
db.close()
以上示例代码分别执行了插入一条数据和查询所有数据的操作,通过两个try...except来捕获执行中的错误。
示例说明
示例1
现在假设有一张students表:
id | name | score |
---|---|---|
1 | 小明 | 85 |
2 | 小红 | 92 |
3 | 小刚 | 78 |
我们要在Python中连接到这个数据库,并查询出所有成绩大于等于80分的学生姓名和分数。以下是示例代码:
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost', user='root', password='password', db='test', port=3306)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 查询所有成绩大于等于80分的学生
sql = "SELECT name, score FROM students WHERE score >= 80"
try:
# 执行sql语句
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
name = row[0]
score = row[1]
# 打印结果
print("name=%s,score=%d" % (name, score))
except:
print("查询数据失败!")
# 关闭数据库连接
db.close()
示例2
现在假设服务器上的数据库是在线的商城mall,里面有一张订单表order,其中包含了订单号、购买商品名称、购买数量、客户姓名和订单总价。我们要在Python中连接到这个数据库,并查询出前5条订单记录。以下是示例代码:
import pymysql
# 打开数据库连接
db = pymysql.connect(host='192.168.1.100', user='username', password='password', db='mall', port=3306)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 查询前5条订单记录
sql = "SELECT * FROM order LIMIT 5"
try:
# 执行sql语句
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
order_no = row[0]
goods_name = row[1]
quantity = row[2]
customer_name = row[3]
total_price = row[4]
# 打印结果
print("order_no=%s,goods_name=%s,quantity=%d,customer_name=%s,total_price=%d" % (order_no, goods_name, quantity, customer_name, total_price))
except:
print("查询数据失败!")
# 关闭数据库连接
db.close()
以上就是关于Python远程连接服务器MySQL数据库的详细攻略,希望对你有帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python远程连接服务器MySQL数据库 - Python技术站