热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pythonconn_Python——MySQL操作,使用mysql.connector

下载安装mysql-connector在命令行中执行下面的命令:python-mpipinstallmysql-connector如果是windows上面出错的话&#

下载安装mysql-connector

在命令行中执行下面的命令:

python -m pip install mysql-connector

如果是windows上面出错的话,可以参考这篇博客:pip安装模块失败的解决办法

测试

进入python中,尝试导入mysql.connector模块,如果没有报错的话,就证明模块已经成功安装,可以使用了。

C:\WINDOWS\system32>python

Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>> import mysql.connector

>>>

连接MySQL

主要是使用mysql.connector模块的connect函数,需要注意参数的名称。

import mysql.connector

# 接收参数:user, password, host, port=3306, unix_socket and database

# 返回一个MySQLConnection Object

conn = mysql.connector.connect(

host='localhost',

user='root',

password='root',

database='test'

)

执行SQL命令

执行sql命令之前,需要先创建一个查询,调用一下cursor()方法,这个方法名光标的意思,可以理解为,命令行中,执行sql语句之前,先要有一个光标行,在光标行中进行操作。

调用cursor()返回的结果就是光标行(cmd,简称cmd),然后调用cmd的execute()方法,传入要执行的sql即可,不过需要注意的是,执行sql的结果,执行的结果仍旧保存在cmd中。

select查询操作

执行select操作,使用fetchall()一次性取回所有的结果集。

import mysql.connector

# 接收参数:user, password, host, port=3306, unix_socket and database

# 返回一个MySQLConnection Object

conn = mysql.connector.connect(

host='localhost',

user='root',

password='root',

database='test'

)

# 创建一个查询

cmd = conn.cursor()

# 执行一条原生的SQL语句,执行结果保存在cmd中,没有返回值

cmd.execute("select id, name, age from stu")

# 可以使用fetchall(),获取所有的查询结果集,返回值为一个tuple,每一个元素是一个list

res = cmd.fetchall()

print(res)

# [(1, 'LiMing', 20), (2, 'XiaoHua', 30), (3, 'LiLei', 10)]

执行select操作,使用fetchone()每次只取一条记录

import mysql.connector

conn = mysql.connector.connect(

host='localhost',

user='root',

password='root',

database='test'

)

cmd = conn.cursor()

cmd.execute("select id, name, age from stu")

# 使用fetchone()返回一条结果集,每调用一次之后,内部指针会指向下一条结果集

print(cmd.fetchone()) # (1, 'LiMing', 20)

print(cmd.fetchone()) # (2, 'XiaoHua', 30)

print(cmd.fetchone()) # (3, 'LiLei', 10)

执行select操作,使用fetchmany(num)指定每次返回的num条结果集

import mysql.connector

conn = mysql.connector.connect(

host='localhost',

user='root',

password='root',

database='test'

)

cmd = conn.cursor()

cmd.execute("select * from stu")

res = cmd.fetchmany(2) # 指定返回2条记录

print(res)

# [(1, 'LiMing', 20), (2, 'XiaoHua', 30)]

res = cmd.fetchmany(1) # 指定返回1条记录

print(res)

# [(3, 'LiLei', 10)]

insert、update、delete操作

insert、update、delete操作,也都是使用execute方法,只需要将要执行的sql语句传入即可。

可以在执行增删改操作之后,rowcount属性保存着受影响的记录数。

每次插入一条数据

import mysql.connector

# 接收参数:user, password, host, port=3306, unix_socket and database

# 返回一个MySQLConnection Object

conn = mysql.connector.connect(

host='localhost',

user='root',

password='root',

database='test'

)

# 创建一个查询

cmd = conn.cursor()

# 执行原生SQL语句

cmd.execute("insert into stu (id, name, age) values (4, 'LiBai', 99)")

print(cmd.rowcount) # 1

cmd.execute("select * from stu")

res = cmd.fetchall()

print(res)

# [(1, 'LiMing', 20), (2, 'XiaoHua', 30), (3, 'LiLei', 10), (4, 'LiBai', 99)]

使用预处理格式(占位符格式)

可以查看一下execute()方法的定义:

class MySQLCursor(CursorBase):

'''

省略很多方法和变量

'''

def execute(self, operation, params=None, multi=False):

"""Executes the given operation

Executes the given operation substituting any markers with

the given parameters.

For example, getting all rows where id is 5:

cursor.execute("SELECT * FROM t1 WHERE id = %s", (5,))

The multi argument should be set to True when executing multiple

statements in one operation. If not set and multiple results are

found, an InterfaceError will be raised.

If warnings where generated, and connection.get_warnings is True, then

self._warnings will be a list containing these warnings.

Returns an iterator when multi is True, otherwise None.

"""

第1个参数是要执行的SQL语句,其中,参数位置先使用占位符来占位

第2个参数是一个tuple(元组),元素值就是SQL占位符对应的参数,注意只有一个参数的时候,要写成(xxx,),后面的逗号不要忘记。

第3个参数是一个bool值,表示第一个参数是不是多个SQL语句,如果是的话,就传入True,否则传入False。

使用示例

import mysql.connector

conn = mysql.connector.connect(

host='localhost',

user='root',

password='root',

database='test'

)

cmd = conn.cursor()

# 注意,在SQL中的占位符,统一写%s, 具体的类型,是在tuple中,传入的参数元素类型决定

cmd.execute("select * from stu where id=%s and name=%s", (1, 'LiMing'))

res = cmd.fetchall()

print(res)

# [(1, 'LiMing', 20)]



推荐阅读
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
author-avatar
周周微商互联
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有