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()

posted @ 2019-07-21 15:51  小小咸鱼YwY  阅读(726)  评论(0编辑  收藏  举报