PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

1.PyMySQL的安装

PS G:\book> pip install pymysql

Collecting pymysql

Downloading https://files.pythonhosted.org/packages/ed/39/15045ae46f2a123019aa968dfcba0396c161c20f855f11dea6796bcaae95/PyMySQL-0.9.3-py2.py3-none-any.whl (47kB)

100% |████████████████████████████████| 51kB 17kB/s

Installing collected packages: pymysql

Successfully installed pymysql-0.9.3

2.使用python操作数据库的流程

3.各个对象的介绍

导入import pymysql后,使用pymysql.connect函数就可以连接数据库了。

pymysql.connect()参数说明:

conn=pymysql.connect(host='127.0.0.1',user='root',passwd='123456',db='test',port=3306)

还可以简写为这样:

conn=pymysql.connect('127.0.0.1','root','123456','test',3306)

打开数据库链接后,返回一个connection对象。

connection对象支持的方法,如下表所示:

通过connection对象的cursor方法,返回一个cursor游标对象,

cursor对象支持的方法,如下表所示:

4. 连接数据库

import pymysql

#数据库连接,返回数据库连接对象

conn=pymysql.connect(host='47.92.1.240',user='root',passwd='Hl123$%^',db='etc',port=3306)

#conn=pymysql.connect('47.92.1.240','root','Hl123$%^','etc',3306)

cur=conn.cursor()

5.创建数据表

sql='''

create table test(id int not null auto_increment primary key,username varchar(50),password varchar(50))

'''

cur.execute(sql)

注意:这段代码是创建一个表,一般可以通过可视化界面进行创建。

6.插入数据

插入test表中数据,该表有两个字段,可以使用占位符%s,可以有效避免sql注入问题。参数通过元组插入。

insertsql='''

insert into test(username,password) values (%s,%s)

'''

cur.execute(insertsql,('admin','123456'))

还可以executemany实现批量插入,比起循环插入效率要高。

insertmanysql='''

insert into test(username,password) values (%s,%s)

'''

cur.executemany(insertmanysql,[('zhangsan','123456'),('master','123456')])

上述方式无论插入单条数据还是多条数据都不会立即生效,需要进行事务提交。

conn.commit()

如果出现异常,可以使用事务回滚操作

conn.rollback()

7.查询数据

游标对象提供了fetchall方法,获取全部数据。返回一个元组。

Fetchone方法,获取其中的一个结果,返回一个元组。

cur.execute('select * from test')

rs=cur.fetchall()

for line in rs:

print(line)

(1, 'admin', '123456')

(2, 'zhangsan', '123456')

(3, 'master', '123456')

cur.execute('select * from test')

rs=cur.fetchone()

print(rs)

(1, 'admin', '123456')

7.更新数据

import pymysql

#数据库连接,返回数据库连接对象

conn=pymysql.connect('127.0.0.1','root','123456','etc',3306)

cur=conn.cursor()

try:

updatesql='update test set username=%s where id=%s'

cur.execute(updatesql,('manager',1))

conn.commit()

cur.execute('select * from test')

rs=cur.fetchall()

for line in rs:

print(line)

except:

conn.rollback()

conn.close()

(1, 'manager', '123456')

(2, 'zhangsan', '123456')

(3, 'master', '123456')

8.删除数据

import pymysql

#数据库连接,返回数据库连接对象

conn=pymysql.connect('47.92.1.240','root','Hl123$%^','etc',3306)

cur=conn.cursor()

try:

delsql='delete from test where id=%s'

cur.execute(delsql,(3,))

conn.commit()

cur.execute('select * from test')

rs=cur.fetchall()

print(rs)

except:

print("发生了错误")

conn.rollback()

conn.close()

((1, 'manager', '123456'), (2, 'zhangsan', '123456'))

可以看到,id=3的数据已经被删除。

