最近在python变成中用到了mysql,虽然很多都查得到,但还是希望对每条语句都有深入的理解。具体实例如下:
1、回滚数据库
cursor = conn.cursor() #获取游标
cursor.execute(sql) #执行sql语句
cursor.close() #关闭游标
conn.commit() #提交事务
conn.close() #关闭数据库连接
游标(cursor):是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。cursor.execute(sql)返回的是sql语句在数据库中影响的行数
游标的主要作用是:用来执行SQL查询,操作SQL查询结果集
注:MYSQL中只有InnoDB和BDB类型的数据表才能支持事务处理,其他的类型是不支持的。
一般MYSQL数据库默认的引擎是MyISAM,这种引擎不支持事务,如果要让MYSQL支持事务,可以自己手动修改:。
1.到MySQL命令窗口中执行,mysql->show engines;(或执行mysql->show variables like 'have_%'; ),查看InnoDB为YES,即表示数据库支持InnoDB了。
也就说明支持事务transaction了。
2.在创建表时,就可以为Storage Engine选择InnoDB引擎了。如果是以前创建的表,可以使用
mysql->alter table table_nametype=InnoDB; 或 mysql->altertable table_name engine=InnoDB;
sql语句就不说明了,增删改查
2、数据库正常的执行步骤:
a) 建立数据库连接,取得Cursor对象
b) 执行sql语句,接收返回值
c) 根据执行情况,提交或者回滚数据库。
d) 关闭Cursor,关闭数据库连接
a) 和数据库建立连接
import MySQLdb connect = MySQLdb.connect(host = 'localhost', user= 'root', passwd = 'root', db = 'karen')
host:数据库主机名.默认是用本地主机.
user:数据库登陆名.默认是当前用户.
passwd:数据库登陆的秘密.默认为空.
db:要使用的数据库名.没有默认值.
port:MySQL服务使用的TCP端口.默认是3306.
b) 执行sql
cursor = conn.cursor() #获取游标
cursor.execute(sql) #执行sql语句
cursor的常用方法:
Ø execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
Ø nextset(self):移动到下一个结果集
Ø fetchall(self):接收全部的返回结果行.
c) 提交或回滚数据库
conn.commit()
异常时回滚数据库:conn.rollback()
d) 关闭游标,关闭数据库连接
cursor.close()
conn.close()