Python+MySQL学习之路:二、MySQLdb常用命令
2015-04-28 14:59
543 查看
一、连接数据库
MySQLdb提供了connect方法用来和数据库建立连接,接收数个参数,返回连接对象:
host:数据库主机名.默认是用本地主机
user:数据库登陆名.默认是当前用户
passwd:数据库登陆的秘密.默认为空
db:要使用的数据库名.没有默认值
port:MySQL服务使用的TCP端口.默认是3306
charset:数据库编码
这个连接对象提供了对事务操作的支持,标准的方法:
commit() 提交
rollback() 回滚
示例:
二、游标(Cursor)方法
执行结果:
cur.close()
conn.close()
四、事务
conn.commit()
conn.rollback()
MySQLdb提供了connect方法用来和数据库建立连接,接收数个参数,返回连接对象:
conn=MySQLdb.connect(host="localhost",user="root",passwd="jb51",db="test",charset="utf8")参数解释:
host:数据库主机名.默认是用本地主机
user:数据库登陆名.默认是当前用户
passwd:数据库登陆的秘密.默认为空
db:要使用的数据库名.没有默认值
port:MySQL服务使用的TCP端口.默认是3306
charset:数据库编码
这个连接对象提供了对事务操作的支持,标准的方法:
commit() 提交
rollback() 回滚
示例:
import MySQLdb def mysql_test(): conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='test',db='test',port=3306) cur=conn.cursor()#获取游标 cur.execute("select version()") data=cur.fetchone()#使用fetchone()返回一条数据库记录 print 'Database Version:%s' %data conn.close() mysql_test()
二、游标(Cursor)方法
cursor用来执行语句或者过程 callproc(self, procname, args)//用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数 execute(self, query, args)//执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数 executemany(self, query, args)//执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数 nextset(self)//移动到下一个结果集 cursor用来接收返回值的方法 fetchall(self)//接收全部的返回结果行. fetchmany(self, size=None)//接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据 fetchone(self)//返回一条结果行 //移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一行移动value条 scroll(self, value, mode='relative') rowcount//这是一个只读属性,并返回执行execute()方法后影响的行数 Close()//关闭游标示列:
import MySQLdb def mysql_test(): try: #-------------连接数据库------------ conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='test',db='test',port=3306) cur=conn.cursor() #-------------创建表格------------- sql='create table if not exists test(id int(10),name varchar(20))' cur.execute(sql) conn.commit() cur.execute("show tables")#获取数据库中的表格 print '创建表格(execute):',cur.fetchall() #-------------插入数据------------- sql='insert into test values(%s,%s);' params=[(1,'hello'),(2,'world')] cur.executemany(sql,params)# print '插入数据(executemany):成功' conn.commit() data=cur.execute('select * from test') print '获取第一行记录(fetchone):',cur.fetchone() cur.scroll(0,'absolute') print '获取从游标位置开始的两行记录(fetchmany)',cur.fetchmany(2) cur.scroll(0,'absolute') print '获取表格行数(rowcount):',cur.rowcount print '获取表格所有记录(fetchall)',cur.fetchall() #-------------创建过程------------ sql=''' create procedure proc(in test int) begin select test; end; ''' cur.execute("drop procedure if exists proc;") cur.execute(sql)#executemany conn.commit() #-------------调用过程------------ cur.callproc('proc',(1,)) print '调用过程proc(callproc):',cur.fetchone() #-------------断开连接------------ cur.close() conn.close() except : conn.rollback() mysql_test()
执行结果:
Warning (from warnings module): File "C:\Python27\Study\MySQLdb", line 9 cur.execute(sql) Warning: Table 'test' already exists 创建表格(execute): (('test',),) 插入数据(executemany):成功 获取第一行记录(fetchone): (1L, 'hello') 获取从游标位置开始的两行记录(fetchmany) ((1L, 'hello'), (2L, 'world')) 获取表格行数(rowcount): 2 获取表格所有记录(fetchall) ((1L, 'hello'), (2L, 'world') 调用过程proc(callproc): (1L,)在写脚本是发现以下错误:
Error Code: 1414. OUT or INOUT argument 1 for routine test.proc is not a variable or NEW pseudo-variable in BEFORE trigger 原因:存储过程最后一个参数是输出参数。因此必须使用一个变量。 ProgrammingError: (2014, "Commands out of sync; you can't run this command now") 原因:数据变更后没有提交事务,参考链接:<a target=_blank href="http://ju.outofmemory.cn/entry/76809">http://ju.outofmemory.cn/entry/76809 </a><pre name="code" class="python">cursor用来执行语句或者过程三、关闭数据库
cur.close()
conn.close()
四、事务
conn.commit()
conn.rollback()
相关文章推荐
- 教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql
- 教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql
- mysql学习笔记-数据库常用命令
- mysql常用命令学习
- python入门学习(1)——脚本(常用系统相关命令)
- MySQL入门学习和常用命令
- 学习MySQL常用操作命令详细介绍
- MySQL常用操作命令学习
- 学习常用Mysql命令
- mysql 常用命令学习记录
- MySQL学习笔记----MYSQL常用命令.txt
- MYSQL使用简述-连接MYSQL、修改密码、增加用户等方面来学习一些MYSQL的常用命令
- mysql学习之旅-常用命令
- python学习-SVN常用命令
- 学习MySQL常用操作命令
- Mysql数据库学习(四):常用Mysql C API 介绍和使用、封装一个访问Mysql数据库的类MysqlDB
- mysql学习-常用命令
- mysql学习笔记之mysql常用的命令
- 我的python学习之路----调用系统命令(windows)
- BAT——学习之路——几个最常用命令