Python操作MySQL数据库菜鸟教程

Python标准数据库接口为PythonDB-API,PythonDB-API为开发人员提供了数据库应用编程接口。

Python数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:

不同的数据库你需要下载不同的DBAPI模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。

DB-API是一个规范.它定义了一系列必须的对象和数据库存取方式,以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口。

Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。

PythonDB-API使用流程:

MySQLdb是用于Python链接Mysql数据库的接口,它实现了Python数据库API规范V2.0,基于MySQLCAPI上建立的。

为了用DB-API编写MySQL脚本,必须确保已经安装了MySQL。复制以下代码,并执行:

#!/usr/bin/python#-*-coding:UTF-8-*-importMySQLdb如果执行后的输出结果如下所示,意味着你没有安装MySQLdb模块:

如果您选择二进制文件发行版本的话,安装过程基本安装提示即可完成。如果从源代码进行安装的话,则需要切换到MySQLdb发行版本的顶级目录,并键入下列命令:

$gunzipMySQL-python-1.2.2.tar.gz$tar-xvfMySQL-python-1.2.2.tar$cdMySQL-python-1.2.2$pythonsetup.pybuild$pythonsetup.pyinstall注意:请确保您有root权限来安装上述模块。

连接数据库前,请先确认以下事项:

以下实例链接Mysql的TESTDB数据库:

#!/usr/bin/python#-*-coding:UTF-8-*-importMySQLdb#打开数据库连接db=MySQLdb.connect("localhost","testuser","test123","TESTDB",charset='utf8')#使用cursor()方法获取操作游标cursor=db.cursor()#使用execute方法执行SQL语句cursor.execute("SELECTVERSION()")#使用fetchone()方法获取一条数据data=cursor.fetchone()print"Databaseversion:%s"%data#关闭数据库连接db.close()执行以上脚本输出结果如下:

Databaseversion:5.0.45创建数据库表如果数据库连接存在我们可以使用execute()方法来为数据库创建表,如下所示创建表EMPLOYEE:

#!/usr/bin/python#-*-coding:UTF-8-*-importMySQLdb#打开数据库连接db=MySQLdb.connect("localhost","testuser","test123","TESTDB",charset='utf8')#使用cursor()方法获取操作游标cursor=db.cursor()#如果数据表已经存在使用execute()方法删除表。cursor.execute("DROPTABLEIFEXISTSEMPLOYEE")#创建数据表SQL语句sql="""CREATETABLEEMPLOYEE(FIRST_NAMECHAR(20)NOTNULL,LAST_NAMECHAR(20),AGEINT,SEXCHAR(1),INCOMEFLOAT)"""cursor.execute(sql)#关闭数据库连接db.close()数据库插入操作以下实例使用执行SQLINSERT语句向表EMPLOYEE插入记录:

#!/usr/bin/python#-*-coding:UTF-8-*-importMySQLdb#打开数据库连接db=MySQLdb.connect("localhost","testuser","test123","TESTDB",charset='utf8')#使用cursor()方法获取操作游标cursor=db.cursor()#SQL插入语句sql="""INSERTINTOEMPLOYEE(FIRST_NAME,LAST_NAME,AGE,SEX,INCOME)VALUES('Mac','Mohan',20,'M',2000)"""try:#执行sql语句cursor.execute(sql)#提交到数据库执行db.commit()except:#Rollbackincasethereisanyerrordb.rollback()#关闭数据库连接db.close()以上例子也可以写成如下形式:

#!/usr/bin/python#-*-coding:UTF-8-*-importMySQLdb#打开数据库连接db=MySQLdb.connect("localhost","testuser","test123","TESTDB",charset='utf8')#使用cursor()方法获取操作游标cursor=db.cursor()#SQL插入语句sql="INSERTINTOEMPLOYEE(FIRST_NAME,\LAST_NAME,AGE,SEX,INCOME)\VALUES(%s,%s,%s,%s,%s)"%\('Mac','Mohan',20,'M',2000)try:#执行sql语句cursor.execute(sql)#提交到数据库执行db.commit()except:#发生错误时回滚db.rollback()#关闭数据库连接db.close()实例:以下代码使用变量向SQL语句中传递参数:

..................................user_id="test123"password="password"con.execute('insertintoLoginvalues(%s,%s)'%\(user_id,password))..................................数据库查询操作Python查询Mysql使用fetchone()方法获取单条数据,使用fetchall()方法获取多条数据。

