一张图讲述游标的功能:
图示说明:
如果不使用游标功能,直接使用选择查询,会一次性将结果集打印到屏幕上,你无法针对结果集做第二次编程。使用游标功能后,我们可以将得到的结果先保存起来,然后可以随意进行自己的编程,得到我们最终想要的结果集。
<强> 强>
1)以python连接mysql数据库为例
2)使用游标的操作步骤
-
<李>首先,使用pymysql连接上mysql数据库,得到一个数据库对象。李>
<李>然后,我们必须要开启数据库中的游标功能,得到一个游标对象。李>
<李>接着,使用游标对象中的执行()方法,去执行某个SQL语句,系统会根据你的SQL语句,找到这些匹配行,给你存储起来,而不是一次性的打印到频幕上。当你什么时候需要这个结果中的数据的时候,你就去获取它。李>
<李>最后,就是获取结果集中的数据了,这里有两种方法获取结果集中的数据。一个是fetchone(),该方法一次获取一条记录,每一条记录是一个元组形式的数据,每获取一条记录游标会往前移动一格,等待获取下一条记录;一个是fetchall()方法,能够一次性的获取所有的数据,该方法返回的是一个元组列表。李>
<李>当完成所有操作后,记得断开数据库的连接,释放资源。李>
①连接数据库,创建一个数据库对象
db=pymysql.connect(主机=發ocalhost”,用户=?db=癶uangwei”, 密码=' 123456 ',端口=3306,charset=use utf8) >之前注意:我们要操作的是huangwei这个数据库中的表,因此在连接的时候使用db这个参数来指明要使用哪一个数据库,由于mysql数据库就装在本机上,因此可以写localhost,当然你也可以写成主机名,或者主机ip;
②开启游标功能,创建游标对象
#这里使用的是数据库对象db中的游标()方法, 光标=db.cursor ()③使用execute()方法,执行SQL语句
游标。执行(从学生选择sname ssex)注意:当开启游标功能执行这个SQL语句后,系统并不会将结果直接打印到频幕上,而是将上述得到的结果,找个地方存储起来,提供一个游标接口给我们,当你需要获取数据的时候,就可以从中拿数据。
④使用fetchone()或fetchall()获取数据
#一次性获取一条数据 一个=cursor.fetchone () #一次性获取所有数据 一个=cursor.fetchall () >之前注意:使用游标获取数据,需要用一个变量将结果存储起来,才能被我们拿来做二次使用,这里在下面的案例中会体现出来。
⑤断开数据库,释放资源
db.close ()3)案例讲解
需求:以操做huangwei数据库中的学生表为例,完成【筛选出女生,同时将sname以这种形式输出“我叫周梅,我是一个学生!”】这个需求。
①学生表
,
②使用fetchone()方法,获取SQL查询结果集中的数据
db=pymysql.connect(主机=發ocalhost”,用户=?db=癶uangwei”, 密码=' 123456 ',端口=3306,charset=use utf8) 光标=db.cursor () 游标。执行(从学生选择count (*)) aa=cursor.fetchone () 打印(aa) #注意这一句一定是在循环之外,不能放到循环里面想。想这是为什么? 游标。执行(“从学生选择sname ssex”) 因为我在范围(aa [0]): a、b=cursor.fetchone () 如果b==芭? 一个="我叫{},我是一个学生!”.format (a) print () db.close ()带你彻底搞懂python操作mysql数据库(光标游标讲解)