Python实现MySql数据库交互的示例

目录
  • 一、使用MySql进行持久化存储
  • 二、安装MySql数据库和Python库PyMySQL
  • 三、使用pymysql链接mysql数据库
  • 四、创建表
  • 五、插入数据
  • 六、后记

一、使用MySql进行持久化存储

在任何应用中,都需要持久化存储。一般有 3 种基础的存储机制:文件、数据库系统以及一些混合类型。这种混合类型包括现有系统上的 API、 ORM、文件管理器、电子表格、配置文件等。

对于非常简单的应用而言,使用文件作为持久化存储通常就足够了,但是当文件或创建的数据存储系统不适用于大项目时,我们需要转而使用数据库,大多数复杂的数据驱动的应用是需要使用全功能的关系数据库的。

一个关系数据库管理系统( RDBMS)通常可以管理多个数据库,比如销售、市场、用户支持等,都可以在同一个服务端(如果 RDBMS 基于服务器,可以这样。不过一些简单的系统通常不是基于服务器的)。在本章将要看到的例子中, MySQL 是一种基于服务的RDBMS,因为它有一个服务器进程始终运行以等待命令行输入;而 SQLite 则不会运行服务器。

二、安装MySql数据库和Python库PyMySQL

在开始之前,请确保:

  • 已经安装了MySql数据库并已经开启了相关服务。
  • 正确安装名为PyMySQL的Python库。

MySql数据库的安装请参考另一片文章。此处不再赘述。

在python3中,如果想要将数据存储到mysql中,就需要借助PyMySQL来操作,安装的话,还是推荐使用pip来进行,简单快捷。

相关链接:

GitHub : https://github.com/PyMySQL/

PyMySQL官方文梢 : http://pymysql.readthedocs.io/

PyPl: https://pypi.python.org/pypi/PyMySQL

pip install pymysql

验证一下安装是否成功:

如果能够像上图输出版本信息,则表示PyMySQL已经成功安装。

三、使用pymysql链接mysql数据库

假设当前MySql服务器运行在本地,用户名为root,密码为123456,运行端口为3306。

尝试连接到数据库并创建一个新的数据库,名字叫testdb

import pymysql

conn = pymysql.connect(host='localhost', user='root', password='123456', port=3306)
cur = conn.cursor()
cur.execute('select version()')
data = cur.fetchone()
print(f'database version: {data}')

cur.execute('CREATE DATABASE testdb DEFAULT CHARACTER SET utf8')
conn.close()

能够正常输出版本,说明python已经能够成功连接到数据库。

在数据库中,也可以看到我们刚刚建立的新的数据库。

四、创建表

一般来说,创建数据库的操作只需要执行一次就好了。当然,我们也可以手动创建数据库 。

创建数据库后,在连接时需要额外指定一个参数 db 。

加下来,我们创建一个新的数据表students, 指定3个字段,如下所示:

import pymysql

conn = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='testdb')
cur = conn.cursor()
sql = '''
CREATE TABLE IF NOT EXISTS students (id VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, age INT NOT NULL, PRIMARY KEY (id))
'''
cur.execute(sql)
conn.close()

可以看到新的表已经创建成功了。

五、插入数据

这里仅演示一下数据的插入,其他的操作,比如删除数据、更新数据等等,请参考官方文档示例。

import pymysql

conn = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='testdb')
cur = conn.cursor()

sdudent = [
    ('001', '张三', 12),
    ('002', '李四', 13),
    ('003', '王五', 14)]

try:
    cur.executemany("INSERT INTO students(id, name, age) VALUES (%s, %s, %s)", sdudent)
    conn.commit()
except:
    conn.rollback()

conn.close()

查表,可以看到数据已经插入成功。

六、后记

注意,pymysql模块中不能使用占位符 ? , 这点与SQLite不一样。必须使用paramstyle = "pyformat"的风格。

比如

# 这么写会报错
cur.executemany("INSERT INTO students(id, name, age) VALUES (?, ?, ?)", sdudent)

发生异常: TypeError
not all arguments converted during string formatting
File “G:\Code\practice\testpython\mysql.py”, line 10, in
cur.executemany(“INSERT INTO students(id, name, age) VALUES (?, ?, ?)”, sdudent)

# 必须使用paramstyle = "pyformat"的风格
cur.executemany("INSERT INTO students(id, name, age) VALUES (%s, %s, %s)", sdudent)

详情在另一篇文章(《Python数据库编程之关系数据库API规范 》)里有描述,大致原因如下:

在整个数据库模块实现中没有关于占位符的标准规则。但是,每一个模块都定义了一个变量paramstyle, 它描述了将在查询中使用的值替换格式。这一变量可能的值如下:

