安装第三方模块pymysql
# 安装
pip3 install pymysql
# 导入
import pymysql
1.连接
# 创建连接
db = pymysql.connect(host='116.62.13.104', port=3306, user='root', passwd='123456',database='python', charset='utf8')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
2.查询所有数据
这是数据库中的数据
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT * FROM user")
# 使用 fetchall() 方法获取所有数据. 返回的是元组类型
data = cursor.fetchall()
print("所有数据:", data,type(data))
print("元组长度:",len(data))
# 获取元组中的第一个元素
print(data[0])
# 遍历元素数据
for item in data:
print(item)
# 关闭数据库连接
db.close()
3.添加数据
def insert(user_id,user_name,user_age):
# sql 的第一种格式
# sql = "INSERT INTO user(`id`,`name`,`age`) VALUES ('%d', '%s', '%d')"%(user_id,user_name,user_age)
# sql 的第二种格式
# sql = "INSERT INTO user(`id`,`name`,`age`) VALUES ('{0}', '{1}', '{2}')".format (user_id, user_name, user_age)
# sql 的第三种格式
sql = f"INSERT INTO user(`id`,`name`,`age`) VALUES ('{user_id}', '{user_name}', '{user_age}')"
try:
# 执行sql语句
print(sql)
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
print('数据插入失败!')
# 如果发生错误则回滚
db.rollback()
traceback.print_exc()
if __name__ == '__main__':
insert(5,'周星驰',52)
show()
# 关闭数据库连接
db.close()
4.修改数据
def update(user_id,user_name,user_age):
sql = f"UPDATE user SET `name` = '{user_name}' ,`age` = '{user_age}' WHERE `id` = '{user_id}' "
try:
# 执行sql语句
print(sql)
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
print('数据插入失败!')
# 如果发生错误则回滚
db.rollback()
traceback.print_exc()
if __name__ == '__main__':
# insert(5,'周星驰',52)
show()
update(5,'周星星',53)
show()
# 关闭数据库连接
db.close()
5.删除数据
def delete(user_id):
sql = f"DELETE FROM user WHERE `id` = '{user_id}' "
try:
# 执行sql语句
print(sql)
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
print('数据插入失败!')
# 如果发生错误则回滚
db.rollback()
traceback.print_exc()
if __name__ == '__main__':
# insert('哈哈哈',52)
# show()
# update(5,'周星星',53)
show()
# 关闭数据库连接
delete(7)
show()
db.close()
完整代码
# author: LiuShihao
# data: 2020/12/3 1:42 下午
# youknow: 各位老铁,我的这套代码曾经有人出价三个亿我没有卖,如今拿出来和大家分享,不求别的,只求大家免费的小红心帮忙点一点,这里谢过了。
# desc: Python操作MySQL数据库增删改查
import pymysql
import traceback
# 连接数据库
# db = pymysql.connect("116.62.13.104", "root", "123456", "python")
db = pymysql.connect(host='116.62.13.104', port=3306, user='root', passwd='123456',database='python', charset='utf8')
cursor = db.cursor()
def show():
cursor.execute("SELECT * FROM user")
data = cursor.fetchall()
for item in data:
print(item)
def insert(user_name,user_age):
# sql 的第一种格式
# sql = "INSERT INTO user(`id`,`name`,`age`) VALUES ('%d', '%s', '%d')"%(user_id,user_name,user_age)
# sql 的第二种格式
# sql = "INSERT INTO user(`id`,`name`,`age`) VALUES ('{0}', '{1}', '{2}')".format (user_id, user_name, user_age)
# sql 的第三种格式
# sql = f"-- INSERT INTO user(`id`,`name`,`age`) VALUES ('{user_id}', '{user_name}', '{user_age}')"
sql = f"INSERT INTO user(`name`,`age`) VALUES ( '{user_name}', '{user_age}')"
try:
# 执行sql语句
print(sql)
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
print('数据插入失败!')
# 如果发生错误则回滚
db.rollback()
traceback.print_exc()
def update(user_id,user_name,user_age):
sql = f"UPDATE user SET `name` = '{user_name}' ,`age` = '{user_age}' WHERE `id` = '{user_id}' "
try:
# 执行sql语句
print(sql)
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
print('数据插入失败!')
# 如果发生错误则回滚
db.rollback()
traceback.print_exc()
def delete(user_id):
sql = f"DELETE FROM user WHERE `id` = '{user_id}' "
try:
# 执行sql语句
print(sql)
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
print('数据插入失败!')
# 如果发生错误则回滚
db.rollback()
traceback.print_exc()
if __name__ == '__main__':
# insert('哈哈哈',52)
# show()
# update(5,'周星星',53)
show()
# 关闭数据库连接
delete(7)
show()
db.close()