pymysql查询数据 1.导入包 import pymysql 2.创建连接对象 conncet_db = conncet(host=‘localhost’,port=3306,user=‘root’,password=‘123456’,charset=‘utf8’,database=‘数据库’) 3.获取游标 cur = conncet_db.cursor() 4.输入指令并执行 sql_str = ‘’’ select * from 表名’’’ row_count = cur.execute(sql_str) print(“共查询到了{}条记录”.format(row_count)) 4.1获取一条记录 result = cur.fetchone() print(result) 4.2获取多条记录 result = cur.fetchmany(个数) for i in result: print(i) 4.3获取全部记录 result = cur.fetchall() for i in result: print(i) 5.关闭游标 cur.close() 6.关闭数据库 conncet_db.close() 数据库增、删、改数据 1.导入包 import pymysql 2.创建连接对象 connect_db = connect(host=‘localhost’,port=3306,user=‘root’,password=‘123456’,charset=‘utf8’,databse=‘jing_dong’) 3.获取游标 cur = connect_db.cursor() 4.输入指令并执行sql语句 sql_str = ‘’’ insert into 表(列) (值)’’’ #增 sql_str = ‘’’ detele table 表 where 条件’’’ #删 sql_str = ‘’‘update 表 set 列=值 ‘’’ #改 cur.execute(sql_str) connect_db.commit() 5.关闭游标 cur.close() 6.关闭数据库 conncet_db.close()
SQL注入问题 防止查找时出现or,导致全部数据显露 import pymysql conncet_db = (host=‘localhost’,port=3306,user=‘root’,password=‘123456’,charset=‘utf8’,database=‘jing_dong) cur = conncet_db.cursor() sql_id = input("请输入一个查询的ID: ") sql_str = ‘’‘select * from goods’’’ print(sql_str) cur.execute(sql_str,(sql_id,)) result = cur.fetchone() print(result) cur.close() conncet_db.close()
事务 原子性:一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性 一致性:数据库总是从一个一致性的状态转换到另一个一致性的状态。 隔离性:通常来说,一个事务所做的修改操作在提交事务之前,对于其他事务来说是不可见的 永久性:一旦事务提交,则其所做的修改会永久保存到数据库。 执行事务之前确保引擎时InnoB 开启事务时begin pymysql提交事务:con.commit() pymysql回滚事务:con.rollback()