不管是在Django项目,Flask项目,还是Spider项目,我们都免不了要向数据库存储数据,在python实际应用中,还是以开源高效的mysql数据库为主,下面写一写在python3中怎么连接mysql数据库,及使用游标来完成一些简单的操作:
连接
首先要导入pymysql库:
pip install pymysql
然后开始连接:
#导入模块
import pymysql
# 连接数据库
conn = pymysql.connect(host='127.0.0.1',user="root",passwd="",db="demo")
#定义游标,Cursor类型是元组,改成字典请写成DictCursor
cur = conn.cursor(pymysql.cursors.Cursor)
在connect(可以写成Connect,Connection)的参数中
- host:mysql服务器所在主机的IP,本地可写localhost或127.0.0.1,字符串类型
- user:登陆用户名,字符串类型
- port:连接数据库的端口,mysql默认是3306,可以不填,整型
- passwd:登陆密码,为空时写"",字符串类型
- db:操作的数据库,字符串类型
查询当前时间
import pymysql#导入模块
import time
conn = pymysql.connect(host="127.0.0.1",passwd="",user="root",db="demo")
cur = conn.cursor(pymysql.cursors.DictCursor) # 定义游标
cur.execute("select now()") # 数据库语句
for i in cur: # 遍历输出
print(i.get('now()'))
查询存储引擎
import pymysql#导入模块
import time
conn = pymysql.connect(host="192.168.120.129",passwd="",user="root",db="demo") # 连接mysqld数据库服务器
cur = conn.cursor(pymysql.cursors.DictCursor) # 定义游标
cur.execute("show engines") # 操作语句
for i in cur: # 遍历输出
print(i)
查询数据库的表
import pymysql#导入模块
import time
conn = pymysql.connect(host="192.168.120.129",passwd="",user="root",db="demo") # 连接mysqld数据库服务器
cur = conn.cursor(pymysql.cursors.DictCursor) # 定义游标
cur.execute("select * from stu")# 查询语句体
for i in cur: # 遍历输出
print(i)
表插入记录
import pymysql
conn = pymysql.connect(host="192.168.120.129",user="root",passwd="",port=3306,db="demo")
cur = conn.cursor(pymysql.cursors.Cursor)
parse = (23,'卑弥呼','女','1998-01-23','155.0','45.9',734,2) # 要插入的内容
sql = f"insert into stu values{parse}" # 插入语句
try: # 捕获异常
cur.execute(f"{sql}")
except Exception as e:
conn.rollback() # 回滚
print('执行异常↓',e,sep="\n")
else:
conn.commit() # 提交
print('操作成功')
cur.close() #先关闭游标
conn.close() #再断开连接
并不是所有的mysql语句都在pymsql中使用,例如:
select sname,sex,age from stu\G
这句话就会报错,但是并不影响整体使用