Python之MySQL数据库增删改查操作
Python之MySQL数据库操作
Python之连接数据库
import pymysql # 获取连接对象conn,建立数据库的连接 def get_conn(): conn = pymysql.connect(host=localhost,port=3306,user=root,passwd=root,db=test1) # db:表示数据库名称 return conn
Python之插入操作
import pymysql def get_conn(): conn = pymysql.connect(host=localhost,port=3306,user=root,passwd=root,db=test1) # db:表示数据库名称 return conn def insert(sql): conn = get_conn() cur = conn.cursor() result = cur.execute(sql) print(result) conn.commit() cur.close() conn.close() if __name__ == __main__: sql = INSERT INTO test_student_table VALUES(1,zhang,12); insert(sql)
在写sql语句的时候,需要避免直接写sql语句,而是采用占位符的方式来,防止sql的注入。
-
sql占位符形式实现
import pymysql def get_conn(): conn = pymysql.connect(host=localhost, port=3306, user=root, passwd=root, db=test1) return conn def insert(sql, args): conn = get_conn() cur = conn.cursor() result = cur.execute(sql, args) print(result) conn.commit() cur.close() conn.close() if __name__ == __main__: sql = INSERT INTO test_student_table VALUES(%s,%s,%s); insert(sql, (2, wang, 13))
下面代码均以占位符的形式实现sql语句。
-
插入多条语句实现
import pymysql def get_conn(): conn = pymysql.connect(host=localhost, port=3306, user=root, passwd=root, db=test1) return conn def insert_many(sql, args): conn = get_conn() cur = conn.cursor() result = cur.executemany(query=sql, args=args) print(result) conn.commit() cur.close() conn.close() if __name__ == __main__: sql = insert into test_student_table VALUES (%s,%s,%s) args = [(3, li, 11), (4, sun, 12), (5, zhao, 13)] insert_many(sql=sql, args=args)
Python之更新操作
import pymysql def get_conn(): conn = pymysql.connect(host=localhost,port=3306,user=root,passwd=root,db=test1) # db:表示数据库名称 return conn def update(sql,args): conn = get_conn() cur = conn.cursor() result = cur.execute(sql,args) print(result) conn.commit() cur.close() conn.close() if __name__ == __main__: sql = UPDATE test_student_table SET NAME=%s WHERE id = %s; args = (zhangsan, 1) update(sql, args)
Python之删除操作
import pymysql def get_conn(): conn = pymysql.connect(host=localhost,port=3306,user=root,passwd=root,db=test1) # db:表示数据库名称 return conn def delete(sql,args): conn = get_conn() cur = conn.cursor() result = cur.execute(sql,args) print(result) conn.commit() cur.close() conn.close() if __name__ == __main__: sql = DELETE FROM test_student_table WHERE id = %s; args = (1,) # 单个元素的tuple写法 delete(sql,args)
Python之查询操作
import pymysql def get_conn(): conn = pymysql.connect(host=localhost, port=3306, user=root, passwd=root, db=test1) return conn def query(sql,args): conn = get_conn() cur = conn.cursor() cur.execute(sql,args) results = cur.fetchall() print(type(results)) # 返回<class tuple> tuple元组类型 for row in results: print(row) id = row[0] name = row[1] age = row[2] print(id: + str(id) + name: + name + age: + str(age)) pass conn.commit() cur.close() conn.close() if __name__ == __main__: sql = SELECT * FROM test_student_table; query(sql,None)
输出:
<class tuple> (2, wang, 13) id: 2 name: wang age: 13 (3, li, 11) id: 3 name: li age: 11 (4, sun, 12) id: 4 name: sun age: 12 (5, zhao, 13) id: 5 name: zhao age: 13
下一篇:
MySQL基本增删改查语句练习