Python连接MySQL数据库

偏执的太偏执、 2021-09-19 10:38 574阅读 0赞
  1. 本文主要介绍Python 3如何连接MySQL数据库,需要注意的是,Python 2Python 3连接数据库的方式有所不同,阅读本文前,请确保当前Python的环境为Python 3

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

  1. pip/pip3/conda install pymysql

安装成功后,导入:

  1. '''
  2. 连接MySQL数据库
  3. '''
  4. import pymysql

2、打开数据库连接

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

(1)localhost

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

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

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

  1. db = pymysql.connect(
  2. host='192.168.0.200',
  3. port=3306,
  4. user='user',
  5. passwd='password',
  6. db ='xzw',
  7. charset='utf8'
  8. )

3、测试连接是否成功

  1. '''
  2. 连接MySQL数据库
  3. '''
  4. import pymysql
  5. # 打开数据库连接
  6. db = pymysql.connect("localhost", "root", "root", "xzw")
  7. # 使用cursor()方法创建一个游标对象cursor
  8. cursor = db.cursor()
  9. # 使用execute()方法执行SQL查询
  10. cursor.execute("SELECT VERSION()")
  11. # 使用 fetchone() 方法获取单条数据.
  12. data = cursor.fetchone()
  13. print("Database version : %s " % data)
  14. # 关闭数据库连接
  15. db.close()

打印输出结果如下:

  1. Database version : 5.5.28

4、创建一个员工测试表

  1. '''
  2. 连接MySQL数据库
  3. '''
  4. import pymysql
  5. # 打开数据库连接
  6. db = pymysql.connect("localhost", "root", "root", "xzw")
  7. # 使用cursor()方法创建一个游标对象cursor
  8. cursor = db.cursor()
  9. # 使用预处理语句创建表
  10. sql = """CREATE TABLE EMPLOYEE (
  11. FIRST_NAME CHAR(20) NOT NULL,
  12. LAST_NAME CHAR(20),
  13. AGE INT,
  14. SEX CHAR(1),
  15. INCOME FLOAT )"""
  16. cursor.execute(sql)
  17. # 关闭数据库连接
  18. db.close()

结果如下:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dka3l4eTIwMTM_size_16_color_FFFFFF_t_70

5、向测试表中插入数据

  1. '''
  2. 连接MySQL数据库
  3. '''
  4. import pymysql
  5. # 打开数据库连接
  6. db = pymysql.connect("localhost", "root", "root", "xzw")
  7. # 使用cursor()方法创建一个游标对象cursor
  8. cursor = db.cursor()
  9. # SQL 插入语句
  10. sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
  11. LAST_NAME, AGE, SEX, INCOME)
  12. VALUES ('xzw', 'yxy', 24, 'M', 2000)"""
  13. try:
  14. # 执行sql语句
  15. cursor.execute(sql)
  16. # 提交到数据库执行
  17. db.commit()
  18. except:
  19. # 如果发生错误则回滚
  20. db.rollback()
  21. # 关闭数据库连接
  22. db.close()

结果如下:

20190514104156178.png

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

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

6、查询数据

  1. '''
  2. 连接MySQL数据库
  3. '''
  4. import pymysql
  5. # 打开数据库连接
  6. db = pymysql.connect("localhost", "root", "root", "xzw")
  7. # 使用cursor()方法创建一个游标对象cursor
  8. cursor = db.cursor()
  9. # SQL 查询语句
  10. sql = "SELECT * FROM EMPLOYEE \
  11. WHERE INCOME > %s" % (1000)
  12. try:
  13. # 执行SQL语句
  14. cursor.execute(sql)
  15. # 获取所有记录列表
  16. results = cursor.fetchall()
  17. for row in results:
  18. fname = row[0]
  19. lname = row[1]
  20. age = row[2]
  21. sex = row[3]
  22. income = row[4]
  23. # 打印结果
  24. print ("fname=%s,lname=%s,age=%s,sex=%s,income=%s" % \
  25. (fname, lname, age, sex, income ))
  26. except:
  27. print ("Error: unable to fetch data")
  28. # 关闭数据库连接
  29. db.close()

结果如下:

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

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

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

发表评论

表情:
评论列表 (有 0 条评论,574人围观)

还没有评论,来说两句吧...

相关阅读

    相关 python连接mysql数据库

    坚持每天学一点,每天积累一点点,作为自己每天的业余收获,这个文章是我在吃饭的期间写的,利用自己零散的时间学了一下python操作MYSQL,所以整理一下。 我采用的是MySQ