查询EMPLOYEE表中salary(工资)字段大于1000的所有数据:

#!/usr/bin/python#-*-coding:UTF-8-*-importMySQLdb#打开数据库连接db=MySQLdb.connect("localhost","testuser","test123","TESTDB",charset='utf8')#使用cursor()方法获取操作游标cursor=db.cursor()#SQL查询语句sql="SELECT*FROMEMPLOYEE\WHEREINCOME>%s"%(1000)try:#执行SQL语句cursor.execute(sql)#获取所有记录列表results=cursor.fetchall()forrowinresults:fname=row[0]lname=row[1]age=row[2]sex=row[3]income=row[4]#打印结果print"fname=%s,lname=%s,age=%s,sex=%s,income=%s"%\(fname,lname,age,sex,income)except:print"Error:unabletofetchdata"#关闭数据库连接db.close()以上脚本执行结果如下:

fname=Mac,lname=Mohan,age=20,sex=M,income=2000数据库更新操作更新操作用于更新数据表的的数据,以下实例将EMPLOYEE表中的SEX字段为'M'的AGE字段递增1:

#!/usr/bin/python#-*-coding:UTF-8-*-importMySQLdb#打开数据库连接db=MySQLdb.connect("localhost","testuser","test123","TESTDB",charset='utf8')#使用cursor()方法获取操作游标cursor=db.cursor()#SQL更新语句sql="UPDATEEMPLOYEESETAGE=AGE+1WHERESEX='%c'"%('M')try:#执行SQL语句cursor.execute(sql)#提交到数据库执行db.commit()except:#发生错误时回滚db.rollback()#关闭数据库连接db.close()删除操作删除操作用于删除数据表中的数据,以下实例演示了删除数据表EMPLOYEE中AGE大于20的所有数据:

#!/usr/bin/python#-*-coding:UTF-8-*-importMySQLdb#打开数据库连接db=MySQLdb.connect("localhost","testuser","test123","TESTDB",charset='utf8')#使用cursor()方法获取操作游标cursor=db.cursor()#SQL删除语句sql="DELETEFROMEMPLOYEEWHEREAGE>%s"%(20)try:#执行SQL语句cursor.execute(sql)#提交修改db.commit()except:#发生错误时回滚db.rollback()#关闭连接db.close()执行事务事务机制可以确保数据一致性。

事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。

PythonDBAPI2.0的事务提供了两个方法commit或rollback。

#SQL删除记录语句sql="DELETEFROMEMPLOYEEWHEREAGE>%s"%(20)try:#执行SQL语句cursor.execute(sql)#向数据库提交db.commit()except:#发生错误时回滚db.rollback()对于支持事务的数据库,在Python数据库编程中,当游标建立之时,就自动开始了一个隐形的数据库事务。

commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新的事务。

DBAPI中定义了一些数据库操作的错误及异常,下表列出了这些错误和异常:

