pymysql入门
1.pymysql创建数据库连接
基础版
from pymysql import Connection
# 创建数据库连接
con = Connection(
host='localhost',# 主机名
port=3306, # 端口
user='root', # 账户
password='123456', # 密码
)
print(type(con))
print(con.get_host_info())
print(con.get_server_info())
#关闭连接
con.close()

加上异常处理的小改进
在user那里添加了个错误,看看效果
from pymysql import Connection
con = None
try:
# 创建数据库连接
con = Connection(
host='localhost',
port=3306,
user='root2',
password='200647',
)
print(type(con))
print(con.get_host_info())
print(con.get_server_info())
except Exception as e:
print("异常:",e)
finally:
if con:
#关闭连接
con.close()

正常写法
from pymysql import Connection
con = None
try:
# 创建数据库连接
con = Connection(
host='localhost',
port=3306,
user='root',
password='200647',
)
print(type(con))
print(con.get_host_info())
print(con.get_server_info())
except Exception as e:
print("异常:",e)
finally:
if con:
#关闭连接
con.close()
2.pymysql执行DDL语句
DDL (Data Definition Language): 操作数据库结构/模式 (CREATE, ALTER, DROP, TRUNCATE, RENAME)。处理对象定义。
在此之前,我们提前新建一个名为db_python的数据库,后面要用
from pymysql import Connection
con = None
try:
# 创建数据库连接
con = Connection(
host='localhost',
port=3306,
user='root',
password='200647',
)
# 创建游标对象
cursor = con.cursor()
# 定义一个建表sql语句:
sql = """
CREATE TABLE `t_student`(
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
"""
# 选择要操作的数据库
con.select_db('db_python')
# 使用游标对象,执行sql
cursor.execute(sql)
cursor.close()
except Exception as e:
print("异常:",e)
finally:
if con:
#关闭连接
con.close()
执行之后在Navicat等软件查看数据库情况

看见已经创建成功了
我们再来执行一条sql语句
from pymysql import Connection
con = None
try:
# 创建数据库连接
con = Connection(
host='localhost',
port=3306,
user='root',
password='200647',
database='db_python',#指定操作数据库
)
# 创建游标对象
cursor = con.cursor()
# 定义一个建表sql语句:
sql = """
ALTER TABLE t_student ADD COLUMN sex varchar(1)
"""
# 使用游标对象,执行sql
cursor.execute(sql)
cursor.close()
except Exception as e:
print("异常:",e)
finally:
if con:
#关闭连接
con.close()

可以看见执行成功了
3.pymysql 执行DML语句
DML (Data Manipulation Language): 操作表中的数据行 (INSERT, UPDATE, DELETE)。处理实际数据内容。
提前写入几个数据

from pymysql import Connection
con = None
try:
# 创建数据库连接
con = Connection(
host='localhost',
port=3306,
user='root',
password='200647',
database='db_python',#指定操作数据库
)
# 创建游标对象
cursor = con.cursor()
# 使用游标对象,执行sql
cursor.execute("select * from t_student")
# 获取查询结果
result = cursor.fetchall()
print(type(result),result)
for row in result:
print(row)
cursor.close()
except Exception as e:
print("异常:",e)
finally:
if con:
#关闭连接
con.close()

4.pymysql 执行 insert 操作
from pymysql import Connection
con = None
try:
# 创建数据库连接
con = Connection(
host='localhost',
port=3306,
user='root',
password='200647',
database='db_python',#指定操作数据库
)
# 创建游标对象
cursor = con.cursor()
# 使用游标对象,执行sql
cursor.execute("insert into t_student values (3,'王五',28,'M') ")
# 确认提交
con.commit()
cursor.close()
except Exception as e:
print("异常:",e)
finally:
if con:
#关闭连接
con.close()
- 插入王五这一数据
我们可以设置auto_commit=True来自动提交
from pymysql import Connection
con = None
try:
# 创建数据库连接
con = Connection(
host='localhost',
port=3306,
user='root',
password='200647',
database='db_python',#指定操作数据库
autocommit=True
)
# 创建游标对象
cursor = con.cursor()
# 使用游标对象,执行sql
cursor.execute("insert into t_student values (4,'赵六',99,'F') ")
cursor.close()
except Exception as e:
print("异常:",e)
finally:
if con:
#关闭连接
con.close()

