python连接MySQL数据库问题 cursor( ) 、execute()和fetchall( )方法的作用

python连接MySQL数据库问题 cursor( ) 、execute()和fetchall( )方法的作用,第1张

MySQLdbconnect是python 连接MySQL数据库的方法,在Python中 import MySQLdb即可使用,至于connect中的参数很简单:

host:MySQL服务器名

user:数据库使用者

password:用户登录密码

db: *** 作的数据库名

charset:使用的字符集(一般是gb2312)

cursor = dbcursor() 其实就是用来获得python执行Mysql命令的方法,也就是

我们所说的 *** 作游标

下面cursorexecute则是真正执行MySQL语句,即查询TABLE_PARAMS表的数据。

至于fetchall()则是接收全部的返回结果行 row就是在python中定义的一个变量,用来接收返回结果行的每行数据。同样后面的r也是一个变量,用来接收row中的每个字符,如果写成C的形式就更好理解了

for(string row = ''; row<= cursorfetchall(): row++)

for(char r = ''; r<= row; r++)

printf("%c", r);

大致就是这么个意思!

FETCH (Transact-SQL)

通过 Transact-SQL 服务器游标检索特定行。

Transact-SQL 语法约定

语法

FETCH

[ [ NEXT | PRIOR | FIRST | LAST

| ABSOLUTE { n | @nvar }

| RELATIVE { n | @nvar }

]

FROM

]

{ { [ GLOBAL ] cursor_name } | @cursor_variable_name }

[ INTO @variable_name [ ,n ] ] 参数

NEXT

紧跟当前行返回结果行,并且当前行递增为返回行。如果 FETCH NEXT 为对游标的第一次提取 *** 作,则返回结果集中的第一行。NEXT 为默认的游标提取选项。

PRIOR

返回紧邻当前行前面的结果行,并且当前行递减为返回行。如果 FETCH PRIOR 为对游标的第一次提取 *** 作,则没有行返回并且游标置于第一行之前。

FIRST

返回游标中的第一行并将其作为当前行。

LAST

返回游标中的最后一行并将其作为当前行。

ABSOLUTE { n | @nvar}

如果 n 或 @nvar 为正,则返回从游标头开始向后的第 n 行,并将返回行变成新的当前行。如果 n 或 @nvar 为负,则返回从游标末尾开始向前的第 n 行,并将返回行变成新的当前行。如果 n 或 @nvar 为 0,则不返回行。n 必须是整数常量,并且 @nvar 的数据类型必须为 smallint、tinyint 或 int。

RELATIVE { n | @nvar}

如果 n 或 @nvar 为正,则返回从当前行开始向后的第 n 行,并将返回行变成新的当前行。如果 n 或 @nvar 为负,则返回从当前行开始向前的第 n 行,并将返回行变成新的当前行。如果 n 或 @nvar 为 0,则返回当前行。在对游标进行第一次提取时,如果在将 n 或 @nvar 设置为负数或 0 的情况下指定 FETCH RELATIVE,则不返回行。n 必须是整数常量,@nvar 的数据类型必须为 smallint、tinyint 或 int。

GLOBAL

指定 cursor_name 是指全局游标。

cursor_name

要从中进行提取的打开的游标的名称。如果全局游标和局部游标都使用 cursor_name 作为它们的名称,那么指定 GLOBAL 时,cursor_name 指的是全局游标;未指定 GLOBAL 时,cursor_name 指的是局部游标。

@ cursor_variable_name

游标变量名,引用要从中进行提取 *** 作的打开的游标。

INTO @variable_name[ ,n]

允许将提取 *** 作的列数据放到局部变量中。列表中的各个变量从左到右与游标结果集中的相应列相关联。各变量的数据类型必须与相应的结果集列的数据类型匹配,或是结果集列数据类型所支持的隐式转换。变量的数目必须与游标选择列表中的列数一致。

备注

如果 SCROLL 选项未在 ISO 样式的 DECLARE CURSOR 语句中指定,则 NEXT 是唯一支持的 FETCH 选项。如果在 ISO 样式的 DECLARE CURSOR 语句中指定了 SCROLL 选项,则支持所有 FETCH 选项。

如果使用 Transact-SQL DECLARE 游标扩展插件,则应用下列规则:

如果指定了 FORWARD_ONLY 或 FAST_FORWARD,则 NEXT 是唯一受支持的 FETCH 选项。

如果未指定 DYNAMIC、FORWARD_ONLY 或 FAST_FORWARD 选项,并且指定了 KEYSET、STATIC 或 SCROLL 中的某一个,则支持所有 FETCH 选项。

DYNAMIC SCROLL 游标支持除 ABSOLUTE 以外的所有 FETCH 选项。

@@FETCH_STATUS 函数报告上一个 FETCH 语句的状态。相同的信息记录在由 sp_describe_cursor 返回的游标中的 fetch_status 列中。这些状态信息应该用于在对由 FETCH 语句返回的数据进行任何 *** 作之前,以确定这些数据的有效性。有关详细信息,请参阅 @@FETCH_STATUS (Transact-SQL)。

权限

FETCH 权限默认授予任何有效的用户。

示例

A 在简单的游标中使用 FETCH

