一: 安装pymysql
pip3 install pymysql
二: 查询操作
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import pymysql # 打开数据库连接 db = pymysql.connect(host='localhost', user='root', password='123456', db='userinfo', port=3306) # 使用cursor()方法获取操作游标 cur = db.cursor() #1, 查询操作 # 编写sql,查询语句 s_info 对应的表名 sql = "select * from s_info" try: cur.execute(sql) # 执行sql语句 # results = cur.fetchall() # 获取一行 # result_one = cur.fetchone() # print(result_one) # 获取多个 result_many = cur.fetchmany(3) print(result_many) # print(results) # 返回所有的数据一元组套元组的形式 # print("id", "name", "pwd") # #遍历结果 # for row in results: # id = row[0] # name = row[1] # password = row[2] # print(id, name, password) except Exception as e: raise e finally: db.close() 查询
在fetchone示例中,在获取行数据的时候,可以理解开始的时候,有一个行指针指着第一行的上方,获取一行,它就向下移动一行,所以当行指针到最后一行的时候,就不能再获取到行的内容,所以我们可以使用如下方法来移动行指针:
cursor.scroll(1,mode='relative') # 相对当前位置移动 cursor.scroll(2,mode='absolute') # 相对绝对位置移动 第一个值为移动的行数,整数为向下移动,负数为向上移动,mode指定了是相对当前位置移动,还是相对于首行移动
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
# 1.Python实现用户登录 # 2.Mysql保存数据 import pymysql # 1.连接 conn = pymysql.connect(host='localhost', port=3306, user='root', password='', db='db8', charset='utf8') # 2.创建游标 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) sql = 'select * from userinfo' cursor.execute(sql) # 查询第一行的数据 row = cursor.fetchone() print(row) # (1, 'mjj', '123') # 查询第二行数据 row = cursor.fetchone() # (3, '张三', '110') print(row) cursor.scroll(-1,mode='relative') #设置之后,光标相对于当前位置往前移动了一行,所以打印的结果为第二行的数据 row = cursor.fetchone() print(row) cursor.scroll(0,mode='absolute') #设置之后,光标相对于首行没有任何变化,所以打印的结果为第一行数据 row = cursor.fetchone() print(row) # 4.关闭游标 cursor.close() # 5.关闭连接 conn.close() #结果如下 {'id': 1, 'username': 'mjj', 'pwd': '123'} {'id': 3, 'username': '张三', 'pwd': '110'} {'id': 3, 'username': '张三', 'pwd': '110'} {'id': 1, 'username': 'mjj', 'pwd': '123'}
三: 插入操作
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import pymysql #2 插入操作 db = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='userinfo') # 使用游标 cur = db.cursor() sql_insert = "insert into s_info(name, pwd) values('egon', '456')" try: cur.execute(sql_insert) db.commit() except Exception as e: db.rollback() raise e finally: cur.close() db.close() 插入数据
四: 修改操作
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import pymysql # 获取数据库 db = pymysql.connect(host='localhost', user='root', password='123456', db='userinfo', port=3306) # 获取游标 cur = db.cursor() # sql改语句 sql = "update s_info set name=%s where id=7" try: cur.execute(sql, "egon") db.commit() except Exception as e: raise e finally: cur.close() db.close() 改操作
五: 删除操作
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import pymysql db = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='userinfo') cur = db.cursor() sql = "delete from s_info where id=1" try: cur.execute(sql) db.commit() except Exception as e: raise e finally: cur.close() db.close()