- 打印插入的主键id
print("主键id=",con.insert_id())
此外的update和delete也是一样的,没区别,只要学过sql语句就可以套
pymysql入门的更多相关文章
- [学习笔记] pymysql入门
一.快速开始 对于会用MySQL的朋友来说,开始使用pymysql可以说真的so esay,只要用下面的代码,把想要对数据库的操作放在 sql = " " 里就可以了. 没有接触过 ...
- python----python使用mysql
Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymql pymsql是Python中操作MySQL的模块,在windows中的安装: pip ...
- 数据库入门-pymysql模块的使用
一.pymysql模块安装 由于本人的Python版本为python3.7,所以用pymysql来连接数据库(mysqldb不支持python3.x) 方法一: #在cmd输入 pip3 instal ...
- 05 数据库入门学习-正则表达式、用户管理、pymysql模块
一.正则表达式 正则表达式用于模糊查询,模糊查询已经讲过了 like 仅支持 % 和 _ 远没有正则表达式灵活当然绝大多数情况下 like足够使用 #语法 select *from table whe ...
- python爬虫入门七:pymysql库
我们使用python爬取得到的数据,有时候会数据量特别大,需要存入数据库. 需要注意的是,MySQL是一种关系型数据库管理系统,利用MySQL可以对数据库进行操作,而MySQL并不是一个数据库. 而p ...
- python入门教程之二十三Python3 MySQL 数据库连接 - PyMySQL 驱动
MySQL 是最流行的关系型数据库管理系统,如果你不熟悉 MySQL,可以阅读我们的 MySQL 教程. 本章节我们为大家介绍使用 mysql-connector 来连接使用 MySQL, mysql ...
- python scrapy 抓取脚本之家文章(scrapy 入门使用简介)
老早之前就听说过python的scrapy.这是一个分布式爬虫的框架,可以让你轻松写出高性能的分布式异步爬虫.使用框架的最大好处当然就是不同重复造轮子了,因为有很多东西框架当中都有了,直接拿过来使用就 ...
- Python系列之入门篇——MYSQL
Python系列之入门篇--MYSQL 简介 python提供了两种mysql api, 一是MySQL-python(不支持python3),二是PyMYSQL(支持python2和python3) ...
- 【Python入门只需20分钟】从安装到数据抓取、存储原来这么简单
基于大众对Python的大肆吹捧和赞赏,作为一名Java从业人员,我本着批判与好奇的心态买了本python方面的书<毫无障碍学Python>.仅仅看了书前面一小部分的我......决定做一 ...
- 第一章:模型层model layer -- Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. 题外话: Django的教程写到这里,就进入 ...
随机推荐
- C# 基础问题汇集
(1)new List并不是null,可以正常的被遍历和AddRange class Program { public static void Main() { //var t = new test( ...
- RocketMQ源码详解(消息存储、Consumer)
消息存储 消息存储核心类 private final MessageStoreConfig messageStoreConfig; //消息配置属性 private final CommitLog c ...
- B1002 写出这个数 (20 分)
描述 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10 100 . 输出格式: 在 ...
- java常用包的介绍
java.* java.lang 包含Java程序所需要的基本类(默认导入) java.util 包含丰富的常用工具类,如集合框架.事件模式.日期时间等 java.math ...
- React-Native开发鸿蒙NEXT-一次审核闪退的排查思路
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- C#/.NET/.NET Core技术前沿周刊 | 第 40 期(2025年5.26-5.31)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...
- 在Linux下使用wxWidgets进行跨平台GUI开发
在Linux下使用wxWidgets进行跨平台GUI开发 wxWidgets是一个功能强大的跨平台C++ GUI框架,支持Windows.Linux和macOS等多种平台.本文将详细介绍在Linux系 ...
- Java IO<5>管道流PipedOutputStream PipedInputStream
在java中,PipedOutputStream和PipedInputStream分别是管道输出流和管道输入流.它们的作用是让多线程可以通过管道进行线程间的通讯.在使用管道通信时,必须将PipedOu ...
- innerHTML和value打架了?
我在实现简单的前端判断验证码的过程中犯了一个低级的错误,这个错误是我平时注意的不多的地方,那就是没有区分清楚innerHTML和value的区别.... 现在我对这两者做出简单的区分: innerHT ...
- Golang解析yaml文件
一.具体思路 将配置yaml文件内容解析为我们定义好的struct,这种比较简单,如果想获取对应的值,直接获取即可. 二.实现步骤 首先根据配置文件的内容定义一个结构体Config,结构体类型和yam ...