以下示例为 PersonContact 表中姓氏以字母 B 开头的行声明了一个简单的游标,并使用 FETCH NEXT 逐个提取这些行。FETCH 语句以单行结果集形式返回在 DECLARE CURSOR 中指定的列的值。

复制代码

USE AdventureWorks

GO

DECLARE contact_cursor CURSOR FOR

SELECT LastName FROM PersonContact

WHERE LastName LIKE 'B%'

ORDER BY LastName

OPEN contact_cursor

-- Perform the first fetch

FETCH NEXT FROM contact_cursor

-- Check @@FETCH_STATUS to see if there are any more rows to fetch

WHILE @@FETCH_STATUS = 0

BEGIN

-- This is executed as long as the previous fetch succeeds

FETCH NEXT FROM contact_cursor

END

CLOSE contact_cursor

DEALLOCATE contact_cursor

GOB 使用 FETCH 将值存入变量

以下示例与示例 A 相似,但 FETCH 语句的输出存储于局部变量而不是直接返回到客户端。PRINT 语句将变量组合成单一字符串并将其返回到客户端。

复制代码

USE AdventureWorks

GO

-- Declare the variables to store the values returned by FETCH

DECLARE @LastName varchar(50), @FirstName varchar(50)

DECLARE contact_cursor CURSOR FOR

SELECT LastName, FirstName FROM PersonContact

WHERE LastName LIKE 'B%'

ORDER BY LastName, FirstName

OPEN contact_cursor

-- Perform the first fetch and store the values in variables

-- Note: The variables are in the same order as the columns

-- in the SELECT statement

FETCH NEXT FROM contact_cursor

INTO @LastName, @FirstName

-- Check @@FETCH_STATUS to see if there are any more rows to fetch

WHILE @@FETCH_STATUS = 0

BEGIN

-- Concatenate and display the current values in the variables

PRINT 'Contact Name: ' + @FirstName + ' ' + @LastName

-- This is executed as long as the previous fetch succeeds

FETCH NEXT FROM contact_cursor

INTO @LastName, @FirstName

END

CLOSE contact_cursor

DEALLOCATE contact_cursor

GOC 声明 SCROLL 游标并使用其他 FETCH 选项

以下示例创建一个 SCROLL 游标,使其通过 LAST、PRIOR、RELATIVE 和 ABSOLUTE 选项支持全部滚动功能。

1当从数据库中取出数据时,mysql_num_rows()函数返回符合查询条件的记录行数,如果没有符合的,返回0。

2当向数据库插入数据和更新某个记录的部分内容时,用mysql_affected_rows返回插入或者更新成功的行数。

3mysql_fetch_row()函数是查询成功后,把查询结果的一行取到一个数组中,以备使用;每执行一次mysql_fetch_row(),将自动取到结果中的下一行记录。

一、使用Windows系统自带的数据源工具创建基于Access的数据库。具体步骤是:控制面板--》管理工具--》数据源(ODBC)---》用户DSN--》添加。创建数据源SampleDB。

二、在Matlab中连接ODBC数据源:可以使用database工具箱或者代码编程的方式,下面介绍编程的方式

1、连接数据库:

conn=database( 'SampleDB' , '' , '' )

2、测试数据库是否连接成功

ping(conn)

3、打开游标,并把执行SQL语句

cursor = exec(conn,'select from PeopleInfo')

4、读取数据,可以从游标中读取,也可直接读取

result=fetch(cursor)

5、关闭游标和链接

close(cursor)

close(conn)

备注:上面是采用cursorfetch的方式,也可采用databasefetch的方式

conn=database()

result=fetch(conn, sqlquery)

而cursorfetch 的编码方式是:

conn=database()

curs=exec(conn, sqlquery)

curs=fetch(curs)

result = cursData

php访问数据库出错:Warning: mysql_fetch_array(),是参数设置错误造成的,解决方法如下:

1、首先打开电脑后,同时按住电脑键盘的开始键和R键,打开电脑的程序运行d窗。

2、在电脑左下角d出的程序运行d窗中,输入字母cmd,然后点击确定按钮。

3、在d出的运行界面中,输入mysql -u root -p,此时会出现属于密码的命令行,在后面输入自己数据库的密码即可。

4、数据库连接成功后,输入show global variables like 'port';,注意不要忘记输入最后的分号。

5、在展现出来的Mysql信息中,可以看到port的值,这个值就是本地数据库的端口号。,一般都是3306。

6、知道本地数据库端口号后,回到php代码的数据库配置中将端口号改成正确的端口号即可,这样就不会报数据库端口异常的错误了。

没什么区别, 唯一的区别就是, 一个是过程方式, 一个是对象方式

mysql_fetch_array是面向过程方式 *** 作数据库

fetch_array是面向对象方式 *** 作数据库!

到底用那个, 看你自己, 你喜欢用过程就过程, 对象就对象!

但对于程序优化来说, 建议用对象方式!

以上就是关于python连接MySQL数据库问题 cursor( ) 、execute()和fetchall( )方法的作用全部的内容,包括:python连接MySQL数据库问题 cursor( ) 、execute()和fetchall( )方法的作用、SQL FETCH、请问php的数据库函数中mysql_fetch_row、mysql_affected_rows、mysql_num_rows的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9291073.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存