python数据库的增删改查_python通过pymysql实现数据库的增删改查

今天实现了python对于数据库的增删改查工作:

具体的每一步的数据库的增删盖茶自己都实验过了。

掌握了基本的数据库操作语言。然后就是对于tuple()的认识。

以及对于查询语句中的:fetchone、fetchmany、fetchall

fetchone():获取下一行数据,第一次为首行;

fetchall():获取所有行数据源

fetchmany(4):获取4行数据

默认情况下,我们获取到的返回值是元组,只能看到每行的数据,却不知道每一列代表的是什么,这个时候可以使用以下方式来返回字典,每一行的数据都会生成一个字典:

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  #在实例化的时候,将属性cursor设置为pymysql.cursors.DictCursor

在fetchone示例中,在获取行数据的时候,可以理解开始的时候,有一个行指针指着第一行的上方,获取一行,它就向下移动一行,所以当行指针到最后一行的时候,就不能再获取到行的内容,所以我们可以使用如下方法来移动行指针:

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

cursor.scroll(2,mode='absolute') # 相对绝对位置移动

第一个值为移动的行数,整数为向下移动,负数为向上移动,mode指定了是相对当前位置移动,还是相对于首行移动

具体自己实验过得代码如下:(代码中的所有方法都经过测试可行)

#import pymysql

#user= input('请输入用户名:')

#pwd1= input('请输入密码1:')

#pwd2= input('请输入密码2:')

#1.连接

#conn= pymysql.connect("localhost", "root", "511924", "student", charset='utf8')

#2.创建游标

#cursor=conn.cursor()

#2.创建游标

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

# 注意%s需要加引号

###########################################对于查询

#fetch数据类型关于默认获取的数据是元祖类型,如果想要或者字典类型的数据

# 游标设置为字典类型

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

#cursor.execute("select * from tb7")

#row_1=cursor.fetchone()

#print(row_1)的结果为 {u'licnese': 213, u'user': '123', u'nid': 10, u'pass': '213'}

##############################################进行查询的相关操作

#区间查询

#sql= "select * from text where zhanghu ='%s' and sex between '%s' and '%s'" %(user, pwd1,pwd2)

#多条件查询

#sql= "select * from text where zhanghu ='%s' and sex='%s'" %(user, pwd1)

#3.执行sql语句

#result=cursor.execute(sql) # 执行sql语句,返回sql查询成功的记录数目

#print(result)

# 获取剩余结果的第一行数据

#row_1=cursor.fetchone()

#print(row_1)#z只能通过row_1[1]等输出各项

# 获取剩余结果前n行数据

# row_2= cursor.fetchmany(3)

# 获取剩余结果所有数据

# row_3=cursor.fetchall()

#row_3=cursor.fetchall()

#print(row_3[1][2])

# 关闭连接,游标和连接都要关闭

#cursor.close()

#conn.close()#if result:# print('登陆成功')#else:# print('登录失败')

#########################################################进行数据的增加

#a1=input("输入姓名")

#a2=input("输入密码")

#((a1,a2),("dazhi666","88"))与[(a1,a2),("dazhi666","88")]都可以

#也可以使用sql和tuple(valuesList)进行操作

#effect_row= cursor.executemany("insert into text(zhanghu,sex)values(%s,%s)", ((a1,a2),("dazhi666","88")))

#print(effect_row)

#conn.commit()

#cursor.close()

#conn.close()

#获取最后一个的自增id

#new_id=cursor.lastrowid

#print (new_id)

###################################################################数据库修改

#q1=input("shuru1")

#q2=input("shuru2")

#sql= "update text set zhanghu = %s where sex = %s"#effect_row=cursor.execute(sql,(q1,q2))

#print(effect_row)

# 一定记得commit

#conn.commit()

#4.关闭游标

#cursor.close()

#5.关闭连接

#conn.close()

#################################################################数据库删除

#wen=input("shuru")

#wen2=input("shurud")

#sql= "delete from text where sex = %s"#sql= "delete from text where sex between %s and %s"#effect_row=cursor.execute(sql,(wen,wen2))

#print(effect_row)

# 一定记得commit

#conn.commit()

#4.关闭游标

#cursor.close()

#5.关闭连接

#conn.close()

######################################################################查询操作的字典行为

#sql= 'select * from text'#cursor.execute(sql)

# 查询第一行的数据

#row=cursor.fetchone()

#print(row)

#print(row["zhanghu"])输出某一个元素的值

# 查询第二行数据

#row=cursor.fetchone()

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值