linux下使用python操作mysql
linux下使用python操作mysql
文章目录
- linux下使用python操作mysql
- 一、Python 中MySQL的几个模块对象
- 1.模块
- 2.Connection 对象
- 3.Cursor对象
- 二、Python中操作mysql的步骤
- 1.引入pymysql模块
- 2.调用Connection()
- 3.调用Cursor()
- 4.调用execute()
- 5.调用fetchone/fetchall
- 6.调用Cursor.close()
- 7.调用Connection.close()
- 三、例
一、Python 中MySQL的几个模块对象
1.模块
在py文件中引入pymysql模块
from pymysql import *
2.Connection 对象
用于建立与数据库的连接
创建对象:调用connect()方法
conn=connect(参数列表)
参数host:连接的mysql主机,如果本机是'localhost'
参数port:连接的mysql主机的端口,默认是3306
参数database:数据库的名称
参数user:连接的用户名
参数password:连接的密码
参数charset:通信采用的编码方式,推荐使用utf8对象的方法:
close()关闭连接
commit()提交
cursor()返回Cursor对象,用于执行sql语句并获得结果
3.Cursor对象
用于执行sql语句,使用频度最高的语句为select、insert、update、delete
获取Cursor对象:调用Connection对象的cursor()方法
cs1=conn.cursor()对象的方法
close()关闭
execute(operation [, parameters ])执行语句,返回受影响的行数,主要用于执行insert、update、delete语句,也可以执行create、alter、drop等语句
fetchone()执行查询语句时,获取查询结果集的第一个行数据,返回一个元组
fetchall()执行查询时,获取结果集的所有行,一行构成一个元组,再将这些元组装入一个元组返回对象的属性
rowcount只读属性,表示最近一次execute()执行后受影响的行数
connection获得当前连接对象
二、Python中操作mysql的步骤
1.引入pymysql模块
在py文件中引入pymysql模块
from pymysql import *
2.调用Connection()
返回Connection对象,用于建立与数据库的连接
3.调用Cursor()
返回游标cursor对象
4.调用execute()
执行sql语句
5.调用fetchone/fetchall
返回执行sql的结果
- fetchone()执行查询语句时,
获取查询结果集的第一个行数据,返回一个元组
- fetchall()执行查询时,
获取结果集的所有行,一行构成一个元组,再将这些元组装入一个元组返回
6.调用Cursor.close()
7.调用Connection.close()
三、例
增删改
from pymysql import *def main():# 创建Connection连接conn = connect(host='localhost',port=3306,database='jing_dong',user='root',password='mysql',charset='utf8')# 获得Cursor对象cs1 = conn.cursor()# 执行insert语句,并返回受影响的行数:添加一条数据# 增加count = cs1.execute('insert into goods_cates(name) values("硬盘")')#打印受影响的行数print(count)count = cs1.execute('insert into goods_cates(name) values("光盘")')print(count)# # 更新# count = cs1.execute('update goods_cates set name="机械硬盘" where name="硬盘"')# # 删除# count = cs1.execute('delete from goods_cates where id=6')# 提交之前的操作,如果之前已经之执行过多次的execute,那么就都进行提交conn.commit()# 关闭Cursor对象cs1.close()# 关闭Connection对象conn.close()if __name__ == '__main__':main()
查询一行数据
from pymysql import *def main():# 创建Connection连接conn = connect(host='localhost',port=3306,user='root',password='mysql',database='jing_dong',charset='utf8')# 获得Cursor对象cs1 = conn.cursor()# 执行select语句,并返回受影响的行数:查询一条数据count = cs1.execute('select id,name from goods where id>=4')# 打印受影响的行数print("查询到%d条数据:" % count)for i in range(count):# 获取查询的结果result = cs1.fetchone()# 打印查询的结果print(result)# 关闭Cursor对象cs1.close()conn.close()if __name__ == '__main__':main()
查询多行数据
from pymysql import *def main():# 创建Connection连接conn = connect(host='localhost',port=3306,user='root',password='mysql',database='jing_dong',charset='utf8')# 获得Cursor对象cs1 = conn.cursor()# 执行select语句,并返回受影响的行数:查询一条数据count = cs1.execute('select id,name from goods where id>=4')# 打印受影响的行数print("查询到%d条数据:" % count)# for i in range(count):# # 获取查询的结果# result = cs1.fetchone()# # 打印查询的结果# print(result)# # 获取查询的结果result = cs1.fetchall()print(result)# 关闭Cursor对象cs1.close()conn.close()if __name__ == '__main__':main()
参数化
- sql语句的参数化,可以有效防止sql注入
- 注意:此处不同于python的字符串格式化,全部使用%s占位
from pymysql import *def main():find_name = input("请输入物品名称:")# 创建Connection连接conn = connect(host='localhost',port=3306,user='root',password='mysql',database='jing_dong',charset='utf8')# 获得Cursor对象cs1 = conn.cursor()# # 非安全的方式# # 输入 " or 1=1 or " (双引号也要输入)# sql = 'select * from goods where name="%s"' % find_name# print("""sql===>%s<====""" % sql)# # 执行select语句,并返回受影响的行数:查询所有数据# count = cs1.execute(sql)# 安全的方式# 构造参数列表params = [find_name]# 执行select语句,并返回受影响的行数:查询所有数据count = cs1.execute('select * from goods where name=%s', params)# 注意:# 如果要是有多个参数,需要进行参数化# 那么params = [数值1, 数值2....],此时sql语句中有多个%s即可 # 打印受影响的行数print(count)# 获取查询的结果# result = cs1.fetchone()result = cs1.fetchall()# 打印查询的结果print(result)# 关闭Cursor对象cs1.close()# 关闭Connection对象conn.close()if __name__ == '__main__':main()
注意:python语言操作数据库是默认自带事务的
linux下使用python操作mysql相关推荐
- linux下使用C++操作mysql
linux下使用C++操作mysql 文章目录 linux下使用C++操作mysql 一.常用类型介绍 1. MYSQL 2. MYSQL_ROW 3. MYSQL_FIELD 4. MYSQL_RE ...
- linux下c语言调用mysql,Linux下C语言操作MYSQL总结
Linux下C语言操作MYSQL总结 发布时间:2006-12-17 00:40:00来源:红联作者:anciens 下文的用到的数据库表: 数据库中存在表table, 有name(varchar类型 ...
- linux下的shell操作mysql
(1)MySQL的启动 重启了一次服务器后,使用> mysql -u root -p登陆是出现下面的错误: ERROR 2002 (HY000): Can't connect to local ...
- Linux下使用OTL操作mysql数据库
首先重点推荐介绍otl介绍及用法的文章:http://www.cnblogs.com/fnlingnzb-learner/p/5835560.html 一.编写代码 注:以下代码来自OTL示例,略有改 ...
- python socket mysql_5.Python操作MySQL,三层架构,Socket网络编程
Python操作MySQL - MySQL之查询操作 - MySQL之插入数据 - MySQL之批量插入数据 - MySQL之删除数据 - MySQL之更新数据库 - MySQL之事务 - MySQL ...
- python豆瓣mysql_python爬虫获取豆瓣电影——Python操作MySQL存储数据
30 May 2015 爬虫抓到的数据需要存储到MySQL中,所以我们需要熟悉下使用Python操作MySQL数据库.首先你的机器上要安装MySQLdb,MySQLdb是用于Python连接Mysql ...
- linux下c语言调用mysql,Linux下C语言连接MySQL
首先保证安装: 1:安装MySQL:sudo apt-get install mysql-server mysql-client 2:安装MySQL开发包:sudo apt-get install l ...
- linux下使用的mysql数据库,Linux下安装以及使用MySQL数据库
1.官网下载mysql数据库:https://dev.mysql.com/downloads/mysql/ 2.linux 下可直接下载:wget https://cdn.mysql.com//Dow ...
- linux python连接oracle数据库_Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法...
本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: ...
最新文章
- 2022-2028年中国电子陶瓷行业深度调研及投资前景预测报告
- 基于shell脚本比较数字大小
- PHP Memcached + APC + 文件缓存封装
- php怎么做签到系统,PHP如何实现签到功能
- python recv_[Python]关于socket.recv()的非阻塞用法
- sd卡有多个android文件夹,android - 如何adb拉出SD卡中存在的文件夹的所有文件
- D3 transtion
- hadoop 传感器数据_大数据时代Hadoop的本质,你有过认真了解吗?
- Spring 3.0 基于 Annotation 的依赖注入实现
- NBU备份速度快慢调整
- PySide2嵌入外部程序
- 熊猫入金讲为什么seo没效果
- 【springmvc】SpringMVC启动流程及源码分析
- 深度学习论文: Slicing Aided Hyper Inference and Fine-tuning for Small Object Detection及其PyTorch实现
- 2020武理计专上岸,拿下一等奖学金的曲折经历分享
- pta森森快递(线段树 + 贪心 + 区间修改)
- 使用循环神经网络(RNN)实现影评情感分类
- vue3.0初体验(例子解读reactive响应式)
- html文件怎么在桌面建立,怎么创建html网页 怎样在桌面上建立HTML网页文件?
- HTML table表格边框为单线的方法
热门文章
- python没有错误但是不显示结果_为什么我在Python3中加载模块时遇到问题但在Python2中没有加载?...
- 50个直击灵魂的问题_当妈后,你想过这三个直击灵魂的问题吗?
- linux删除文件夹提示没找到,Win10中遇到删除文件夹提示找不到该项目的解决过程...
- 使用redis的发布订阅模式实现消息队列
- 一站式VDI部署教程(3)配置存储分层和重复数据删除功能
- php获取服务器相关信息
- HDU - 5381 The sum of gcd(莫队/线段树区间合并)
- CodeForces - 1196F K-th Path(最短路+思维)好题
- HDU - 5788 Level Up(主席树+dfs序+树状数组)
- CodeForces - 1337E Kaavi and Magic Spell(dp)