到此这篇关于Python实现MySql数据库交互的示例的文章就介绍到这了,更多相关Python MySql数据库交互内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 一文教会你用python连接并简单操作SQLserver数据库

    目录 实验环境: 基本步骤: 安装pymssql模块 编写代码 错误1: 报错 原因 错误2: 总结 实验环境: python版本3.9 Python 3.9.7 (tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" fo

  • Python数据库sqlite3图文实例详解

    目录 前言 sqlite3数据库 1.需要的模块(只有一个) 2.模块的使用 2.1创建与数据库的连接 2.2创建游标 2.3创建 table 2.4插入数据 2.5查找数据 快乐的coding时间! 最后 前言 提到数据库,大家第一时间想到的可能是 sql 数据库,这种数据库非常好用,但是对于新手就不是很容易上手,需要熟悉一段时间才可以大概掌握.这种数据库在大型的项目开发过程中用到的地方不会很多,但是一些普通的项目还是很实用的,大大减少了代码量. sqlite3数据库 sqlite3 数据库是

  • Python创建SQL数据库流程逐步讲解

    目录 前言 先决条件 创建脚本 建立连接 创建表格 生成一些随机数据 结论 前言 根据<2021年Stackoverflow开发者调查>, SQL是最常用的五种编程语言之一. 所以,我们应该多投入时间来学习SQL. 由Storyset绘制的人物插图 但是有一个问题: 如何在没有数据库的情况下练习数据库查询呢? 在今天的文章中,让我们一起来解决这个基本问题,学习如何从零开始创建自己的MySQL数据库.在Python和一些外部库的帮助下,我们将创建一个简单的脚本,可以自动创建并使用随机生成的数据,

  • Python中对数据库的操作详解

    目录 一.数据库介绍 1.为什么要学习数据库 2.数据库的介绍 二.MySQL介绍 安装MySQL 使用数据库 1.语法格式 2.简单示例 三.查看数据库 查看MySQL中存在的数据库 四.简单示例 一.数据库介绍 1.为什么要学习数据库 通常,我们存储数据,直接用本地文件即可,但是,本地文件不利于存放海量数据,也不利于用程序对文件的数据进行查询与管理,那么为了解决这些弊端,才有数据库的出现,那么数据库也是每个程序员比须掌握的计数. 2.数据库的介绍 定义 数据库(database)简称DB,是

  • Python使用Flask Migrate模块迁移数据库

    目录 前言 安装 初始化 项目结构 三大命令 前言 本篇文章,阐述一下Flask中数据库的迁移 为什么要说数据库迁移呢? 比如我们以前有一个数据库,里面的信息有 id, name现在我想再加一个gender属性,应该怎么办呢?不可能直接把数据库删除掉吧.然后重新创建一个,因此本文介绍一种,通过数据库迁移的方法,可以保留原始的数据,并完成添加新的一列的方法. 安装 直接使用pip install flask-migrate即可 初始化 项目结构 # exts.py from flask_sqlal

  • python与mysql数据库交互的实现

    1.安装pymysql库 如果你想要使用python操作MySQL数据库,就必须先要安装pymysql库,这个库的安装很简单,直接使用pip install pymysql;进行安装. 假如上面这种方式还是安装不上,就用如下链接找一个合适的安装包进行安装,这个就不细说了,请自行百度. https://www.lfd.uci.edu/~gohlke/pythonlibs/ 学习本篇文章,最好是先看我另外一篇关于游标cursor讲解的文章,这样会有更好的效果:https://www.jb51.net

  • python实现与Oracle数据库交互操作示例

    目录 1.安装准备 2.instantclient的安装说明 3.instantclient安装步骤 4.还有几个需要注意的地方 1)设置NLS_LANG环境变量:解决中文乱码 2)关于TNS_ADMIN环境变量的说明 3)关于python中,cx_Oracle驱动包的安装 5.python操作Oracle数据库 1)python连接数据库的3种方式 2)查询数据-查 1.安装准备 ① 正确安装好Oracle数据库(我的电脑是64位的,但是我最开始安装的是Oracle32.因此,你要是有64位的

  • python访问mysql数据库的实现方法(2则示例)

    本文实例讲述了python访问mysql数据库的实现方法.分享给大家供大家参考,具体如下: 首先安装与Python版本匹配的MySQLdb 示例一 import MySQLdb conn=MySQLdb.connect(user='root',passwd='123',db='example') cur=conn.cursor() cur.execute("select id,lastname,firstname, date_format(dob,'%Y-%m-%d %H-%i-%s'),pho

  • Python操作MySQL数据库的示例代码

    1. MySQL Connector 1.1 创建连接 import mysql.connector config={ "host":"localhost","port":"3306", "user":"root","password":"password", "database":"demo" } con=

  • Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连接数据库测试 import pymysql #打开数据库 db = pymysql.connect(host="localhost",user="root",password="root",db="test") #使用cursor

  • python使用mysql数据库示例代码

    一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的linux 仓库中都会有mysql ,我们只需要通过一个命令就可以下载安装: Ubuntu\deepin >>sudo apt-get install mysql-server >>Sudo apt-get install mysql-client centOS/redhat >&

  • python针对mysql数据库的连接、查询、更新、删除操作示例

    本文实例讲述了python针对mysql数据库的连接.查询.更新.删除操作.分享给大家供大家参考,具体如下: 连接 一 代码 import pymysql # 打开数据库连接 db = pymysql.connect("localhost","root","root","db_test01" ) # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 execute(

  • python的mysql数据库建立表与插入数据操作示例

    本文实例讲述了python的mysql数据库建立表与插入数据操作.分享给大家供大家参考,具体如下: mysql数据库建立表 一 代码 import pymysql # 打开数据库连接 db = pymysql.connect("localhost","root","root","db_test01" ) # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 exec

  • Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例

    本文实例讲述了Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法.分享给大家供大家参考,具体如下: demo.py(查询,取出一条数据,fetchone): from pymysql import * def main(): # 创建Connection连接 conn = connect(host='localhost',port=3306,user='root',password='mysql',database='jing_do

  • Python实现mysql数据库更新表数据接口的功能

    前言 昨天,因为项目需求要添加表的更新接口,来存储预测模型训练的数据,所以自己写了一段代码实现了该功能,在开始之前,给大家分享python 操作mysql数据库基础: #coding=utf-8 import MySQLdb conn= MySQLdb.connect( host='localhost', port = 3306, user='root', passwd='123456', db ='test', ) cur = conn.cursor() #创建数据表 #cur.execute

随机推荐