# Python操作MySQL数据库
# win下安装MySQL
详细可参考 Windows下MySQL安装流程,8.0以上版本ROOT密码报错及修改
# 安装驱动程序
python想要操作MySQL,必须要有一个中间件,或者叫做驱动程序,驱动程序有很多,mysqlclient、mysqldb、pymysql。我选择用pymysql,安装命令:pip install pymysql
# 连接数据库
import pymysql
db = pymysql.connect(
host="127.0.0.1",
user='root',
password='123456',
database='pymysql_test',
port=3306
)
cursor = db.cursor()
cursor.execute('select 1')
data = cursor.fetchone()
print(data)
db.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 插入数据
import pymysql
db = pymysql.connect(
host="127.0.0.1",
user='root',
password='123456',
database='pymysql_test',
port=3306
)
cursor = db.cursor()
sql = """
insert into user(id,username,gender,age,password) values(null,'abc',1,18,'111111');
"""
cursor.execute(sql)
db.commit()
db.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
将数据作为参数的方式插入到数据库
sql = """
insert into user(id,username,gender,age,password) values(null,%s,%s,%s,%s);
"""
cursor.execute(sql,('spider',1,20,'222222'))
1
2
3
4
5
2
3
4
5
# 查找数据
使用pymysql查询数据,可以使用 fetch 方法
- fetchone():这个方法每次只获取一条数据
- fetchall():这个方法接收全部的返回结果
- fetchmany(size):这个方法可以获取指定条数的数据
cursor = db.cursor()
sql = """
select * from user
"""
cursor.execute(sql)
while True:
result = cursor.fetchone()
if not result:
break
print(result)
db.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
直接使用fetchall,一次性可以把所有满足条件的数据都取出来
cursor = db.cursor()
sql = """
select * from user
"""
cursor.execute(sql)
results = cursor.fetchall()
for result in results:
print(result)
db.close()
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
使用fetchmany,指定获取多少条数据
cursor = db.cursor()
sql = """
select * from user
"""
cursor.execute(sql)
results = cursor.fetchmany(1)
for result in results:
print(result)
db.close()
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 删除数据
cursor = db.cursor()
sql = """
delete from user where id=1
"""
cursor.execute(sql)
db.commit()
db.close()
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 更新数据
conn = pymysql.connect(
host="127.0.0.1",
user='root',
password='123456',
database='pymysql_test',
port=3306
)
sql = """
update user set username='aaa' where id=1
"""
cursor.execute(sql)
conn.commit()
conn.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15