Python 操作Mysql

一、Mysql基本操作

1、创建test数据库

2、新建一张表

3、向msg表中插入数据

4、对表中的数据进行增删改查

 

安装mysql

然后连接数据库:

cmd->mysql -uroot -p123456

show databases;

use test;

show tables;

 

二、Python操作mysql

import pymysql

conn = pymysql.connect(host='192.168.10.124',port=3306,user='root',\

passwd='root',db='cloud',charset='utf8')   #创建数据路连接

cursor = conn.cursor()   #想要操作数据库就需要创建游标
sql = '''具体的sql语句

具体的sql语句

具体的sql语句
'''
cursor.execute(sql,param)  #写入的sql语句,返回的是受影响的条目数量

cursor.close()  #关闭游标
conn.commit() #提交事务,必须要执行,否则数据不会被真正插入

connrollback() #发生错误的时候进行回滚

conn.close() #关闭数据库连接

 

三、Python 操作mysql-插入数据

1、直接插入一条数据

cur.execute("insert into msg(title,name,cotent) values ('python','zz','test mysql insert')")

2、插入多条数据

# 用executemany()方法可以一次插入多条值,执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数

 

例子:向user表中插入一百条数据

create table `user`(`id` int primary key auto_increasement,`name` varchar(10),`gender` varchar(10));

print(sql)

需要去掉sql最后的逗号‘,’

sql=sql[:-1]

cur.execute(sql)

conn.commit()

 

四、Python操作mysql-查询数据

cur.execute("select * from user")

>>>100L

上面语句只能返回记录数,不能答应全部内容

1、fetchall():接收全部的返回结果行

展示表中全部数据:cur.fetchall(),

再次执行cur.fetchall()----此时游标已经移动到了最后,此时结果时空的

2、fetchmany(size=None):接收size条返回结果行,如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据

3、fetchone():返回一条结果行

4、scroll(value,mode='relative'):移动指针到某一行,如果mode='relative',则表示当前所在行移动value条;如果mode='absolute',则表示从结果集的第一行移动value条

 

 

五、Python操作mysql-执行事务

事务机制可以确保数据一致性。

事务具有四个属性:原子性、一致性、隔离性、持久性。

这四个属性通常称为ACID特性。

原子性:一个事务是不可分割单位,事务中包括的事务要么都做,要么都不做;

隔离性:一个事务的执行不能被其他事务干扰,并发事务之间不能相互干扰;

持久性:一个事务一旦提交,就不会变化

 

Python DB API 2.0的事务提供了两个方法commit或rollback

 一个游标开启,就相当于一个事务开启,commit就是提交这个事务,rollback就是回滚这个事务

commit和rollback应用:

最后要关闭游标,再关闭数据路连接,释放资源

cur.close()

conn.close()

 

posted on 2017-08-22 14:10  sunshine_zhf  阅读(165)  评论(0编辑  收藏  举报

导航