本文主要介绍Python 3如何连接MySQL数据库,需要注意的是,Python 2与Python 3连接数据库的方式有所不同,阅读本文前,请确保当前Python的环境为Python 3。
1、首先需要导入pymysql库,如果没有此库的可以使用pip命令进行安装,当然如果是基于anaconda的小伙伴最好使用conda命令进行安装:
1
2 1pip/pip3/conda install pymysql
2
安装成功后,导入:
1
2
3
4
5
6 1'''
2连接MySQL数据库
3'''
4
5import pymysql
6
2、打开数据库连接
数据库连接可以分为两种:一种是localhost;另一种是远程机器。
(1)localhost
如果是localhost,可以使用如下简单的命令进行连接:
1
2 1db = pymysql.connect("localhost", "root", "root", "xzw")
2
(2)如果MySQL数据库没有安装在本地,则可以使用如下方式进行连接:
1
2
3
4
5
6
7
8
9 1db = pymysql.connect(
2 host='192.168.0.200',
3 port=3306,
4 user='user',
5 passwd='password',
6 db ='xzw',
7 charset='utf8'
8 )
9
3、测试连接是否成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 1'''
2连接MySQL数据库
3'''
4
5import pymysql
6
7# 打开数据库连接
8db = pymysql.connect("localhost", "root", "root", "xzw")
9
10# 使用cursor()方法创建一个游标对象cursor
11cursor = db.cursor()
12
13# 使用execute()方法执行SQL查询
14cursor.execute("SELECT VERSION()")
15# 使用 fetchone() 方法获取单条数据.
16data = cursor.fetchone()
17print("Database version : %s " % data)
18
19# 关闭数据库连接
20db.close()
21
打印输出结果如下:
1
2 1Database version : 5.5.28
2
4、创建一个员工测试表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 1'''
2连接MySQL数据库
3'''
4
5import pymysql
6
7# 打开数据库连接
8db = pymysql.connect("localhost", "root", "root", "xzw")
9
10# 使用cursor()方法创建一个游标对象cursor
11cursor = db.cursor()
12
13# 使用预处理语句创建表
14sql = """CREATE TABLE EMPLOYEE (
15 FIRST_NAME CHAR(20) NOT NULL,
16 LAST_NAME CHAR(20),
17 AGE INT,
18 SEX CHAR(1),
19 INCOME FLOAT )"""
20
21cursor.execute(sql)
22
23# 关闭数据库连接
24db.close()
25
结果如下:
5、向测试表中插入数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 1'''
2连接MySQL数据库
3'''
4
5import pymysql
6
7# 打开数据库连接
8db = pymysql.connect("localhost", "root", "root", "xzw")
9
10# 使用cursor()方法创建一个游标对象cursor
11cursor = db.cursor()
12
13# SQL 插入语句
14sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
15 LAST_NAME, AGE, SEX, INCOME)
16 VALUES ('xzw', 'yxy', 24, 'M', 2000)"""
17try:
18 # 执行sql语句
19 cursor.execute(sql)
20 # 提交到数据库执行
21 db.commit()
22except:
23 # 如果发生错误则回滚
24 db.rollback()
25
26# 关闭数据库连接
27db.close()
28
结果如下:
也可以将SQL定义成如下形式进行操作:
1
2
3
4
5 1sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
2 LAST_NAME, AGE, SEX, INCOME) \
3 VALUES ('%s', '%s', %s, '%s', %s)" % \
4 ('xzw', 'yxy', 24, 'M', 2000)
5
6、查询数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 1'''
2连接MySQL数据库
3'''
4
5import pymysql
6
7# 打开数据库连接
8db = pymysql.connect("localhost", "root", "root", "xzw")
9
10# 使用cursor()方法创建一个游标对象cursor
11cursor = db.cursor()
12
13# SQL 查询语句
14sql = "SELECT * FROM EMPLOYEE \
15 WHERE INCOME > %s" % (1000)
16try:
17 # 执行SQL语句
18 cursor.execute(sql)
19 # 获取所有记录列表
20 results = cursor.fetchall()
21 for row in results:
22 fname = row[0]
23 lname = row[1]
24 age = row[2]
25 sex = row[3]
26 income = row[4]
27 # 打印结果
28 print ("fname=%s,lname=%s,age=%s,sex=%s,income=%s" % \
29 (fname, lname, age, sex, income ))
30except:
31 print ("Error: unable to fetch data")
32
33# 关闭数据库连接
34db.close()
35
结果如下:
1
2 1fname=xzw,lname=yxy,age=24,sex=M,income=2000.0
2
注意:更新、删除等操作与上文所给出的示例类似,这里就不再赘述了~
你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题。