Python学习之==>操作MySQL

一、简介:

  MySQL为关系型数据库,其他关系型数据库包括Oracle、DB2、Sql Server等等。Python操作MySQL需要使用到pymsyql模块,pip安装即可。

二、操作MySQL步骤

  1、连上数据库(IP、端口号、用户名、密码、数据库名)

  2、建立游标

  3、执行sql

  4、获取结果

  5、关闭游标

  6、关闭连接

 1 import pymysql
 2 conn = pymysql.connect(
 3     host=‘192.168.1.112‘,
 4     user=‘test‘,
 5     passwd=‘111111‘,
 6     port=3306,          # port必须是int类型
 7     db=‘test‘,
 8     charset=‘utf8‘      # charset必须写utf8,不能写utf-8
 9 )
10 sqla = ‘select * from stu limit 10;‘
11 sqlb = ‘insert into stu (id,name,sex) VALUE (10000,"张流量","女");‘
12 cur = conn.cursor()     # 建立游标,不指定cursor类型返回的是二维元组
13 cur = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 建立游标,指定cursor类型返回的是字典
14 cur.execute(sqla)       # 执行sqla
15 cur.execute(sqlb)       # 执行sqlb
16 conn.commit()           # 执行insert、delete、update语句必须commit
17 res = cur.fetchall()    # 执行所有返回的结果,fetchall返回的是一个二维数组
18 res = cur.fetchone()    # 执行所有返回的结果,fetchone返回的是第一行
19 res = cur.fetchmany(2)  # 执行所有返回的结果,fetchmany传入一个数返回多少条数据
20 res = cur.description   # 返回表中每个字段的信息,description返回的也是一个二维数组
21 print(res)
22 cur.close()             # 关闭游标
23 conn.close()            # 关闭连接

Cursor类型:

  不指定cursor类型,即:cur = conn.cursor(),则返回的结果是:((5, ‘Ben‘, 男‘), (6, ‘Lily‘, 女‘)),是一个二维的元组

  指定curson类型,即:cur = conn.cursor(cursor=pymysql.cursors.DictCursor),则返回的结果是:

  [{‘id‘: 5, ‘name‘: ‘Ben‘, ‘sex‘: ‘男‘}, {‘id‘: 6, ‘name‘: ‘Lily‘, ‘sex‘: ‘女‘}]

fetchall()和fetchone()的区别:

  fetchall():获取到这个sql执行的全部结果,它把数据库表中的每一行数据放到一个元组或字典里面

  fetchone():获取到这个sql执行的一条结果,它返回的只是一条数据

  如果sql语句执行的结果是多条数据的时候,那就用 fetchall(),如果能确定sql执行的结果只有一条,那就用fetchone()

三、封装操作MySQL数据库的函数

 1 def my_db(sql,port=3306,charset=‘utf8‘):
 2     import pymysql
 3     host,user,passwd,db = ‘192.168.1.112‘,‘test‘,‘111111‘,‘test‘  # 定义变量
 4     conn = pymysql.connect(host=host,
 5                            user=user,
 6                            passwd=passwd,
 7                            port=port,
 8                            db=db,
 9                            charset=charset)
10     cur = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 建立游标,指定cursor类型返回的是字典
11     cur.execute(sql)     # 执行语句
12     if sql.strip().split()[0].upper() == ‘SELECT‘:        # 判断sql语句是否以select开头
13         res = cur.fetchall()
14     else:
15         conn.commit()
16         res = ‘OK‘
17     cur.close()         # 关闭游标
18     conn.close()        # 关闭连接
19     return res

四、练习

  传入一个表名,把所有数据导出,写入excel文件

 1 def export_excel(table_name):
 2     import pymysql,xlwt
 3     conn = pymysql.connect(
 4         host=‘118.24.3.40‘,
 5         user=‘jxz‘,
 6         passwd=‘123456‘,
 7         port=3306,
 8         db=‘jxz‘,
 9         charset=‘utf8‘)
