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相关推荐

  1. linux下使用C++操作mysql

    linux下使用C++操作mysql 文章目录 linux下使用C++操作mysql 一.常用类型介绍 1. MYSQL 2. MYSQL_ROW 3. MYSQL_FIELD 4. MYSQL_RE ...

  2. linux下c语言调用mysql,Linux下C语言操作MYSQL总结

    Linux下C语言操作MYSQL总结 发布时间:2006-12-17 00:40:00来源:红联作者:anciens 下文的用到的数据库表: 数据库中存在表table, 有name(varchar类型 ...

  3. linux下的shell操作mysql

    (1)MySQL的启动 重启了一次服务器后,使用> mysql -u root -p登陆是出现下面的错误: ERROR 2002 (HY000): Can't connect to local ...

  4. Linux下使用OTL操作mysql数据库

    首先重点推荐介绍otl介绍及用法的文章:http://www.cnblogs.com/fnlingnzb-learner/p/5835560.html 一.编写代码 注:以下代码来自OTL示例,略有改 ...

  5. python socket mysql_5.Python操作MySQL,三层架构,Socket网络编程

    Python操作MySQL - MySQL之查询操作 - MySQL之插入数据 - MySQL之批量插入数据 - MySQL之删除数据 - MySQL之更新数据库 - MySQL之事务 - MySQL ...

  6. python豆瓣mysql_python爬虫获取豆瓣电影——Python操作MySQL存储数据

    30 May 2015 爬虫抓到的数据需要存储到MySQL中,所以我们需要熟悉下使用Python操作MySQL数据库.首先你的机器上要安装MySQLdb,MySQLdb是用于Python连接Mysql ...

  7. linux下c语言调用mysql,Linux下C语言连接MySQL

    首先保证安装: 1:安装MySQL:sudo apt-get install mysql-server mysql-client 2:安装MySQL开发包:sudo apt-get install l ...

  8. linux下使用的mysql数据库,Linux下安装以及使用MySQL数据库

    1.官网下载mysql数据库:https://dev.mysql.com/downloads/mysql/ 2.linux 下可直接下载:wget https://cdn.mysql.com//Dow ...

  9. linux python连接oracle数据库_Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法...

    本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: ...

最新文章

  1. 2022-2028年中国电子陶瓷行业深度调研及投资前景预测报告
  2. 基于shell脚本比较数字大小
  3. PHP Memcached + APC + 文件缓存封装
  4. php怎么做签到系统,PHP如何实现签到功能
  5. python recv_[Python]关于socket.recv()的非阻塞用法
  6. sd卡有多个android文件夹,android - 如何adb拉出SD卡中存在的文件夹的所有文件
  7. D3 transtion
  8. hadoop 传感器数据_大数据时代Hadoop的本质,你有过认真了解吗?
  9. Spring 3.0 基于 Annotation 的依赖注入实现
  10. NBU备份速度快慢调整
  11. PySide2嵌入外部程序
  12. 熊猫入金讲为什么seo没效果
  13. 【springmvc】SpringMVC启动流程及源码分析
  14. 深度学习论文: Slicing Aided Hyper Inference and Fine-tuning for Small Object Detection及其PyTorch实现
  15. 2020武理计专上岸,拿下一等奖学金的曲折经历分享
  16. pta森森快递(线段树 + 贪心 + 区间修改)
  17. 使用循环神经网络(RNN)实现影评情感分类
  18. vue3.0初体验(例子解读reactive响应式)
  19. html文件怎么在桌面建立,怎么创建html网页 怎样在桌面上建立HTML网页文件?
  20. HTML table表格边框为单线的方法

热门文章

  1. python没有错误但是不显示结果_为什么我在Python3中加载模块时遇到问题但在Python2中没有加载?...
  2. 50个直击灵魂的问题_当妈后,你想过这三个直击灵魂的问题吗?
  3. linux删除文件夹提示没找到,Win10中遇到删除文件夹提示找不到该项目的解决过程...
  4. 使用redis的发布订阅模式实现消息队列
  5. 一站式VDI部署教程(3)配置存储分层和重复数据删除功能
  6. php获取服务器相关信息
  7. HDU - 5381 The sum of gcd(莫队/线段树区间合并)
  8. CodeForces - 1196F K-th Path(最短路+思维)好题
  9. HDU - 5788 Level Up(主席树+dfs序+树状数组)
  10. CodeForces - 1337E Kaavi and Magic Spell(dp)