mysql----pymsql

一、初始

import pymysql
#创建连接
cnn = pymysql.connect(host = '127.0.0.1',port=3306,user='root',passwd='qlyj1995523',db='class',charset='utf8')
#创建游标
cursor = cnn.cursor()
#参数传递
inp=input("请输入班级:")
#执行sql,并返回影响行数
r = cursor.execute('insert into class(caption) values(%s)',inp)
#提交,不然无法保存数据
cnn.commit()
#关闭游标
cursor.close()
#关闭连接
cnn.close()

注意:必须使用参数传递,避免使用字符串拼接的形式传递,第二种方式会造成sql注入(原因:sql语句中的‘--’注释)

传入多个参数时,使用元组的形式:cursor.execute('insert into student(gender,class_id,sname) values(%s,%s,%s)',('女',1,'kaixin'))

加入多条数据时:cursor.executemany('insert into student(gender,class_id,sname) values(%s,%s,%s)',[('女',1,'kaixin'),('女',1,'kaixin2')])

二、sql语句

1、增删改

cursor.execute('sql语句')
连接.commit #才能保存修改

2、查fetch

import pymysql
#创建连接
cnn = pymysql.connect(host = '127.0.0.1',port=3306,user='root',passwd='qlyj1995523',db='class',charset='utf8')
#创建游标
cursor = cnn.cursor()

r = cursor.execute('select * from student')

#result= cursor.fetchall()
result = cursor.fetchone()
# result= cursor.fetchmany(3)
print(result)
#关闭游标
cursor.close()
#关闭连接
cnn.close()

注:在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置,如:

  • cursor.scroll(1,mode='relative')  # 相对当前位置移动
  • cursor.scroll(2,mode='absolute') # 相对绝对位置移动

设置字典类型

# 游标设置为字典类型

 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

3、获取新创建数据自增ID

new_id = cursor.lastrowid

原文地址:https://www.cnblogs.com/yujin123456/p/10272408.html