THE END
1.PYTHON实现对OWRD题库处理mob6454cc6e6a40的技术博客在工作中,不管Web开发或者爬虫,数据分析等凡是与数据有接触的都离不开数据库。数据库又分为关系型数据库还是非关系型数据库,关系型数据库中最常用应该就是MySQL了。 在Python中可以通过PyMySQL库完成对其的操作。 安装PyMySQL pip3 install pymysql 1. https://blog.51cto.com/u_16099256/12856935
2.探索图书管理新境界:基于Python+MySQL的图书管理系统在数字化时代,图书管理系统的效率和便捷性显得尤为重要。本项目提供了一个入门级别的图书管理系统,采用Python语言编写,并结合MySQL数据库进行数据存储。系统不仅具备简单的图形用户界面(GUI),还能实现图书信息的增加、修改、删除和查看功能。无论是图书馆管理员还是个人用户,都能通过这个系统轻松管理图书信息。 https://blog.csdn.net/gitblog_09728/article/details/143009765
3.Python+MySQL图书管理系统超级简单简略版connection.commit()#提交事务,将之前执行的 SQL 操作(比如 UPDATE、DELETE、INSERT)的修改永久保存到数据库中。returnresultdefselect_book():cursor=connection.cursor()#定义 SQL 查询语句,从图书信息表表中选择所有数据sql='select * from books;'cursor.execute(sql)connection.commit()#对于查询操作来说这行https://www.jianshu.com/p/99018448c6b2
4.基于Python的图书馆管理系统设计与实现随着信息技术的不断发展,图书馆作为知识的海洋,其管理方式也需要与时俱进。传统的图书馆管理方式存在着效率低下、容易出错等问题,因此开发一个功能齐全、易于使用的图书馆管理系统成为了迫切的需求。二、系统设计 系统架构本系统采用B/S架构,以Python的Flask框架为基础,构建Web应用程序。数据库采用SQLite,易于部署和https://cloud.baidu.com/article/2788276
5.Python结合MySQL数据库编写简单信息管理系统完整实例最近Python课堂上布置了综合实训,实验目标是设计一个信息管理系统,下面这篇文章主要给大家介绍了关于Python结合MySQL数据库编写简单信息管理系统的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下+ 目录 1,项目整体逻辑及使用工具 1.1 项目整体逻辑 本项目主要是使用Python进行编写,利用Python中的pymysql库https://www.jb51.net/python/288053o58.htm
6.数据库课程设计:利用pythonMySQLpyqt5设计一个带UI界面的书店5.系统实现 5.1 系统实现环境和技术 6.UI 界面 7.GitHub地址 8. 更新 1.项目简述 1.1项目来源 基于MySQL+python+pyqt5设计和实现的书店管理系统 这个项目原本是这学期数据库课程设计,经过老师提醒准备在暑假时间进行完善和修改,待新学期申请一项软件著作权(这个很水的),也算是更进一步的磨练自己。暑期完成了以下https://www.360doc.cn/article/35329290_954136737.html
7.Python基于Django的学生成绩管理系统,可视化界面(附源码,教程所以本系统采用了MYSQL进行数据库的存储管理与维护。 表4-1:成绩信息 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP kechengmingcheng varchar 200 课程名称 xuehao varchar 200 学号 xueshengxingming varchar 200 学生姓名 chengji varchar 200 成绩 https://cloud.tencent.com/developer/article/2277802
8.Python编程基础数字图书馆灯塔11.3.5 MySQL 数据类型 11.3.6 创建表 11.3.7 编辑和查看表 11.3.8 删除表 11.3.9 插入数据 11.3.10 修改数据 11.3.11 删除数据 11.3.12 使用SELECT 语句查询数据 11.3.13 在Python 中访问MySQL数据库 本章练习 第12 章 Web 框架开发 12.1 Web 应用程序设计与开发概述 https://www.dtdjzx.gov.cn/szlib/jykj/2825229.jhtml
9.2022年招生专业介绍主要课程:金融基础、保险实务、证券投资原理、证券投资分析、Python程序设计基础、大数据分析与挖掘、数据库基础、金融科技概论、个人理财、国际金融、商业银行综合业务、金融指标与政策分析,区块链金融、创业金融,大数据金融、金融职业技能实训、EXCEL金融实训、金融营销与沟通等课程。 https://www.scpcfe.cn/info/1026/14626.htm
10.MySQLContact MySQL|Login|Register HeatWave Use automated and integrated generative AI and machine learning (ML) in one cloud service for transactions and lakehouse scale analytics. Get faster insights from all your data with unmatched performance and deploy apps in your choice of cloud providers. https://www.mysql.com/
11.计算机类电子信息类等书目名单数据库系统原理及MySQL应用教程 吴琛,熊燕,王小广主编 机械工业出版社 TP311/239 8 251 思科网络技术学院教程,CCNA网络安全运营 吕曙东,孙宏国主编 人民邮电出版社 TP393/2087 8 252 智能鼠原理与制作,高级篇 韩燕娜著 中国铁道出版社 TP242/90 8 253 Visual Basic程序设计实验指导 徐澜婷著 清华大学出版社 TPhttps://www.gzgs.edu.cn/tsg/info/1096/1955.htm
12.计算机网络技术(网络管理方向)专业(专科)人才培养实施方案统设必修课程:网络实用技术基础、MySQL数据库应用。 (2)专业核心课 该模块最低毕业学分为20学分,模块最低总部考试学分为20学分,模块最低设置学分为88学分。 统设必修课程:计算机组网技术、Windows网络操作系统管理、网络系统管理与维护、数据库运维、网络安全技术。 https://gcjsxy.scou.cn/info/1039/1877.htm