Python连接MySQL数据库

14 篇文章 0 订阅

        本文主要介绍Python 3如何连接MySQL数据库,需要注意的是,Python 2与Python 3连接数据库的方式有所不同,阅读本文前,请确保当前Python的环境为Python 3。


1、首先需要导入pymysql库,如果没有此库的可以使用pip命令进行安装,当然如果是基于anaconda的小伙伴最好使用conda命令进行安装:

pip/pip3/conda install pymysql

安装成功后,导入:

'''
连接MySQL数据库
'''

import pymysql

2、打开数据库连接

数据库连接可以分为两种:一种是localhost;另一种是远程机器。

(1)localhost

如果是localhost,可以使用如下简单的命令进行连接:

db = pymysql.connect("localhost", "root", "root", "xzw")

(2)如果MySQL数据库没有安装在本地,则可以使用如下方式进行连接:

db = pymysql.connect(
         host='192.168.0.200',
         port=3306,
         user='user',
         passwd='password',
         db ='xzw',
         charset='utf8'
         )

3、测试连接是否成功

'''
连接MySQL数据库
'''

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "xzw")

# 使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()

# 使用execute()方法执行SQL查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print("Database version : %s " % data)

# 关闭数据库连接
db.close()

打印输出结果如下:

Database version : 5.5.28 

4、创建一个员工测试表

'''
连接MySQL数据库
'''

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "xzw")

# 使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()

# 使用预处理语句创建表
sql = """CREATE TABLE EMPLOYEE (
         FIRST_NAME  CHAR(20) NOT NULL,
         LAST_NAME  CHAR(20),
         AGE INT,
         SEX CHAR(1),
         INCOME FLOAT )"""

cursor.execute(sql)

# 关闭数据库连接
db.close()

结果如下:

5、向测试表中插入数据

'''
连接MySQL数据库
'''

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "xzw")

# 使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()

# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
         LAST_NAME, AGE, SEX, INCOME)
         VALUES ('xzw', 'yxy', 24, 'M', 2000)"""
try:
   # 执行sql语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
except:
   # 如果发生错误则回滚
   db.rollback()

# 关闭数据库连接
db.close()

结果如下:

也可以将SQL定义成如下形式进行操作:

sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
       LAST_NAME, AGE, SEX, INCOME) \
       VALUES ('%s', '%s',  %s,  '%s',  %s)" % \
       ('xzw', 'yxy', 24, 'M', 2000)

6、查询数据

'''
连接MySQL数据库
'''

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "xzw")

# 使用cursor()方法创建一个游标对象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=%s,sex=%s,income=%s" % \
             (fname, lname, age, sex, income ))
except:
   print ("Error: unable to fetch data")

# 关闭数据库连接
db.close()

结果如下:

fname=xzw,lname=yxy,age=24,sex=M,income=2000.0

注意:更新、删除等操作与上文所给出的示例类似,这里就不再赘述了~

 

你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题。

  • 23
    点赞
  • 142
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

象在舞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值