10     sql = ‘select * from %s;‘%table_name
11     cur = conn.cursor()        # 建立游标,不指定cursor类型返回的是二维元组
12     cur.execute(sql)           # 执行sql
13     all_data = cur.fetchall()  # 获取表中所有数据
14     fileds = [filed[0] for filed in cur.description]  # 获取表的所有字段存入一个list里面
15     book = xlwt.Workbook()               # 新建一个excel
16     sheet = book.add_sheet(‘sheet1‘)     # 增加sheet页
17     for col,filed in enumerate(fileds):
18         sheet.write(0,col,filed)         # 将表头写入excel文件中的第一行
19     row = 1                 # 定义行数
20     for data in all_data:   # 控制行
21         for col,filed in enumerate(data):#控制列
22             sheet.write(row,col,filed)
23         row = row + 1       # 每次写完一行,行加1
24     book.save(‘%s.xls‘%table_name)

原文地址:https://www.cnblogs.com/L-Test/p/9200545.html

时间: 2024-09-29 03:52:39

Python学习之==>操作MySQL的相关文章

python学习之操作mysql

欢迎点击个人博客 http://www.iwangzheng.com/ 刚开始学python,所以很多代码都需要在ipython里尝试一下.今天记录的是最基本的操作mysql数据库. 写数据库连接操作的时候,仿佛回到了当年在前两家公司写asp.net的感觉. 1.首先在mysql数据库里新建个数据库 create database db_02 default charset utf8; create table user (id int auto_increment primary key,us

Python 学习笔记 - 操作MySQL

Python里面操作MySQL可以通过两个方式: pymysql模块 ORM框架的SQLAchemey 本节先学习第一种方式. 学习Python模块之前,首先看看MySQL的基本安装和使用,具体语法可以参考豆子之前的博客http://beanxyz.blog.51cto.com/5570417/1609972 或者官方简介 https://mariadb.com/kb/en/mariadb/basic-sql-statements/ 简单的回顾一下基本环境的搭建: 首先安装Mariadb(我的环

【python学习】操作mysql

1.首先你得有一个mysql软件 [[email protected] mysql_test]# mysql -u root -p Enter password:  Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 14 Server version: 5.7.11 MySQL Community Server (GPL) Copyright (c) 2000, 2016, 

[Python] 学习笔记之MySQL数据库操作

1 Python标准数据库接口DB-API介绍 Python标准数据库接口为 Python DB-API,它为开发人员提供了数据库应用编程接口.Python DB-API支持很多种的数据库,你可以选择跟自己项目相关的数据库.Python DB-API支持的数据库如下所示: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 不同的数据库你需要下载不同的DB API模块,例如

python学习之 -mysql 连接和db_config配置

最近学习python,记录下自己写学习python的代码和心得,自己写了一个使用python mysql 的查询语句和做的一个db_config.py 配置信息. 1.db_config.py 配置文件 1 #/usr/bin/python 2 3 class mysql_config(): 4 '''def __init__(self,name): 5 #print 'aaaa' 6 self.name = name 7 print name 8 ''' 9 def get_config(se

【Python】python读取文件操作mysql

尾大不掉,前阵子做检索测试时,总是因为需要业务端操作db和一些其他服务,这就使得检索测试对环境和数据依赖性特别高,极大提高了测试成本. Mock服务和mysql可以很好的解决这个问题,所以那阵子做了两个工作: 1 使用公司的service框架Mock服务: 2 使用python语言Mock mysql数据. 部分1只需要了解公司框架即可进行编写,本文主要记录下python操作mysql的部分. 一 安装环境 安装python即需要的MySQLdb模块(yum install MySQL-pyth

Python使用DB-API操作MySQL数据库

Python提供了一个标准数据库API,称为DB-API,用于处理基于SQL的数据库.与任何底层数据库的交互都可以使用DB-API,因为DB-API在代码与驱动程序之间提供了一个抽象层,可以根据需要替换底层数据库,而无需丢弃现有的代码. DB-API与底层数据库交互示例:①代码 ? ②使用DB-API ? ③数据库驱动程序 ? ④底层数据库(如MySQL等) 使用DB-API操作MySQL数据库例子1.Windows安装MySQL数据库驱动程序MySQL-Connector/Python 访问M

Python学习-list操作

Python列表(list)操作: 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但最常见的是列表和元组. 序列都可以进行的操作包括索引,切片,加,乘,检查成员. 此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法. 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 列表创建与更新: 1 #列

python学习道路(day12note)(mysql操作,python链接mysql,redis)

1,针对mysql操作 1 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 设置密码 2 update user set password=passworD("test") where user='root';修改密码 3 flush privileges; 4 grant all on *.* to [email protected]'%' identified by 'your_password'; 5 mysq