pymysql模块
07.21自我总结
pymysql模块
一.创建连接库
conn = pymysql.connect(host="127.0.0.1",#默认是本机
port=3306, #默认3306
user="root",#必填
password='密码',#必填
db="库名")#必填
#如果没有库会报pymysql.err.InternalError: (1049, "Unknown database '库名'")
所有我们编辑可以这样
try:
conn = pymysql.connect(host="127.0.0.1",#默认是本机
port=3306, #默认3306
user="root",#必填
password='16745',#必填
db="asds",)#必填
except pymysql.err.InternalError:
print('没有库')
二.建立游标
cursor = conn.cursor(pymysql.cursors.DictCursor) #自定义游标类型为字典
cursor = conn.cursor()#默认是元祖
游标的属性
cursor.max_stmt_length#1024000
cursor.rownumber#5 #当前结果集中游标所在行的索引(起始行号为 0)
cursor.arraysize#1 #此读/写属性指定用.fetchmany()一次获取的行数。
# 默认1表示一次获取一行;也可以用于执行.executemany()
cursor.lastrowid#None #只读属性提供上次修改行的rowid
# DB仅在执行单个INSERT 操作时返回rowid 。
# 如未设rowid或DB不支持rowid应将此属性设置为None
# 如最后执行语句修改了多行,例如用INSERT和.executemany()时lastrowid语义是未定义
cursor.rowcount #5 #最近一次 execute() 创建或影响的行数
# 如无cursor.execute()或接口无法确定最后一个操作的rowcount则该属性为-1
# 该行数属性可以在动态更新其值的方式来编码。
# 这对于仅在第一次调用.fetch()方法后返回可用rowcount值的 数据库非常有用。
三.提交sql语句
普通提交
count = cursor.execute('show tables') #返回值为受到影响的数据条数
防注入提交
table_name = input('table name :')
count = cursor.execute('select table %s',(name,))
四.查看内容
默认显示之前那一次显示的内容,只显示查看相关语法的内容,为返回值
cursor.fetchall() #查看全部
cursor.fetchone() #查看当前游标位置的一个值
cursor.fetchmay(N) #查看当前游标位置的n值
五.移动游标
-
相对位置
cursor.scroll(1, "relative")
cursor.scroll() #默认是相对位置
-
绝对位置
cursor.scroll(0, "absolute")
六.游标的关闭
如果只选的sql语言会被表的数据造成修改贼必须
count = cursor.execute('修改的sql语句')
conn.commit()
cursor.close()