零基础学Python|Python高阶-使用Python操作数据库

这篇具有很好参考价值的文章主要介绍了零基础学Python|Python高阶-使用Python操作数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者主页:编程指南针

作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师

主要内容:Java项目开发、毕业设计开发、面试技术整理、最新技术分享

收藏点赞不迷路 关注作者有好处

文末获得源码

一,使用Python操作数据库

数据库作为存储系统数据的主要工具,担负着数据持久化存储的重任,本次主要讲解如何使用Python连接操作SQLite和MYSQL数据库。本部分需要具有一定的数据库基本知识,比如数据库的DML\DDL语句操作等,不再讲述数据库相关知识。

1.1 连接对象

数据库连接对象主要提供获取数据库游标对象和提交/回滚事务的方法,以及如何关闭数据库连接。

python中使用connect()函数来获得数据库连接对象。

语法:

connect(server=None,user=None,password=None,database=None,charset=None)

连接示例:

 import pymysql
 con = pymysql.connect(host='localhost',
                       user='user',
                       password='passwd',
                       db='test',
                       charset='utf8',
                       cursorclass=pymysql.cursors.DictCursor)

connect()函数返回连接对象,它提供了一些方法用于操作事务和游标:

close():关闭数据库连接
commit():提交事务
rollback():回滚事务
cursor():获取游标对象,操作数据库,执行DML操作,调用存储过程等

1.2 游标对象

游标对象(Cursor Object)代表数据库中的游标,用于指示抓取数据操作的上下文,主要提供执行SQL语句、调用存储过程、获取查询结果等方法。

通过cursor()方法来获得游标对象。游标对象有以下两个常用的属性:

* description:数据库列类型和值的描述信息
* rowcount: 返回结果的行数统计信息,如SELECT,UPDATE,CALLPROC等

常用方法如下图所示:

零基础学Python|Python高阶-使用Python操作数据库,python从入门到精通,数据库,python,python连接mysql,python数据库操作

1.3 SQLite 数据库

SQLite数据库是一种嵌入式数据库,它的数据库就一个文件。它本身是使用C语言编写的,体积小,所以经常被集成到各种应用程序中,Python就内置了SQLite3,所以在Python中使用SQLite,不需要安装任何模块,直接使用。

1.3.1 创建数据库文件

数据库操作的基本流程图如下图所示。

零基础学Python|Python高阶-使用Python操作数据库,python从入门到精通,数据库,python,python连接mysql,python数据库操作

示例:文章来源地址https://www.toymoban.com/news/detail-689759.html

#操作SQLite数据库
import sqlite3
conn = sqlite3.connect("mysoft.db")  #如果不存会自动创建mysoft.db
cursor = conn.cursor()
cursor.execute("create table user(id int(10) primary key,name varchar(20))")
#关闭游标
cursor.close()
#关闭connection
conn.close()

IDEA中集成的有SQLite插件,可以直接双击打开创建的SQLite数据库。具体如下图所示:

零基础学Python|Python高阶-使用Python操作数据库,python从入门到精通,数据库,python,python连接mysql,python数据库操作

1.3.2 数据操作

1.新增用户数据:

#操作SQLite数据库
import sqlite3
conn = sqlite3.connect("mysoft.db")  #如果不存会自动创建mysoft.db
cursor = conn.cursor()
cursor.execute("insert into user(id,name) values('1','znz')")
cursor.execute("insert into user(id,name) values('2','znz001')")
cursor.execute("insert into user(id,name) values('3','znz002')")
conn.commit()  #提交事务后数据才会进入数据库中
#关闭游标
cursor.close()
#关闭connection
conn.close()

可在IDEA中的右侧显示SQLite处user表右键选择Run SQL Script来执行SQL查询:

select * from user

零基础学Python|Python高阶-使用Python操作数据库,python从入门到精通,数据库,python,python连接mysql,python数据库操作
零基础学Python|Python高阶-使用Python操作数据库,python从入门到精通,数据库,python,python连接mysql,python数据库操作

2.查询用户数据

提供的三种常方式来进行数据查询:

* fetchone(): 获得查询结果集中的下一条记录
* fetchmany(size): 获取指定数量的记录
* fetchall(): 获取结构集的所有记录

示例:

#操作SQLite 数据查询
import sqlite3
conn = sqlite3.connect("mysoft.db")  #如果不存会自动创建mysoft.db
cursor = conn.cursor()
cursor.execute("select * from user")
result = cursor.fetchone()  #取第一条数据后,指针停留在第二条
print(result)
result1 = cursor.fetchmany(2)  #取出剩下的两条
print(result1)
result2 = cursor.fetchall()   #再取就没有了
print(result2)

