MySQL服务器以独立的进程运行,并通过网络对外服务,所以,Python需要MySQL驱动来连接到MySQL服务器。MySQL官方提供了mysql-connector-python驱动,但是安装的时候需要给pip命令加上参数--allow-external

pip install mysql-connector-python --allow-external mysql-connector-python

下面看一个简单的连接mysql,创建表和添加数据的小例子:

import mysql.connector

# host 默认是127.0.0.1

# port 默认即是3306

# charset 默认即是utf8

config = {'host': '192.168.99.189', 'user': 'my', 'password': '123456', 'port': 3306, 'database': 'pytest', 'charset': 'utf8'}

# 连接mysql

cn = mysql.connector.connect(**config)

# 创建游标对象

cursor = cn.cursor()

# 创建一个user表

cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')

# 插入两条数据 %s是占位符

cursor.execute('insert into user (id, name) values (%s, %s)', ['1', 'Michael'])

cursor.execute('insert into user (id, name) values ("2", "逗逼")')

print(cursor.rowcount)

# 执行查询

cursor.execute('select * from user where name = %s', ['Michael'])

# 接受返回行

L = cursor.fetchall()

print(L)

cursor.close()

cn.close()

从上面的例子可以看出,数据库的操作一般步骤为:

1.配置数据库连接信息

2.连接数据库,获取连接对象

3.使用连接对象获取一个游标对象(cursor对象)

4.使用cursor对象提供的方法执行SQL语句

5.关闭cursor对象

6.关闭连接对象

cursor用来执行命令的常用方法:

callproc(self, procname, args)

用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数

execute(self, query, args)

执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数

executemany(self, query, args)

执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数

nextset(self)

移动到下一个结果集

cursor用来接收返回值的常用方法:

fetchall(self)

接收全部的返回结果行.

fetchmany(self, size=None)

接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.

fetchone(self)

返回一条结果行.

scroll(self, value, mode='relative')

移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一 行移动value条.

补充:我们这里了解一下DB-API:

下面的文章来源:http://blog.sina.com.cn/s/blog_8a18c33d01019op8.html

由于数据库类型实在太多太杂,所以就出现了SGI小组,为不同的数据库提供一致的访问接口即DB-API,可以在不同数据库间快速移植代码。比如Python开发的MySQLdb遵从DB-API, 实现了connect(), connect.cursor()等方法...其他的db类也实现了同样的方法,故可以很容易移植。

DB-API规范的属性:

apilevel DB-API 模块兼容的 DB-API 版本号

threadsafety 线程安全级别

paramstyle 该模块支持的 SQL 语句参数风格

DB-API规范的方法:

connect() 连接函数,生成一个connect对象,以提供数据库操作,同时函数参数也是固定好的

其中connect对象又有如下方法:

# 所谓事务可以认为是一整套操作 只要有一处纰漏就废

close()

关闭此connect对象, 关闭后无法再进行操作,除非再次创建连接

commit()

提交当前事务,如果是支持事务的数据库执行增删改后没有commit则数据库默认回滚

rollback()

取消当前事务

cursor()

创建游标对象

其中cursor游标对象又有如下属性和方法:

常用方法:

close()

关闭此游标对象

fetchone()

得到结果集的下一行

fetchmany([size = cursor.arraysize])

得到结果集的下几行

fetchall()

得到结果集中剩下的所有行

excute(sql[, args])

执行一个SQL语句

excutemany(sql, args)

执行多个数据库查询或命令

常用属性:

connection

创建此游标对象的数据库连接

arraysize

使用fetchmany()方法一次取出多少条记录,默认为1

lastrowid

相当于PHP的last_inset_id()

python数据库教程_python使用mysql操作教程相关推荐

  1. python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  2. python操作数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  3. python在excle教程全集_Python对Excel操作教程

    Python 对 Excel 操作详解 文档摘要: 本文档主要介绍如何通过 python 对 office excel 进行读写操作,使用 了 xlrd . xlwt 和 xlutils 模块. 另外 ...

  4. python mysql操作_Python的MySQL操作

    Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库. Python DB-API使用流程: 引入API模块. 获取与数据库的连接. 执行SQL ...

  5. python操作mysql事务提交_python关于Mysql操作

    一.安装mysql windows下,直接下载mysql安装文件,双击安装文件下一步进行操作即可, Linux下的安装也很简单,除了下载安装包进行安装外,一般的linux仓库中都会有mysql ,我们 ...

  6. python数据库查询优化_Python操作数据库-查询优化

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  7. python fetchall方法_Python连接MySQL并使用fetchall()方法过滤特殊字符

    来一个简单的例子,看Python如何操作数据库,相比Java的JDBC来说,确实非常简单,省去了很多复杂的重复工作,只关心数据的获取与操作. 准备工作 需要有相应的环境和模块: Ubuntu 14.0 ...

  8. python安装mysql数据库教程_python安装mysql的依赖包mysql-python操作

    一般情况下,使用pip命令安装即可: [root@dthost27 ~]# pip install mysql-python 但是在实际工作环境中,往往会安装失败,这是因为系统缺少mysql的相关依赖 ...

  9. sqlalchemy mysql教程_python使用SQLAlchemy操作MySQL

    SQLAlchemy是Python编程语言下的一款开源软件,提供了SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行.SQLAlchemy首次发行于2006年2月,并迅速地在Python社 ...

  10. python数据库实例_Python操作MySQL数据库9个实用实例

    用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1.2.3.win32-py2.7.exe MySQL-pytho ...

最新文章

  1. kernfs_link_sibling
  2. 仿FLASH动感十足鼠标滑过放大的菜单代码
  3. fileinput模块可以循环一个或多个文本文件的内容
  4. Windows系统文件详解【大全】
  5. Jupyter简易上手的安装与使用教程
  6. android 基本知识
  7. 容器入门(3) - docker
  8. zepto 事件分析4(事件队列)
  9. 理解 JavaScript 的 async/await(转)
  10. 设计模式 ( 十三 ) JDK动态代理模式
  11. 评价法(四):yaahp软件——层次分析法模块使用
  12. 微信UnionId 部分开放
  13. QQGame找茬游戏辅助工具
  14. TensorFlow问题:FLAGS._parse_flags()报错AttributeError:_parse_flags
  15. Orge配置Debug - 在Mac上利用Homebrew安装指定版本的Cmake
  16. 学习计算机网络感想,计算机网络学习心得体会
  17. 苹果App Store审核指南中文翻译
  18. 【安全资讯】新形势下网络犯罪有哪些趋势和特点?检察官有话说
  19. 微信终端跨平台组件 Mars 在移动网络的探索和实践
  20. 离焦、球差、像散等成像结果

热门文章

  1. 异常排查_Python-日志模块.NoSectionError: No section: '*' 错误?
  2. 空字符串(“”)和null的区别
  3. equals()与hashCode()方法协作约定
  4. 桌面养花-DesktopPlant v2.3.12原创汉化版
  5. 《MySQL必知必会》学习笔记——第五章(排序检索数据)
  6. Facebook KeyHash生成方法
  7. Android的硬件缩放技术优化执行效率 Screen.SetResolution
  8. wait()和sleep()区别(常见面试题)
  9. 古风素材无水印免费下载
  10. 在成长中遇到的挫折事件对你的影响_孩子一遇到困难就退缩?3个方法培养孩子逆商,提升抗挫折能力...