MySQLdb 使用简介
MySQLdb 1.2.2 for py2.6 使用简介
先看一个例子:
import MySQLdbdef test():#建立和数据库系统的连接conn=MySQLdb.connect(host='localhost',user='root',passwd='a123456')#获取操作游标cursor=conn.cursor()#执行SQL,创建一个数据库.cursor.execute('''create database python''')#关闭连接,释放资源cursor.close()con.close()
这里面涉及到2个对象,一个是Connection对象(数据库连接对象),MySQLdb.connet()返回的就是该对象;一个是Cursor对象(游标对象),conn.cursor()返回的就是该对象。
一. Connection类(python中一切都可以说是对象,类也是一种对象,所以前面说Connection对象)
*描述:MySQL数据库连接类,它的基类是:_mysql.connection
*方法(只列出部分常用方法):
1. __init__(self, *args, **kwargs)
初始化方法,接受如下参数:
(1)host 类型:string 指定目标主机地址
(2)user 类型:string 指定连接数据库用户名
(3)passwd 类型:string 指定连接数据所用密码
(4)db 类型:string 连接的数据库名
(5)port 类型:integer 连接的端口号
(6)unix_socket 类型:string unix_sockete地址
(7)conv 类型:dict 转换字典,参见MySQLdb.converters
(8)connect_timeout 类型:integer 连接超时时间
(9)compress
(10)named_pipe
(11)init_command 如果有init_command,一旦建立了连接,就会最先执行该sql命令。
(12)read_default_file
(13)read_default_group
(14)cursorclass 指定创建的游标类型
(15)use_unicode
(16)charset 设置编码方式
(17)sql_mode 设置数据库连接模式
(18)client_flag 类型:integer
(19)ssl 类型:dictionary or mapping
(20)local_infile 类型:integer
这个对象的初始化参数看起来很多,但不是每一个都必须要有,一般用的参数是前5个,在加上一个charset.
2.cursor(self, cursorclass=None):创建游标,如果cursorClass没有指定,则返回默认的Cursor对象。
3.literal(self, o)
4.set_character_set(self, charset):设置连接字符编码方式
5.set_sql_mode(self, sql_mode):设置数据库模式
6.show_warnings(self):以元组形式返回warnings信息
以下个方法是从基类中继承过来的
7.select_db(self,dbname):作用是指定使用的数据库
8.close():关闭数据库连接
9.commit():提交当前事务
10.rollback():取消当前事务
***********************************************************
游标对象有多种:Cursor, DictCursor, SSCursor, SSDictCursor。
游标对象的类型决定了fetch取出结果返回的类型,如果游标对象是Cursor、SSCursor,返回的数据库中的每一个元组对应就是tuple对象; 否则返返回的就是dict对象.
游标对象虽然有多种,但是它们所具有的方法是大同小异,且它们具有相同的一个基类:BaseCursor
二 BaseCursor类
*描述:游标基类
*数据属性:
arraysize 使用fechmany()方法一次取出多少条记录(默认值是1)
connection 游标对象的连接
description 游标活动状态
lastrowid 最后更新行的id(如果数据库不支持行id,默认返回None)
rowcount 最后一次execute()操作返回或影响的行数(默认值-1)
rownumber 当前游标所在位置(默认值None)
*方法:
1. __init__(self, connection): 初始化函数
2.close(self):关闭游标
3.nextset(self):移动游标至下一结果集,如果没有更多的结果集,返回None;否则返回1
4.execute(self, query, args=None):执行一个sql语句
5.executemany(self, query, args):多次执行一条sql语句(参数不同)
6.callproc(self, procname, args=()):执行存储过程procname
游标对象其他共同的方法:
1.fetchone(self):得到结果集的下一行
2.fetchmany(self, size=None):得到结果的下几行,如果size=None,arraysize将被使用
3.fetchall(self):返回结果集中剩下的所有行
一些使用例子:
插入和更新数据,需要注意的是,要记得commit,否则插入的数据是不会写入数据库表的。
import MySQLdb
def test1():conn=MySQLdb.connect(host='localhost',user='root',passwd='a123456')cursor=conn.cursor()cursor.execute('''create database if not exists python''')#选择数据库conn.select_db('python')#创建一个数据表cursor.execute('''create table test(id int,info varchar(100))''')value=[1,'inserted ?']#插入一条记录cursor.execute('insert into test values(%s,%s)',value)#cursor.execute('insert into test values(1,"inserted")')values=[]#生成插入参数值for i in range(20):values.append((i,'Hello mysqldb,I am recoer'+str(i)))#插入多条记录cursor.executemany('insert into test values(%s,%s)',values)cursor.close() conn.commit()#必须有,否则插入的数据无效conn.close()
查询数据
import MySQLdb
def test2():conn=MySQLdb.connect(host='localhost',user='root',passwd='a123456')cursor=conn.cursor()conn.select_db('python')count=cursor.execute('select *from test')print '总共有 %s 条记录'%count#获取一条记录,每条记录做为一个元组返回print '只获取一条记录:'result=cursor.fetchone()print result#获取5条记录,注意由于之前执行有了fetchone(),所以游标已经指到第二条记录了,也就是从第二条开始的所有记录print '只获取5条记录:'results=cursor.fetchmany(5)for r in results:print rcursor.close()conn.close()
查询指定的m,n行数据
import MySQLdb
def test3():conn=MySQLdb.connect(host='localhost',user='root',passwd='a123456')cursor=conn.cursor(MySQLdb.cursors.DictCursor)conn.select_db('python')count=cursor.execute('select *from test')count=cursor.execute('select *from test')print '总共有 %s 条记录'%countm,n=10,15#取第11条至第15条数据cursor.rownumber=mresults=cursor.fetchmany(n-m)for r in results:print rcursor.close()conn.close()
MySQLdb 使用简介相关推荐
- SQLAlchemy简介与入门
ORM与SQLAlchemy简介 ORM ORM:Object Relation Mapping,最初主要描述的是程序中的Object对象和关系型数据库中Rlation关系(表)之间的映射关系,目前来 ...
- mysqlclient==1.3.7对应mysql版本_Python通过MySQLdb访问操作MySQL数据库
前言 Python支持通过多种方式访问MySQL数据库.可能有些刚入门的朋友们对Python访问MySQL数据库还不是很熟悉,故计划对Python访问MySQL数据库的这几种方式分别作一介绍. 系列第 ...
- python mysql library popular_【过时】MySQLdb:Python 操作 MySQL 数据库
NOTE(2017-11-18): MySQLdb 不支持 Python 3,而 Python 3 是主流,所以就没有学习的必要了. 环境:MySQL 5.6.27, Ubuntu 15.10 64- ...
- sysbench压力测试工具简介和使用(一)
sysbench压力测试工具安装和参数介绍 一.sysbench压力测试工具简介: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据 ...
- Nacos教程_1 简介和安装
教程原稿–https://gitee.com/fakerlove/joker-nacos 文章目录 nacos 教程 1. 简介 1.1 介绍 1.2 安装 下载 linux版本 windows版本 ...
- Python各类库的简介(转)
转的一篇,整理的很全了,转需及自用 原文:https://blog.csdn.net/weixin_42209553/article/details/84074840 正文: 格式:库,名称,简介 C ...
- Django框架简介-初级(简单留言板)
Django框架(综合各方知识) 介绍Django和设计模式 CGI方式开发web MVC 设计模式 web各部分说明 主要内容 结构说明 必要步骤 简单体验留言板 进阶留言板:css和html分离, ...
- python爬虫框架feapder的使用简介
python爬虫框架feapder的使用简介 1.前言 Feapder 是一款上手简单.功能强大.快速.轻量级的爬虫框架的Python爬虫框架.支持轻量爬虫.分布式爬虫.批次爬虫.爬虫集成,以及完善的 ...
- Django---ORM简介丶单表操作丶增删改查
一丶ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...
最新文章
- matlab线性平面映射求通项_代数学发展史: 线性空间
- 第2章 Python 数字图像处理(DIP) --数字图像基础1 - 视觉感知要素 - 亮度适应与辨别
- 福建水院计算机一级清考,取消毕业“清考”大学生还敢混日子吗
- C#应用中的LINQ 查询语言
- 提升机器学习数学基础,这7本书一定要读-附pdf资源
- SPF算法计算过程--例
- 计算机在语文教学中,计算机课件在语文课堂教学中的应用——用Powerpoint制作课件的一点体会(网友来稿)...
- 数据库事务的四大特性和隔离级别,一文带你看通透
- 设有n个人围坐一圈并按顺时针方向从1到n编号
- 绘画系统——P5.js
- AE插件 自定义动画曲线AEscripts flow for Mac
- 论文阅读《API2Com: On the Improvement of Automatically Generated Code Comments Using API Documentations》
- Android 客户端与服务端的数据交互问题
- 欺骗的艺术----(8)
- 100ml干胶能带上地铁吗_定型喷雾可以带上地铁吗
- Tomcat连接数据库的方法
- 转载: java 入门书籍(java7)
- 《大学物理:电磁学》练习题答案(含题目)
- conclution
- 为什么RHCE认证能久经不衰