mysql排序空放后面_python对mysql数据库的增删改查相关推荐

  1. hibernate mysql 例子_Hibernate的基本功能:对数据库的增删改查(创建对象实例)...

    一.通过实例化的对象向数据库添加新记录 packagecom.yh.test;importorg.hibernate.Session;importorg.hibernate.SessionFactor ...

  2. python操作mysql数据库(增、删、改、查)_python对 MySQL 数据库进行增删改查的脚本...

    # -*- coding: utf-8 -*- import pymysql import xlrd # import codecs #连接数据库 conn = pymysql.connect(hos ...

  3. MySQL学习总结(2) --- 数据表管理(增删改查)、使用DQL查询数据(SELECT)

    MySQL学习总结(2) - 数据表管理(增删改查).使用DQL查询数据(SELECT) 1. 数据管理(增删改查) 数据库数据管理方法: a.通过SQLyog等管理工具管理数据库数据 b. 通过DM ...

  4. mysql增删改查要用事务吗_数据库的增删改查、事务与索引

    数据库的增删改查.事务与索引 增删改查 一.查询(SELECT) 二.添加(INSERT) 三.删除(DELETE) 四.更改(UPDATE) 事务 一.事务的概念 二.MySQL数据库中操作事务命令 ...

  5. 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)...

    最近看老罗的视频,跟着完成了利用Java操作MySQL数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...

  6. mysql封装 javabean,利用Java针对MySql封装的jdbc框架类JdbcUtils完整实现(包含增删改查、JavaBean反射原理,附源码)...

    最近看老罗的视频,跟着完成了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...

  7. java mysql jdbc 封装_利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包括增删改查、JavaBean反射原理,附源代码)...

    近期看老罗的视频,跟着完毕了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完毕对数据库的增删改查.当中查询这块,包含普通的查询和利用反射完毕的查询,主要包含以下几个函数接口 ...

  8. MySQL(1) 数据库的增删改查

    MySQL(1) 数据库的增删改查 # 如果存在删除 drop database if exists kh69; # 创建数据库 create database kh69; # 进库 use kh69 ...

  9. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)Shell脚本与MySQL数据库交互(增删改查)# 环境准备:安装mariadb 数据库 [root ...

最新文章

  1. material-ui_满足Material-UI —您最喜欢的新用户界面库
  2. 再测Golang的JSON库
  3. 基于Transformers入门自然语言处理!
  4. 如何让Window对话窗口重新获得输入焦点
  5. Tomcat - Tomcat的套娃式架构设计初探
  6. Flutter State 的生命周期
  7. Elasticsearch基本操作 1:ES 基本操作、批处理
  8. 简单实用读取字符串信息的c++类
  9. 阿里云成为国内首个时序数据库标准工作组成员
  10. pandas frame 删除一行_Pandas如何处理大规模数据?
  11. 25深入理解C指针之---传递数组
  12. Perl获取前后任意月份月末
  13. Java -- 定时任务实现方式
  14. 项目管理的五大过程组及十大知识领域
  15. Android申请相机权限
  16. vue 里面的slot属性
  17. DUTOJ-1013: 小q与面试题
  18. 解决 java double 减 int 型 产生的精度问题
  19. uni-app触发点击事件
  20. NIST指纹数据识别(二)数据处理

热门文章

  1. mmap直接操作底层,相当于驱动
  2. ubuntu下adb offline 的解决办法
  3. 7月10日王者荣耀服务器维护,王者荣耀7月10日更新维护公告 7.10全部更新内容汇总...
  4. vue中渲染对象中属性时显示未定义_揭开 vue 背后的秘密(1)
  5. centos 卸载docker_Spring Boot学习05_Docker卸载与安装
  6. java反射的运用_java反射的使用
  7. Unity iOS 使用 ASTC 格式纹理实践
  8. 崩坏3日记:戴尔超限专武天天出,我们的快乐变为刷题式重复养成
  9. 程序员数学基础【七、等比数列 棋盘麦粒】
  10. 零基础学Python-爬虫-3、利用CSS选择器爬取整篇网络小说