输出结果:

(1, 'znz')
[(2, 'znz001'), (3, 'znz002')]
[]

示例:

#操作SQLite 数据查询
import sqlite3
conn = sqlite3.connect("mysoft.db")  #如果不存会自动创建mysoft.db
cursor = conn.cursor()
cursor.execute("select * from user")
result2 = cursor.fetchall()
print(result2)

conn.commit()
#关闭游标
cursor.close()
#关闭connection
conn.close()

输出结果:

[(1, 'znz'), (2, 'znz001'), (3, 'znz002')]

占位符传参:可以通过?来表示一个参数的占位,实现运行时动态传参

#操作SQLite 数据查询
import sqlite3
conn = sqlite3.connect("mysoft.db")  #如果不存会自动创建mysoft.db
cursor = conn.cursor()
cursor.execute("select * from user where id>?",(1,))
result2 = cursor.fetchall()
print(result2)

conn.commit()
#关闭游标
cursor.close()
#关闭connection
conn.close()

输出结果:

[(2, 'znz001'), (3, 'znz002')]

3.修改用户的数据

示例:

#操作SQLite 数据修改
import sqlite3

conn = sqlite3.connect("mysoft.db")  #如果不存会自动创建mysoft.db
cursor = conn.cursor()
cursor.execute("update user set name=? where id=?",('fxp',1,))

conn.commit()
cursor.execute("select * from user")
result = cursor.fetchall()
print(result)
#关闭游标
cursor.close()
#关闭connection
conn.close()

4.删除用户数据

示例:

#操作SQLite 数据修改
import sqlite3

conn = sqlite3.connect("mysoft.db")  #如果不存会自动创建mysoft.db
cursor = conn.cursor()
cursor.execute("delete from user where id=?",(1,))

conn.commit()
cursor.execute("select * from user")
result = cursor.fetchall()
print(result)
#关闭游标
cursor.close()
#关闭connection
conn.close()

1.4 MYSQL数据库

本次使用MYSQL5.7版本数据库,安装参考演示视频:https://live.csdn.net/v/282244

python操作MYSQL数据库,需要支持Python的MySQL驱动来连接到MySQL服务器,我们常用PyMySQL模块来操作MYSQL数据库。需在线安装PyMySQL模块:

pip install PyMySQL

我们通过MYSQL的客户端工具Navicat来连接MYSQL服务器后,可以创建一个名为studentPython的数据库。

然后 就可以编写代码连接MYSQL进行相应操作了。

示例:

#操作MYSQL数据库
import pymysql
#此处传参最好是使用关键字参数,不同版本的connect传的不太一样
conn = pymysql.connect(host="localhost",user="root",password="root",db="studentPython")
cursor = conn.cursor()
cursor.execute("select version()")

result = cursor.fetchone()
print("database version:%s" % result)
#关闭游标
cursor.close()
#关闭connection
conn.close()

1.创建数据表

在数据库操作中,创建表,删除表这都属于DDL语句,也就是数据结构定义语句。

示例:

#操作MYSQL数据库  创建表
import pymysql

conn = pymysql.connect(host="localhost",user="root",password="root",db="studentPython")
cursor = conn.cursor()
cursor.execute("DROP TABLE IF EXISTS books")
#使用预处理语句创建表
sql="""
create table books(
   id int(8) NOT NULL AUTO_INCREMENT,
   name varchar(50) NOT NULL,
   category varchar(50) NOT NULL,
   price decimal (10,2) DEFAULT NULL,
   publish_time date DEFAULT NULL,
   primary key(id)
)
"""
#执行SQL语句
cursor.execute(sql)
#关闭游标
cursor.close()
#关闭connection
conn.close()

2.操作MYSQL表

对表的增删改查操作和SQLite一样,下面举例演示使用 executemany()方法批量插入数据。

示例:

#操作MYSQL数据库  操作表
import pymysql

conn = pymysql.connect(host="localhost",user="root",password="root",db="studentPython")
cursor = conn.cursor()
#数据列表
data =[
    ("零基础学Python","python",'79.80','2018-5-28'),
    ("Python从入门到精通","python",'69.80','2018-5-28'),
    ("零基础学PHP","php",'79.80','2018-5-28'),
    ("零基础学Java","java",'59.80','2018-5-28'),
]
try:
    cursor.executemany("insert into books(name,category,price,publish_time) values(%s,%s,%s,%s)",data)
    #提交数据
    conn.commit()
