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入门的更多相关文章

  1. [学习笔记] pymysql入门

    一.快速开始 对于会用MySQL的朋友来说,开始使用pymysql可以说真的so esay,只要用下面的代码,把想要对数据库的操作放在 sql = " " 里就可以了. 没有接触过 ...

  2. python----python使用mysql

    Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymql pymsql是Python中操作MySQL的模块,在windows中的安装: pip ...

  3. 数据库入门-pymysql模块的使用

    一.pymysql模块安装 由于本人的Python版本为python3.7,所以用pymysql来连接数据库(mysqldb不支持python3.x) 方法一: #在cmd输入 pip3 instal ...

  4. 05 数据库入门学习-正则表达式、用户管理、pymysql模块

    一.正则表达式 正则表达式用于模糊查询,模糊查询已经讲过了 like 仅支持 % 和 _ 远没有正则表达式灵活当然绝大多数情况下 like足够使用 #语法 select *from table whe ...

  5. python爬虫入门七:pymysql库

    我们使用python爬取得到的数据,有时候会数据量特别大,需要存入数据库. 需要注意的是,MySQL是一种关系型数据库管理系统,利用MySQL可以对数据库进行操作,而MySQL并不是一个数据库. 而p ...

  6. python入门教程之二十三Python3 MySQL 数据库连接 - PyMySQL 驱动

    MySQL 是最流行的关系型数据库管理系统,如果你不熟悉 MySQL,可以阅读我们的 MySQL 教程. 本章节我们为大家介绍使用 mysql-connector 来连接使用 MySQL, mysql ...

  7. python scrapy 抓取脚本之家文章(scrapy 入门使用简介)

    老早之前就听说过python的scrapy.这是一个分布式爬虫的框架,可以让你轻松写出高性能的分布式异步爬虫.使用框架的最大好处当然就是不同重复造轮子了,因为有很多东西框架当中都有了,直接拿过来使用就 ...

  8. Python系列之入门篇——MYSQL

    Python系列之入门篇--MYSQL 简介 python提供了两种mysql api, 一是MySQL-python(不支持python3),二是PyMYSQL(支持python2和python3) ...

  9. 【Python入门只需20分钟】从安装到数据抓取、存储原来这么简单

    基于大众对Python的大肆吹捧和赞赏,作为一名Java从业人员,我本着批判与好奇的心态买了本python方面的书<毫无障碍学Python>.仅仅看了书前面一小部分的我......决定做一 ...

  10. 第一章:模型层model layer -- Django从入门到精通系列教程

    该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. 题外话: Django的教程写到这里,就进入 ...

随机推荐

  1. obs学习之1——概览

    先占个位置,未完待续... 最近需要用OBS来开发直播软件,特整理这个分类的学习教程,以记录遇到的各种问题.

  2. Django Web应用开发实战第十六章

    一.即时通信 - AJAX技术:通过AJAX实现网页与服务器的无刷新交互,在网页上每隔一段时间就通过AJAX从服务器中获取数据.然后将数据更新并显示在网页上,这种方法简单明了,实时性不高. - Com ...

  3. 【UEFI】HOB 从概念到代码

    总述 使用 HOB 的原因是因为,在 PEI 阶段内存尚未完全初始化,到了 DXE 阶段才完整初始化了内存,所以无法通过简单的内存地址传递数据,并且我们仍然有一些对于内存空间存储的需求,因此发明了 H ...

  4. AtCoder Beginner Contest 381-E

    AtCoder Beginner Contest 381-E Problem 一个长度为奇数.最中间的那个字符是 /.左边所有字符都是都是 1.右边所有字符都是 2 的字符串被称为11/22 字符串. ...

  5. Flask之视图,会话、模板

    一.视图 1.route (1)路由: 将从客户端发送过来的请求分发到指定函数上 (2)语法: @app.route('/rule/') def hello(): return 'Hello Worl ...

  6. ElasticSearch的映射与文档

    概述 映射官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/mapping.html 映射(mapping)是ES中一 ...

  7. hot100之哈希

    两数之和(001) 先看代码 class Solution { HashMap<Integer, Integer> map = new HashMap<>(); public ...

  8. DotTrace系列:3. 时间度量之墙钟时间和线程时间

    一:背景 1. 讲故事 在用 dotTrace 对程序进行性能评测的时候,有一个非常重要的概念需要使用者明白,那就是 时间度量 (Time measurement),主要分为两种. 墙钟时间 线程时间 ...

  9. sql交并差运算

    -- 取并集 select count(distinct user_id) from ( select user_id from hive_table where {some condition} u ...

  10. MySQL的三大日志

    前言 飞机失事靠黑匣子还原真相,MySQL崩溃靠三大日志保障数据安全. 作为一个工作多年的程序员,我见过太多因日志配置不当引发的灾难:数据丢失.主从同步中断.事务回滚失败... 今天,我将用最通俗的方 ...