首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >10分钟吃透,python操作mysql数据库的增、删、改、查

10分钟吃透,python操作mysql数据库的增、删、改、查

作者头像
淼学派对
发布2023-10-14 11:10:04
发布2023-10-14 11:10:04
1.9K0
举报
文章被收录于专栏:云开发小程序1云开发小程序1

python后端

 python是后端开发的语言,后端开发指的是所开发的内容不会直接展示在用户的面前。而是在进行数据的处理和逻辑功能的交互,后端也被称之为服务端。

在后端开发里面数据处理是一个麻烦而又重要的领域,所有程序的功能交互都离不开数据,哪怕是一个变量都是数据。而python能够使用丰富的基本数学库math和第三方库numpy等等完成不同类型不同格式的数据处理工作,对于文本类型数据也有XML和BeautifulSoup等库可以进行轻松的处理。

一个网页的开发分为前端和后端两个部分,前端就是使用HTML、CSS、JavaScript等语言去开发出来的可以直观的展示给用户浏览的页面,也被称之为视图。而后端就是这些页面上所执行的操作,例如网页跳转、数据展示和文件读写等等操作。

mysql数据库表结构的创建

我这里创建一个有id,username,password,mobile这些键的表表结构。

sql语句代码如下:

代码语言:javascript
复制
create table admin(
    -> id int not null auto_increment primary key,
    -> username varchar(16) not null,
    -> password varchar(64) not null,
    -> mobile char(11) not null
    -> ) default charset=utf8;

pymysql库的安装

在pycharm编译器中的终端输入一下代码

代码语言:javascript
复制
pip install pymysql

或者根据下面的图片中的引导下载:

增加数据

写法一(静态):
代码语言:javascript
复制
cursor.execute("insert into admin(username,password,mobile) values ('lqj','lqj0828','123456789')")
 写法二(动态):
代码语言:javascript
复制
   sql = "insert into admin(username,password,mobile) values (%s,%s,%s)"
   cursor.execute(sql,["张三","qwe123","12333333333"])
 写法三(动态):
代码语言:javascript
复制
  sql = "insert into admin(username,password,mobile) values (%(n1)s,%(n2)s,%(n3)s)"
  cursor.execute(sql, {"n1": "李四", "n2": "qwe44", "n3": "14444444444"})
 综合代码:
代码语言:javascript
复制
import pymysql

    # 1.链接mysql
    conn = pymysql.connect(host="自己的ip地址", port=自己的端口, user='root', password='自己的mysql密码', charset='utf8', db='unicom')
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    # 2.发送指令
    # 生成命令
    # 写法一(静态)
    cursor.execute("insert into admin(username,password,mobile) values ('lqj','lqj0828','123456789')")
    # 提交命令
    conn.commit()

    # 3.关闭连接
    cursor.close()
    conn.close()
小案例:

用户输入的值存放到mysql数据库的数据表中

代码语言:javascript
复制
import pymysql

while True:
    user = input("用户名:")
    if user.upper() == 'Q':
        break
    pwd = input("密码:")
    mobile = input("手机号:")

    # 1.链接mysql
    conn = pymysql.connect(host="自己的ip地址", port=自己的端口, user='root', password='自己的mysql密码', charset='utf8', db='unicom')

    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

    # 2.发送指令
    # 生成命令
    # 写法一(静态)
    # cursor.execute("insert into admin(username,password,mobile) values ('lqj','lqj0828','123456789')")
    # 写法二(动态)
    # sql = "insert into admin(username,password,mobile) values (%s,%s,%s)"
    # cursor.execute(sql,["张三","qwe123","12333333333"])
    # 写法二(动态获取用户输入信息)
    sql = "insert into admin(username,password,mobile) values (%s,%s,%s)"
    cursor.execute(sql, [user, pwd, mobile])
    # 写法三(动态)
    # sql = "insert into admin(username,password,mobile) values (%(n1)s,%(n2)s,%(n3)s)"
    # cursor.execute(sql, {"n1": "李四", "n2": "qwe44", "n3": "14444444444"})

    # 提交命令
    conn.commit()

    # 3.关闭连接
    cursor.close()
    conn.close()
mysql数据库的数据显示:

 查询数据

写法一(admin表中所有的数据):
代码语言:javascript
复制
sql = "select * from admin"
res = cursor.execute(sql)
data_list = cursor.fetchall()
for row_dict in data_list:
    print(row_dict)
写法二(admin表中条件查询id==3的数据):
代码语言:javascript
复制
sql = "select * from admin where id=3"
res = cursor.execute(sql)
data_list = cursor.fetchall()
for row_dict in data_list:
    print(row_dict)
