Python中的数据库连接与查询——使用PyMySQL
使用PyMySQL
连接数据库
pymysql.Connect()
import pymysql db = pymysql.Connect( host="localhost", port=3306, user="root", password="12345", db="taobao", charset="utf8" )
基础操作:增加、删除、修改、查询
connection对象支持的方法如下:
cursor():使用该连接创建并返回游标
commit():提交当前事务
rollback():回滚当前事务
close():关闭连接
cursor对象支持的方法如下:
execute(op):执行一个数据库的查询命令
fetchone():取得结果集的下一行
fetchmany(size):获取结果集的下几行
fetchall():获取结果集中的所有行
rowcount():返回数据条数或影响行数
close():关闭游标对象
向数据库新增数据:
op = "insert into table_name(column1,column2,...,columnN) values(value1,value2,...,valueN)"
cursor.execute(op)
删除数据库中的数据:
op = “delete from table_name where condition_statement"
cursor.execute(op)
修改数据库中的数据:
op = "update table_name set column1=value1,column2=value2,...,columnN=valueN where condition_statement"
cursor.execute(op)
查询数据库中的数据:
op = "select * from table_name where condition_statement"
cursor.execute(op)
案例:
原始数据:
将原始数据通过NaviCat导入到数据库中。
连接数据库:
import pymysql db = pymysql.Connect( host="localhost", port=3306, user="root", password="12345", db="taobao", charset="utf8" )
查询位置在江浙沪的商品销量
cur = db.cursor() sql = 'SELECT * FROM sale_data WHERE 位置 IN (%s,%s,%s)' cur.execute(sql,("江苏“,”浙江“,”上海“)) result = cur.fetchall() for item in result: print(item)
删除价格低于100元的商品记录
sql = 'DELETE FROM sale_data WHERE 价格 < 100' cur.execute(sql) db.commit() #自动提交,保存所执行的语句
把位置“江苏”“浙江”“上海”统一改为“江浙沪”
sql = 'UPDATE sale_data SET 位置 = %s WHERE 位置 IN (%s,%s,%s)' cur.execute(sql,("江浙沪“,”江苏“,”浙江“,”上海“)) db.commit()
插入一条新的销售记录
sql = 'INSERT INTO sale_data(商品,价格,成交量,卖家,位置) VALUES(%s,%s,%s,%s,%s)' cur.execute(sql,("连衣裙“,298,10000,”某店“,”北京“)) db.commit()
关闭游标和数据库连接:
cur.close() db.close()