python学习笔记(十 二)、操作数据库
每一种语言都少不了多数据库进行各种操作。
python支持多种数据库。有关python支持的数据库清单,请参阅:https://wiki.python.org/moin/DatabaseInterfaces
1 全局变量
所有与DB API2.0兼容的数据库模块都必须包含三个全局变量,它们描述了模块的特征。这样设计,是的API设计更加灵活,无需进行太多包装就能配合多种不同的底层机制使用。
变量 apilevel :使用的Python DB API版本,如果没有这个变量,就说明模块不予DB API 2.0兼容。
变量 threadsafety :模块的线程安全程度。该值是一个0~3 ( 含 )的整数。0表示线程不能共享模块,3表示模块是绝对线程安全的。1表示线程可共享模块本身,但不能共享连接,2表示可以共享模块和连接,但不能共享游标。
变量 paramstyle :在SQL查询中使用哪种参数风格。
'format'表示标准的字符串格式化,如要在参数中进行拼接的地方插入%s。
'pyformat'表示扩展的格式代码,即旧式字典插入,比如%(foo)s。
'qmark'使用问号。
'numeric'使用 :1 和 :2 这样形式表示字段(数字表示参数的编号)。
'named'表示foobar这样的字段,其中foobar为参数名。
2 异常
DB API 定义了多种异常,让你能够细致的处理错误。如:
StandardError:所有异常的超类
Warning:所有非致命问题时引发
Error:所有错误条件的超类
InterfaceError:与接口相关的错误
DatabaseError:与数据库相关的错误的超类
DataError:与数据库相关的问题,如值不在合法的访问内
OperationalError:数据库操作内部的错误
3 连接和游标
要使用底层的数据库系统,必须使用函数connect进行连接。函数connect的常用参数如下:
参数名 描述 是否可选
dsn 数据库名称,具体含义随数据库而异 否
user 用户名 是
password 密码 是
host 主机名 是
port 端口号 是
database 数据库名称 是
函数connect返回一个连接对象,表示当前到数据库的会话。连接对象支持如下方法:
close():关闭连接对象。
commit():提交未提交的事务----如果支持的话;否则什么都不做
rollback():回滚为提交的事务(可能不可用)
cursor():返回连接的游标对象
方法cursor返回一个游标对象,可以使用该对象来执行SQL查询和查看结果。游标对象的方法如下:
callproc(name,[, params]) 使用指定的参数调用指定的数据库过程(可选)
close() 关闭游标
execute(oper[, params]) 执行一个SQL操作-----可指定参数
executemany(oper, pseq) 执行执行的SQL操作多次,每次都取序列pseq中的一组参数
fetchone() 以序列的方式取回查询结婚中的下一行;如果没有更多的行,返回None
fetchmany([size]) 取回查询结果中的多行,其中参数size的值默认为arraysize
fetchall() 以序列的方式取回余下的所有行
nextset() 跳到下一个结果集,这个方法是可选的
setinputsizes(sizes) 用于为参数预定义内存区域
setoutputsize(size[, col]) 为取回大量数据而设置缓冲区长度
4 类型
对于插入到某些类型的列中的值,DB API 定义了一些构造函数和常量,用于提供特殊的类型和值。
名称 描述
Date(year, month, day) 创建包含日期值的对象
Time(hour, minute, second) 创建包含时间值的对象
Timestamp(year, mon, day, h, min, s)创建包含时间戳的对象
DateFromTicks(ticks) 根据从新纪元开始过去的秒数创建包含日期值的对象
TimeFromTicks(ticks) 根据从新纪元开始过去的秒数创建包含时间值的对象
imestampFromTicks(ticks) 根据从新纪元开始过去的秒数创建包含时间戳的对象
Binary(string) 创建包含二进制字符串值得对象
STRING 描述基于字符串的列(如CHAR)
BINARY 描述二进制列(如LONG、RAW)
NUMBER 描述数字列
DATETIME 描述日期/时间列
ROWID 描述行ID列
5 操作数据库
要是用Python来操作数据库,一般分为下面几个步骤:
1.导入相应的数据库模块。
2.使用connect连接数据库。
3.获取操作游标。
4.使用游标执行增删改查(CRUD)语句。
5.可能还需要提交事务,使用commit方法。
6.关闭连接close。
python学习笔记(十 二)、操作数据库的更多相关文章
- 【Python学习之十】操作数据库
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 python3.6 操作mysql数据库 1.安装pymysql模块p ...
- Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- python 学习笔记(十二) 文件和序列化
python 文件读写和序列化学习.## python文件读写`1 打开并且读取文件` f = open('openfile.txt','r') print(f.read()) f.close() ` ...
- python 学习笔记十二 html基础(进阶篇)
HTML 超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分.网页文件本身 是一种文本文件,通过在文本文件中添加标记符, 可以告诉浏览 ...
- Python学习笔记十二
HTML全称:Hyper Text Markup Language超文本标记语言 不是编程语言 HTML使用标记标签来描述网页 2. HTML标签 开始标签,结束标签. 例如:<html&g ...
- python学习笔记十二:类的定义
demo #!/usr/bin/python class Person: name = 'jim' age = 25 def say(self): print 'My name is ' + self ...
- python学习笔记(十二)-网络编程
本文结束使用 Requests 发送网络请求.requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到.可以说,Requests 完全满足如今网络的需求. ...
- python 学习笔记十二 CSS基础(进阶篇)
1.CSS 简介 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与 ...
- python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL
python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...
随机推荐
- XLua----热更新
一.xLua 环境配置 1).Xlua中 Plugin Xlua复制到 需要热更新的工程中---->Assets子目录 2).开启宏HOTFIX_ENABLE File---->bui ...
- 课堂笔记及知识点----UI框架简介(2018/10/25)
UI框架学习目标: 要知道怎样套用的! 框架里面的基本执行流程 怎样开始执行(配置文件) 怎么套用 最主要的三个脚本: (也是多态的体现之一) 1).BaseUI: 作用-->提供UI能够使用的 ...
- 链表加bfs求补图联通块
https://oj.neu.edu.cn/problem/1387 给一个点数N <= 100000, 边 <= 1000000的无向图,求补图的联通块数,以及每个块包含的点数 由于点数 ...
- 企业IT管理员IE11升级指南【10】—— 如何阻止IE11的安装
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...
- [Swift]LeetCode256.粉刷房子 $ Paint House
There are a row of n houses, each house can be painted with one of the three colors: red, blue or gr ...
- 关于datagrid中控件利用js调用后台方法事件的问题
前台调用后台方法除了用button的click事件,还可以用js调用 一.前台页面如图 需求点击这个按钮触发后台事件,从而能够调用存储过程 <epoint:HyperLinkColumn He ...
- GoJS学习笔记
GoJS 和 GO 语言没有关系,它是一个用来创建交互式图表的 JavaScript 库. 基础概念 GraphObject 是所有图形是抽象基类,基本上 GoJS 中,万物皆 GraphObject ...
- linux清空文件内容的几种方式与区别
虽然linux清空文件内容的方式有很多种,但是他们之间有着细微的差别.通过实践我将他们分为两类: 将文件清空,文件大小为0k $ : > filename $ > filename $ ...
- 成熟的 Git 分支模型
个人博客原文: 成熟的 Git 分支模型 今天介绍一下工作中会用到的 Git 分支模型. 先贴上图以表敬意 闲言 在学校不管是自己写课程设计还是给老师做项目,有 2 到 3 个人一起协作开发时就会使用 ...
- oracle 12C利用dbca建库13步
oracle用户登录然后命令行执行:dbca 如果没有此命令可以用:find / -name "dbca"查到后执行. 1.选择Create a database 2.选择Adva ...