写法三(admin表中条件查询id>2的数据):
代码语言:javascript
复制
sql = "select * from admin where id>2"
res = cursor.execute(sql)
data_list = cursor.fetchall()
for row_dict in data_list:
    print(row_dict)
写法四(admin表中条件查询id>2的数据"利用execute的第一个参数判断"):
代码语言:javascript
复制
sql = "select * from admin where id>%s"
res = cursor.execute(sql, [2, ])
data_list = cursor.fetchall()
for row_dict in data_list:
    print(row_dict)
写法五(admin表中条件查询id>2的数据中第一条满足的数据。"利用execute的第一个参数判断"):
代码语言:javascript
复制
sql = "select * from admin where id>%s"
res = cursor.execute(sql, [2, ])
data_list = cursor.fetchone()
print(data_list)
综合代码:
代码语言:javascript
复制
import pymysql

# 1.链接mysql
conn = pymysql.connect(host="自己的ip地址", port=自己的端口, user='root', password='自己的mysql密码', charset='utf8', db='unicom')

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 2.发送指令
# 写法一(获取admin表中所有的数据)
# sql = "select * from admin"
# res = cursor.execute(sql)
# data_list = cursor.fetchall()
# for row_dict in data_list:
#     print(row_dict)

# 写法二(admin中的条件查询)
# 1.id等于3的所有数据写法
# sql = "select * from admin where id=3"
# res = cursor.execute(sql)
# data_list = cursor.fetchall()
# for row_dict in data_list:
#     print(row_dict)

# 2.id大于2的所有数据写法一
# sql = "select * from admin where id>2"
# res = cursor.execute(sql)
# data_list = cursor.fetchall()
# for row_dict in data_list:
#     print(row_dict)

# 3.id大于2的所有数据写法二
# sql = "select * from admin where id>%s"
# res = cursor.execute(sql, [2, ])
# data_list = cursor.fetchall()
# for row_dict in data_list:
#     print(row_dict)

# 4.id大于2的第一条数据写法
sql = "select * from admin where id>%s"
res = cursor.execute(sql, [2, ])
data_list = cursor.fetchone()
print(data_list)
# 提交命令
conn.commit()

# 3.关闭连接
cursor.close()
conn.close()
综合代码查询结果:

删除数据

条件删除(删除admin数据表中id为3的数据):
写法:
代码语言:javascript
复制
sql = "delete from admin where id=%s"
res = cursor.execute(sql,[3,])
print("admin表中id为3的数据删除成功!")
综合代码:
代码语言:javascript
复制
import pymysql

# 1.链接mysql
conn = pymysql.connect(host="自己的ip地址", port=自己的端口, user='root', password='自己的mysql密码', charset='utf8', db='unicom')

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 2.发送指令
# 写法一(删除admin表中id为3的数据)
sql = "delete from admin where id=%s"
res = cursor.execute(sql,[3,])
print("admin表中id为3的数据删除成功!")
# 提交命令
conn.commit()

# 3.关闭连接
cursor.close()
conn.close()
删除后的显示

python显示:

mysql数据库变化:

修改数据

条件修改写法:
代码语言:javascript
复制
sql = "update admin set mobile=%s where id=%s"
res = cursor.execute(sql, ["444444", 4, ])
print("admin表中id为4的mobile数据成功修改为了:444444")
综合代码
代码语言:javascript
复制
import pymysql

# 1.链接mysql
conn = pymysql.connect(host="自己的ip地址", port=自己的端口, user='root', password='自己的mysql密码', charset='utf8', db='unicom')

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 2.发送指令
# 写法一(删除admin表中)
sql = "update admin set mobile=%s where id=%s"
res = cursor.execute(sql, ["444444", 4, ])
print("admin表中id为4的mobile数据成功修改为了:444444")
# 提交命令
conn.commit()

# 3.关闭连接
cursor.close()
conn.close()

 python显示:

 mysql数据库变化:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • python后端
  • mysql数据库表结构的创建
  • pymysql库的安装
  • 增加数据
    • 写法一(静态):
    •  写法二(动态):
    •  写法三(动态):
    •  综合代码:
    • 小案例:
    • mysql数据库的数据显示:
  •  查询数据
    • 写法一(admin表中所有的数据):
    • 写法二(admin表中条件查询id==3的数据):
    • 写法三(admin表中条件查询id>2的数据):
    • 写法四(admin表中条件查询id>2的数据"利用execute的第一个参数判断"):
    • 写法五(admin表中条件查询id>2的数据中第一条满足的数据。"利用execute的第一个参数判断"):
    • 综合代码:
    • 综合代码查询结果:
  • 删除数据
    • 条件删除(删除admin数据表中id为3的数据):
    • 写法:
    • 综合代码:
    • 删除后的显示
  • 修改数据
    • 条件修改写法:
    • 综合代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档