【python】使用pymysql模块对MySQL进行操作

使用python对mysql进行操作

创建、删除、修改数据

对数据库数据操作的命令执行后,需要使用commit()提交命令

除sql语句不一样之外其他一样用法。

对于sql语句不要使用python的字符串格式化(如format)进行拼接,容易被sql注入,使用execute的第二个参数用列表的形式传入参数。

import pymysql

# 1.连接到数据库
conn = pymysql.connect(host="192.168.1.66", port=3306, user=root, password="123123", charset='utf8')
# 2.创建游标,连接后用于操作数据库(括号里为空也可以)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 3.发送指令(并没有实际执行)
cursor.execute("insert into tabtest(name,age) values(songxk,18)")

# 当需要动态的在命令中使用参数时,不建议使用.format()等字符串拼接,有安全隐患,容易被sql注入,尽量使用占位符,如下:
# sql = "insert into tabtest(name,age) values(%s, %s)"    #使用%s占位符
# cursor.execute(sql, ["songxk", "18"])     #跟一个列表用来补充占位符数据,这里可以提前定义变量,在这里使用变量(如使用input让用户输入),下边举例

# 4.使用commit提交命令(执行命令)
conn.commit()

# 5.断开连接
cursor.close()
conn.close()

使用占位符,录入数据例子:

import pymysql

user = input("请输入姓名:")
age = input("请输入年龄:")

# 1.连接到数据库
conn = pymysql.connect(host="192.168.1.66", port=3306, user=root, password="123123", charset='utf8')

# 2.创建游标,连接后用于操作数据库(括号里为空也可以)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 3.发送指令(并没有实际执行)
# 当需要动态的在命令中使用参数时,不建议使用.format()等字符串拼接,有安全隐患,容易被sql注入,尽量使用占位符,如下:
sql = "insert into tabtest(name,age) values(%s, %s)"    #使用%s占位符
cursor.execute(sql, [user, age])     #跟一个列表用来补充占位符数据,这里可以提前定义变量,在这里使用变量(如使用input让用户输入)

# 4.使用commit提交命令(执行命令)
conn.commit()

# 5.断开连接
cursor.close()
conn.close()

查询数据

执行查询命令后使用fetchall()和fetchone()来获取查询结果。不需要commit()

如果没有符合条件的数据fetchall()查到就是个空列表[],fetchone()查到就是个None。

import pymysql

# 1.连接到数据库
conn = pymysql.connect(host="192.168.1.66", port=3306, user=root, password="123123", charset='utf8')

# 2.创建游标,连接后用于操作数据库(括号里为空也可以)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 3.发送指令(查询语句)
sql = "select * from tabtest where name = %s"   # 查询语句一样可以使用占位符
cursor.execute(sql, [songxk,])  #跟一个列表用来补充占位符数据,这里可以提前定义变量,在这里使用变量(如使用input让用户输入)
# 注意execute的第二个参数是列表格式,注意格式。

# 4.获取查询结果
## 获取所有查询到的数据使用fetchall()
data_list = cursor.fetchall()    #得到结果是一个列表,列表中把获取到的每行数据作为一个字典展示
for dict in data_list:   #展示列表中每一行数据。
    print(dict)
## 获取所查询数据的第一条数据使用fetchone()
# data_list = cursor.fetchone()   #获取符合条件的第一条数据,一个字典


# 5.断开连接
cursor.close()
conn.close()

你可能感兴趣的:(Python,MySQL,mysql,python,数据库)