MySQL初级篇(四)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: MySQL初级篇(四)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

一、pymysql

1、 安装与连接

--- 安装
pip install pymysql
---连接
user=None,  
password="",
host=None,
database=None,
---这里我们使用try
try:
    # 如果不能保证一定正确
    conn = pymysql.connect(
        user='root',
        password="root",
        host='127.0.0.1',
        database='py2204',
        port=3306,
        charset="utf8"
    )
except Exception as e:
    print(e)
conn.close() 关闭连接
conn.commit() 提交数据
conn.rollback() 撤销数据

2、 查

---1.通过通过连接对象创建游标对象
cursor = conn.cursor()
---2.编写指令
sql = "select * from student"
---3.发送指令
res = cursor.excute(sql) 
print(res) # 这里我们返回的是影响的行数
rows = cursor.fetchall() # 查询所有
print(rows)
打印如下:
((1, '赵一', 10, 172.0, 60.0), (2, '钱二', 17, 160.5, 50.0), (3, '孙三', 16, 152.2, 47.0), (4, '李四', 10, 177.5, 62.0), (5, '周五', 12, 168.0, 55.0), (6, '吴六', 12, 157.9, 50.0), (7, '郑七', 11, 156.0, 45.0), (8, '王八', 20, 160.5, 45.0), (9, '冯九', 12, 166.7, 60.0), (10, '陈十', 16, 167.5, 65.0))
for row in rows: # 遍历一下
     print(row)
打印如下:
(1, '赵一', 10, 172.0, 60.0)
(2, '钱二', 17, 160.5, 50.0)
(3, '孙三', 16, 152.2, 47.0)
(4, '李四', 10, 177.5, 62.0)
(5, '周五', 12, 168.0, 55.0)
(6, '吴六', 12, 157.9, 50.0)
(7, '郑七', 11, 156.0, 45.0)
(8, '王八', 20, 160.5, 45.0)
(9, '冯九', 12, 166.7, 60.0)
(10, '陈十', 16, 167.5, 65.0)
---查询下一条
cursor = conn.cursor()
sql = "select * from student"
res = cursor.execute(sql) # 返回 影响 的条数
rows = cursor.fetchone() # 查询所有
print(rows)
打印如下:
(1, '赵一', 10, 172.0, 60.0)
---为了避免输出的数据不清楚是啥可以通过字典进行一一对应
cursor = conn.cursor()
sql = "select * from student"
res = cursor.execute(sql) # 返回 影响 的条数
rows = cursor.fetchall() # 查询所有
# 获取所有字段
fields = [fields[0] for fields in cursor.description]
print(fields)
打印如下:
['id', 'name', 'age', 'height', 'weight'] 
---将对应所有字段序列化,格式化
dic_rows = [dict(zip(fields, row)) for row in rows]
# print(dic_rows)
for row in dic_rows:
    print(row)

3、 增、删、改

3.1 增

cursor = conn.cursor()
sql = "insert into student(name, age) values('new_insert', 16)"
res = cursor.execute(sql)  
print(res)
---按之前的查来看应该会直接插入到表中,但是实际并没有,因为事务干扰,故需要提交事务 
conn.commit() ---提交事务

3.2 删

cursor = conn.cursor()
sql = "delete from student where id = 5"
res = cursor.execute(sql)  
conn.commit()  

3.3 改

cursor = conn.cursor()
sql = "update student set name='李九' where id=9"
res = cursor.execute(sql)
print(res)
conn.commit() 
所有的 "写" 操作都需要提交事务才会写入数据库

二、事务

1、事务的特性

  • 原子性(atomicity ) :一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做;
  • 一 致性(consistency ) : 事务必须是使数据库从一个一致性状态变到另一个致性状态。一致性与原子性是密切相关的 ;
  • 隔离性 (isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰 ;
  • 持久性(durability ):持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的(数据写入完毕,无法再改变)。

2、操作

conn.close() 关闭连接
conn.commit() 提交事务
conn.rollback() 回滚撤销

三、 SQL注入

SQL注入即是指攻击者可以在WEB应用程序中事先定义好的询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询从而进一步得到相应的数据信息。具体略。

四、结语

最是仓皇辞庙日,教坊犹奏别离歌,垂泪对宫娥。----李煜《破阵子·四十年来家国》
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
人工智能 自然语言处理 前端开发
还不懂如何与chatGPT高效交流?保姆级且全面的chatGPT提示词工程教程来啦!(二)进阶篇
这篇文章是chatGPT提示词工程的进阶教程,涵盖了加入鼓励词/行为词、拆分复杂需求、纠正反馈、使用英语提问、角色扮演、限定回答格式、多符咒结合以及参考其他人的提示词和使用提示词插件等技巧。
还不懂如何与chatGPT高效交流?保姆级且全面的chatGPT提示词工程教程来啦!(二)进阶篇
|
人工智能
魔法指针 之 指针变量的意义 指针运算
魔法指针 之 指针变量的意义 指针运算
82 0
|
19天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
10天前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
|
14天前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
1159 39
|
13天前
|
机器学习/深度学习 人工智能 搜索推荐
万字长文深度解析最新Deep Research技术:前沿架构、核心技术与未来展望
近期发生了什么自 2025 年 2 月 OpenAI 正式发布Deep Research以来,深度研究/深度搜索(Deep Research / Deep Search)正在成为信息检索与知识工作的全新范式:系统以多步推理驱动大规模联网检索、跨源证据。
905 57