pymsql是Python中操作MySQL的模块,其使用方法和py2的MySQLdb几乎相同。
模块安装
1 |
pip install pymysql |
执行sql语句
import pymysql#添加数据
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='yyy')cursor = conn.cursor()
# sql = """CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""
cursor.execute(sql)
#row_affected = cursor.execute("create table t1(id INT ,name VARCHAR(20))")
#row_affected=cursor.execute("INSERT INTO t1(id,name) values (1,'alvin'),(2,'xialv')")
#cursor.execute("update t1 set name = 'silv2' where id=2")
#查询数据
row_affected=cursor.execute("select * from t1")
one=cursor.fetchone()# many=cursor.fetchmany(2)
all=cursor.fetchall()
#scroll
cursor.scroll(-1,mode='relative') # 相对当前位置移动
#cursor.scroll(2,mode='absolute') # 相对绝对位置移动
#更改获取数据结果的数据类型,默认是元组,可以改为字典等:conn.cursor(cursor=pymysql.cursors.DictCursor)
conn.commit()
cursor.close()
conn.close()
事务
事务命令
python中调用数据库启动事务的方式
import pymysql
添加数据
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='yyy')
cursor = conn.cursor()
try:
insertSQL0="INSERT INTO ACCOUNT2 (name,balance) VALUES ('oldboy',4000)"
insertSQL1="UPDATE account2 set balance=balance-30 WHERE name='yuan'"
insertSQL2="UPDATE account2 set balance=balance+30 WHERE name='xialv'"
</span><span style="color: #0000ff;">cursor</span> <span style="color: #808080;">=</span> conn.<span style="color: #0000ff;">cursor</span><span style="color: #000000;">()
</span><span style="color: #0000ff;">cursor</span>.<span style="color: #0000ff;">execute</span><span style="color: #000000;">(insertSQL0)
conn.</span><span style="color: #0000ff;">commit</span><span style="color: #000000;">()
</span><span style="color: #0000ff;">cursor</span>.<span style="color: #0000ff;">execute</span><span style="color: #000000;">(insertSQL1)
raise Exception
</span><span style="color: #0000ff;">cursor</span>.<span style="color: #0000ff;">execute</span><span style="color: #000000;">(insertSQL2)
</span><span style="color: #0000ff;">cursor</span>.<span style="color: #0000ff;">close</span><span style="color: #000000;">()
conn.</span><span style="color: #0000ff;">commit</span><span style="color: #000000;">()
except Exception as e:
conn.</span><span style="color: #0000ff;">rollback</span><span style="color: #000000;">()
conn.</span><span style="color: #0000ff;">commit</span><span style="color: #000000;">()
cursor.close()
conn.close()