python mysql实例_Python使用MySQL数据库的方法以及一个实例
使用环境:Windows+python3.4+MySQL5.5+Navicat
一、创建连接
1.准备工作,想要使用Python操作MySQL,首先需要安装MySQL-Python的包,在Python 3.x下,该包已经改名为MySQLClient。可以使用pip方式安装:
pip install MySQLClient
或者下载包文件,进行安装也可以。
2.Python使用MySQL的流程:
3.启动MySQL服务器:以管理员身份启动“cmd”,输入命令:’net start mysql‘
Python中使用MySQL导入方法:import MySQLdb
4.创建Connection
Connection:创建了Python客户端与数据库之间的网络通路。他的参数如下
参数名
类型
说明
host
String
MySQL的服务器地址
port
int
MySQL的端口号
user
String
用户名
passwd
String
密码
db
String
使用的数据库
charset
String
连接字符集
Connection支持的方法:
方法名
说明
cursor()
创建并且返回游标
commit()
提交当前事物
rollback()
回滚当前事物r()
close()
关闭Connection
5.获取Cursor.
Cursor:游标对象,用于执行查询和获取结果,它支持的方法如下:
方法名
说明
execute()
用于执行一个数据库的查询命令
fetchone()
获取结果集中的下一行
fetchmany(size)
获取结果集中的下(size)行
fetchall()
获取结果集中剩下的所有行
rowcount
最近一次execute返回数据/影响的行数
close()
关闭游标
下面我们在Python中创建一个实例:
import MySQLdb
conn=MySQLdb.connect(host='127.0.0.1',port=3306,user='root',passwd='199331',db='test',charset='utf8')
cursor=conn.cursor()
print(conn)
print(cursor)
cursor.close()
conn.close()
运行程序结果如下:
从结果中我们可以看见成功创建了一个Connection和Cursor对象。
二、建立数据库,进行一些简单操作
1.简单的创建一个’user‘表,并且插入一些数据。user表中只有两个字段:userid和username。代码如下:
import MySQLdb
conn=MySQLdb.connect(host='127.0.0.1',port=3306,user='root',passwd='199331',db='test',charset='utf8')
cur=conn.cursor()
cur.execute("""
create table if not EXISTS user
(
userid int(11) PRIMARY KEY ,
username VARCHAR(20)
)
""")
for i in range(1,10):
cur.execute("insert into user(userid,username) values('%d','%s')" %(int(i),'name'+str(i)))
conn.commit()
cur.close()
conn.close()
我们用Navicat打开数据库,查看一下结果,
,可以看到成功创建表,并且插入了十个数据。
2.我们操作一下Cursor里面的一些方法。
execute()方法:执行SQL,将一个结果从数据库获取到客户端
fetch*()方法:移动rownumber,返回数据。
例如我们有如下代码:
rs=cursor.fetchall()print(rs)
结果如下:
我们可以看出执行查询全部数据后,rowcount为10
执行fetchone()方法后返回一个数据,执行fetchmany(3)后返回3条数据,执行fetchall()后返回剩下的所有数据。
再有如下代码:
此时的执行结果为:
3.上面介绍的便是数据库中常说的Select操作,下面我们介绍数据的更新,即:insert、update、delete操作。值得注意的是在这部分操作时需要注意的是是否数据发生异常,如果数据没有发生异常,我们便可以直接使用commit()进行提交(注:如没有使用commit,则数据库不会发生任何变化)。但是如果出现了异常,那么久需要使用rollback()进行回滚。
3.1先来看一个没有异常,正常提交的例子:
conn.commit()
上面的操作即是:添加一条(10,’name10‘)的数据、将userid=9的username修改为’name91‘,删除userid=3的数据,执行上面代码后我们来用Navicat查看一下数据:
从结果可以看到代码执行正常。
3.2.再来看一个有异常的数据
这里的insert和update操作一样,只不过把delete里面的userid字段错误的写成了useri,执行代码:
可以看到显示出异常,这时我们来看一下数据库数据:
数据没有任何改变。这就是rollback()的作用
因此,我们以后再写增删改查操作时,最好把操作放入一个try控制块中,来避免一些不必要的错误。
下面是一个银行转账的实例:
python mysql实例_Python使用MySQL数据库的方法以及一个实例相关推荐
- python参数默认值实例_Python中使用partial改变方法默认参数实例
#!/usr/bin/env python # -*- coding: utf-8 -*- #python2.7x #partial.py #authror: orangleliu ''' funct ...
- mysql 数据库名称 特殊字符_Mysql必读MySQL创建带特殊字符的数据库名称方法示例...
<Mysql必读MySQL创建带特殊字符的数据库名称方法示例>要点: 本文介绍了Mysql必读MySQL创建带特殊字符的数据库名称方法示例,希望对您有用.如果有疑问,可以联系我们. MYS ...
- mysql特殊字段名称_Mysql必读MySQL创建带特殊字符的数据库名称方法示例
<MysqL必读MysqL创建带特殊字符的数据库名称方法示例>要点: 本文介绍了MysqL必读MysqL创建带特殊字符的数据库名称方法示例,希望对您有用.如果有疑问,可以联系我们. 文章抓 ...
- python数据库实例_Python操作MySQL数据库9个实用实例
用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1.2.3.win32-py2.7.exe MySQL-pytho ...
- python数据库管理实例_Python操作MySQL数据库9个实用实例
在Windows平台上安装mysql模块用于Python开发 用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1. ...
- python mysql实例_Python操作Mysql实例代码
本文介绍了Python操作MYSQL.执行SQL语句.获取结果集.遍历结果集.取得某个字段.获取表字段名.将图片插入数据库.执行事务等各种代码实例和详细介绍,代码居多,是一桌丰盛唯美的代码大餐. 实例 ...
- python mysql单元测试_python测试mysql写入性能完整实例
本文主要研究的是python测试mysql写入性能,分享了一则完整代码,具体介绍如下. 测试环境: (1) 阿里云服务器centos 6.5 (2) 2G内存 (3) 普通硬盘 (4) mysql 5 ...
- python databaseoperate_python开发_python操作mysql数据库
1 #-*- coding: utf-8 -*- 2 #python operate mysql database 3 importMySQLdb4 5 #数据库名称 6 DATABASE_NAME ...
- python连接mysql代码_Python连接MySQL的实例代码
!/usr/bin/env python -*-coding:UTF-8-*- 这一句告诉python用UTF-8编码 ======================================== ...
最新文章
- oracle查看联机日志,oracle联机日志和归档日志
- java读取属性文件的方法_java读取属性文件的方法
- 万网绑定二级域名_Hexo+yilia主题网站绑定个性域名
- linux expect sftp,expect实现sftp文件同步
- 1 Linux下ps aux下的各种进程状态
- Oracle11g安装教程
- 库仑计BQ27441使用
- SPSS统计分析行业应用实战--SPSS 23.0新增
- Windows中I/O完成端口机制详解
- android手势动画
- 每日一题 第二次考试 数据库题目,7.17数据库面试题目补充
- 极路由4增强版编译aria2-1.34
- CentOS7 安装WPS: libGLU.so.1()
- 终端代理以及git加速
- 「AI芯片公司」比特大陆的路线图上,除了四款TPU还有在这三个产业落地的野心
- 欣瑞达一分钟教程,如何接RS232/RS485线
- Exploiting Sample Uncertainty for Domain Adaptive Person Re-Identification论文解读
- Exception in thread “main“ java.lang.ClassNotFoundException: christopher.App
- 学生如何申请免费IDEA
- Shiro集成Spring框架并且多Realms报错No realms have been configured! One or more realms must be ……解决办法
热门文章
- Windows Server 2016-批量设置用户下次登陆须更改密码
- 一项一项教你测等保2.0——Windows入侵防范
- Maven学习总结(35)——Maven项目错误 JAX-RS (REST Web Services) 2.0 can not be installed问题...
- 双光子荧光成像_有机双光子荧光染料在生物成像中的应用取得新进展
- java development kit64_Java SE Development Kit (JDK) v14.0 x64
- Ubuntu 平滑升级到PHP7
- 毫秒数据字符串转换为DateTime
- 删除和创建用户的脚本
- 利用pgAgent创建定时任务
- 宇斯盾助中厚实现TurboERP远程应用