except:
    #发生错误时回滚
    conn.rollback()

#关闭游标
cursor.close()
#关闭connection
conn.close()

到了这里,关于零基础学Python|Python高阶-使用Python操作数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python——数据库操作PyMysql使用详解

    劝君惜取少年时 在编写小脚本时,PyMysql是快速连接并操作数据库的一个不错选择。 连接数据库 使用connect函数创建连接对象,此连接对象提供关闭数据库、事务回滚等操作 一般传参为:host, user, password, port(默认为3306), database(想要连接的数据库名) 连接对象的常见方法 :

    2024年02月02日
    浏览(60)
  • 【100天精通python】Day31:使用python操作数据库_数据库编程接口,连接对象和游标对象,数据库连接配置

    目录  专栏导读  一、数据库编程接口 1. Python标准库接口 2. MySQL Connector/Python接口

    2024年02月13日
    浏览(49)
  • Python 操作 MySQL:使用 mysql-connector-python 操作 MySQL 数据库

    大家好,我是水滴~~ 当涉及到使用 Python 操作 MySQL 数据库时, mysql-connector-python 库是一个强大而常用的选择。该库提供了与 MySQL 数据库的交互功能,使您能够执行各种数据库操作,如连接数据库、执行查询和插入数据等。在本文中,我们将介绍如何使用 mysql-connector-python 库来

    2024年02月04日
    浏览(50)
  • python3使用pymsql操作mysql数据库

    操作系统 :Windows 10_x64 python版本 :3.9.2 pymysql版本: 1.0.2 MySQL版本: 5.7.38   之前写过一篇关于python操作mysql数据库的文章: https://www.cnblogs.com/MikeZhang/p/pythonOptMysql20170703.html 当时是基于python 2.7 和 mysql 5.5来整理的,但目前python 2.7已经不再维护,主流的是python 3,今天基于pyt

    2024年02月05日
    浏览(66)
  • Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库

    要详细连接Oracle数据库并使用SQLAlchemy进行操作,按照以下步骤进行配置和编写代码: Oracle Instant Client:Oracle 提供的客户端库,可用于在 Python 中连接和操作 Oracle 数据库 访问 Oracle 官方网站:前往 Oracle 官方网站(instant-client/winx64-64-downloads) 可能需要创建一个免费的 Oracle

    2024年02月11日
    浏览(48)
  • Python 操作 MySQL 数据库:使用 mysql-connector-python 库

    在现代应用程序中,与数据库的交互是不可或缺的一部分。Python 提供了许多库来连接和操作各种数据库,其中最常用的之一就是 mysql-connector-python 。本篇博客将介绍如何使用 Python 操作 MySQL 数据库,包括连接数据库、创建表、插入数据、查询数据以及更新和删除数据等操作。

    2024年02月03日
    浏览(53)
  • Python使用多线程操作tif影像和HBase数据库

    本文介绍使用Python的多线程技术,提高happybase模块和gdal模块的效率,从tif格式的影像文件中读取数据,并将其存储到HBase数据库中。主要步骤包括: 准备工作:安装Python环境,安装happybase模块和gdal模块,安装HBase数据库,并准备tif影像文件。 读取tif影像数据:使用readTif函数

    2024年02月09日
    浏览(43)
  • Python操作Neo4j数据库使用案例

      Neo4j是一个世界领先的开源的基于图的数据库。其语言操作简单直观,本文假设你已经安装好Neo4j数据库,并对知识图谱有一定的了解。Neo4j数据库的查询语言为CQL,其代表Cypher查询语言。 像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言。你可以访问(https://www.

    2024年02月03日
    浏览(42)
  • 【100天精通python】Day32:使用python操作数据库_MySQL下载、安装、配置、使用实战

    目录  专栏导读  1 MySQL概述 2 MySQL下载安装 2.1 下载  2.2 安装 2.3 配置

    2024年02月12日
    浏览(48)
  • python使用flask实现前后端分离&通过前端修改数据库数据【全栈开发基础】

    完整代码放到了最后,时间紧张的话直接拉到最后或点击目录【🥩 完整代码】看完整代码 这里先提一下,我们运行后端代码之前需要先建立一个名字为 python 的数据库,而后在该数据库下创建表 userinfo ,因为看到有的朋友后端代码拿过去后会运行不起来或者就是直接报错了

    2023年04月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包