Python连接MySQL数据库

释放双眼,带上耳机,听听看~!

        本文主要介绍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

结果如下:

Python连接MySQL数据库

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

结果如下:

Python连接MySQL数据库

也可以将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

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

 

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

给TA打赏
共{{data.count}}人
人已打赏
安全技术

c++ list, vector, map, set 区别与用法比较

2022-1-11 12:36:11

安全运维

Nginx/LVS/HAProxy负载均衡软件的优缺点详解

2021-8-18 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索