MySQL数据库基础学习小终结:连接查询、表结构的修改、约束条件、MySQL与python交互3

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: MySQL数据库基础学习小终结:连接查询、表结构的修改、约束条件、MySQL与python交互

四、Mysql与python交互


需要下载的模块:pip install pymysql


1、数据准备


创建一个名为First的数据库,并在其中创建一个名为students的表,然后向表中写入一些数据。

3006dfd169334593bbf7044834eb83b2.png

44c893b60b744c01ac3762a4034b4d04.png

34b034279b65440eba53f83760c51f70.png


2、在py文件中写入代码


import pymysql
# 连接数据库
db_config = {
    "host":'localhost', # 本地用户
    'port':3306, # 规定是3306
    'user':'root',
    'password':'', # 登录mysql的密码
    'db':'First' # 使用First数据库
}
# 建立连接的对象
conn = pymysql.connect(**db_config)
# 建立游标对象
cur = conn.cursor()
# 执行sql语句
sql = cur.execute('select * from students')
print(sql) # 打印接受到的数据个数
print(cur.fetchall())
# 关闭游标
cur.close()
# 关闭连接
conn.close()


以上代码的运行结果:


76c219b67a3540529a16f53cae02fe94.png



3、事务


事物的特性:原子性,一致性,隔离性,持久性


(1)提交事务:commit()


提交事务——直正插入和修改数据,如果没有提交事务,插入和修改的数据只是临时保存,并不能存到数据库中。


演示未提交事务时出现的情况:


向数据库中写入信息


d236880b02c24e0c8b80dafd8592d435.png

写入信息后在数据库中查看


81c4ce01a4cb4ea0a8a064c19c5a836b.png

演示提交事务时的情况


79dc131c5344421c8e97cb793623c17b.png

1e2c971d70024d9faf3b53ea23093b43.png



附上源码:


import pymysql
# 连接数据库
db_config = {
    "host":'localhost', # 本地用户
    'port':3306, # 规定是3306
    'user':'root',
    'password':'', # 登录mysql的密码
    'db':'First' # 使用First数据库
}
# 建立连接的对象
conn = pymysql.connect(**db_config)
# 建立游标对象
cur = conn.cursor()
# 执行sql语句
sql = cur.execute('insert into students(name,age) values("孙大圣",500)')
# 提交事务
conn.commit()
# 关闭游标
cur.close()
# 关闭连接
conn.close()


(2)手动开启事务:begin 以及 事务回滚:rollback


事务回滚:返回上一步对数据进行的增、删、改等操作


演示如下:


  • (1)查询看事务是否开启


show variables like 'autocommit';

0c7a5d7007e84dfea71ae79832df30a5.png

ON:表示事务是关闭状态,每次执行增删改查都会自动提交所操作的语句。


  • (2)查看数据

745ed8fe61b54d58ba58f34ce3cd8cf2.png

(3)开启事务


27a42aaed3e94d5688f85882672ad0ef.png

(4)插入数据并查看


886876340b2245ff9c328a6ce01670df.png

(5)回滚数据,再次查看数据


b56607e7a3f1400a9ae1c6a5fbc1b9a5.png



注意!!!一次手动开启事务,只能用一次回滚,第二次回滚无效


0ea43c187ec44fe39b5f7b2906648e1d.png

为了解决每次使用begin的麻烦,可以输入以下命令



开启事务:set autocommit=off;

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
关系型数据库 MySQL 分布式数据库
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
37 2
|
3天前
|
SQL 存储 关系型数据库
数据库开发之mysql前言以及详细解析
数据库开发之mysql前言以及详细解析
14 0
|
1天前
|
缓存 NoSQL 关系型数据库
在Python Web开发过程中:数据库与缓存,MySQL和NoSQL数据库的主要差异是什么?
MySQL与NoSQL的主要区别在于数据结构、查询语言和可扩展性。MySQL是关系型数据库,依赖预定义的数据表结构,使用SQL进行复杂查询,适合垂直扩展。而NoSQL提供灵活的存储方式(如JSON、哈希表),无统一查询语言,支持横向扩展,适用于处理大规模、非结构化数据和高并发场景。选择哪种取决于应用需求、数据模型及扩展策略。
7 0
|
7天前
|
SQL 关系型数据库 MySQL
mysql 数据库查询 查询字段用逗号隔开 关联另一个表并显示
mysql 数据库查询 查询字段用逗号隔开 关联另一个表并显示
17 2
|
8天前
|
SQL NoSQL 关系型数据库
初识MySQL数据库——“MySQL数据库”
初识MySQL数据库——“MySQL数据库”
|
8天前
|
关系型数据库 MySQL Shell
MySQL 查询
MySQL 查询
|
22天前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
105 0
|
22天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
22天前
|
关系型数据库 MySQL 数据库
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
|
24天前
|
存储 关系型数据库 MySQL
数据库字符编码MySQL中使用UTF-8还是UTFB4
数据库字符编码MySQL中使用UTF-8还是UTFB4
20 0