(一)      前言

本文说明如何连接Oracle、MySQL、sqlserver,以及执行sql、获取查询结果等。

(二)      DB-API

     DB-API阐明一系列所需对象和数据库访问机制的标准。

Python操作数据库的模块如果遵循DB-API的标准(应该都会遵循这个标准),函数、方法的名称及功能应该是差不多的(下面几张表格列出了部分内容),就是传的参数可能有点区别。

                                                                  connect函数

connect函数通过connection对象访问数据库。该函数创建并返回一个connection对象。

参数

说明

host

数据库实例的访问地址(例如:IP\实例名)

user

用户名

password

密码

database

数据库名

                                                                 connection对象     

方法

说明

close()

关闭数据库连接

commit()

提交事务

rollback()

取消事务

cursor()

使用该连接创建并返回一个游标对象(或类游标对象)

                                                                 cursor对象

                                                       (感觉比较重要的就下面这3个)

方法

说明

execute()

执行SQL

fetchall()

获取查询结果(执行select 语句后)

callproc()

调用存储过程

                                                                      异常

异常

说明

DataError

处理数据时出现问题

OperationalError

数据库操作执行期间出现问题

IntegrityError

数据库关系完整性错误

ProgrammingError

SQL执行失败

 

(三)      模块安装

Oracle:pip install cx_Oracle  
Mysql: pip install pymysql
sql server:https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载pymssql,然后 pip install xxx.whl。(pip install pymssql 安装不了再用这种方式,上面2个如果安装不了也可以用这种方式去安装)

(四)      Oracle示例

从下面3个示例可以看出,代码其实基本相同,只是导入的模块不一样(其他数据库应该也是差不多的)。

import cx_Oracle
# 连接数据库,参数:用户名/密码@服务器ip:端口号/实例名
conn = cx_Oracle.connect('py/password@192.168.4.196:1521/orcl')
# 创建游标对象
cur = conn.cursor()
#执行SQL
cur.execute("insert into test_py t values('1005','ZS','张三','123456')")
cur.execute("update test_py t set t.user_name='李四' where t.id='123' ")
#提交事务
conn.commit()
#执行SQL
cur.execute("select * from test_py")
#获得查询结果
row = cur.fetchall()
print(row)
#关闭数据库连接
conn.close()

(五)      MySql示例

 import pymysql

 # 连接数据库,host:服务器ip user:用户名 password:密码  database:数据库名
conn = pymysql.connect(host='192.168.4.196', user='root', password='password', database='test')
# 创建游标对象
cur = conn.cursor()
#执行SQL
cur.execute("insert into test_py(id,user_account) values('100','admin')")
cur.execute("update test_py set user_account = 'test6' where id='123'")
#提交事务
conn.commit()
#执行SQL
cur.execute("select * from test_py")
#获得查询结果
row = cur.fetchall()
print(row)
#关闭数据库连接
conn.close()

(六)      Sql server 示例

import pymssql

# 连接数据库,host:服务器ip\\实例名 user:用户名 password:密码  database:数据库名
conn = pymssql.connect(host='192.168.4.196\\amsys', user='sa', password='', database='test')
# 创建游标对象
cur = conn.cursor()
#执行SQL
cur.execute("insert into test_py(id,user_account) values('100861','admin')")
cur.execute("update test_py set user_account = 'test6' where id='123'")
#提交事务
conn.commit()
#执行SQL
cur.execute("select * from test_py")
#获得查询结果
row = cur.fetchall()
print(row)
#关闭数据库连接
conn.close()

Python:操作数据库的更多相关文章

  1. python操作数据库

    一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...

  2. python操作数据库之批量导入

    python操作数据库之批量导入 Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进. Python具有丰富和强大的库.它常被昵称为胶水语言,能够把用其他语言制作的 ...

  3. 零基础学Python--------第11章 使用Python操作数据库

    第11章 使用Python操作数据库 11.1 数据库编程接口 在项目开发中,数据库应用必不可少.虽然数据库的种类有很多,如SQLite.MySQL.Oracle等,但是它们的功能基本都是一样的,为了 ...

  4. python操作数据库PostgreSQL

    1.简述 python可以操作多种数据库,诸如SQLite.MySql.PostgreSQL等,这里不对所有的数据库操作方法进行赘述,只针对目前项目中用到的PostgreSQL做一下简单介绍,主要包括 ...

  5. Python操作数据库之 MySQL

    Python操作数据库之MySQL 一.安装Python-MySQLdb模块 Python-MySQLdb是一个操作数据库的模块,Python 通过它对 mysql 数据实现各种操作. 如果要源码安装 ...

  6. Python接口测试实战3(上)- Python操作数据库

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  7. Python学习笔记 - day11 - Python操作数据库

    MySQL的事务 MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关,MySQL的两种引擎如下: 1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID ...

  8. 孤荷凌寒自学python第四十四天Python操作 数据库之准备工作

     孤荷凌寒自学python第四十四天Python操作数据库之准备工作 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天非常激动地开始接触Python的数据库操作的学习了,数据库是系统化设计 ...

  9. Python操作数据库及hashlib模块

    一.hashlib模块 hashlib模块,主要用于加密相关的操作,在python3的版本里,代替了md5和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA51 ...

  10. Navicat使用与python操作数据库

    一.Navicat使用 1.下载地址: <https://pan.baidu.com/s/1bpo5mqj> 2.测试+链接数据库,新建库 3.新建表,新增字段+类型+约束 4.设计表:外 ...

随机推荐

  1. 新概念英语(1-21)Whick book

    Which book does the man want? A:Give me a book, please, Jane? B:Whick book? this one ? A:No, not tha ...

  2. ssh整合之四单独搭建struts的运行环境

    1.导入struts的基本jar包 2.在web.xml中配置我们struts的核心控制器StrutsPrepareAndExecuteFilter <?xml version="1. ...

  3. oracle11g导出表时会发现少表,空表导不出解决方案

    oracle11g导出表时会发现少表,空表导不出解决方案.   一:背景引入 oracle11g用exp命令导出数据库表时,有时会发现只导出了一部分表时而且不会报错,原因是有空表没有进行导出,之前一直 ...

  4. linux系统下的SVN安装

    1.直接安装 # sudo apt-get install subversion 2. 创建版本库 # sudo mkdir /home/svn # sudo svnadmin create /hom ...

  5. Django多级评论

    一.原理 #多级评论原理简单原理,弄完之后发现基础白学了 msg_list = [ {'id':1,'content':'xxx','parent_id':None}, {'id':2,'conten ...

  6. Windows10+Docker搭建分布式Redis集群(SSH服务镜像)(二)

    前言:上篇文章我们搭建好了Docker,下面我们开始使用Docker创建镜像,Docker命令就不介绍了.这里宿主是Windows10,cmd的管理和后期文件的复制不是很方便,将创建支持SSH的Cen ...

  7. SpringMVC(八):使用Servlet原生API作为Spring MVC hanlder方法的参数

    在SpringMVC开发中,是有场景需要在Handler方法中直接使用ServletAPI. 在Spring MVC Handler的方法中都支持哪些Servlet API作为参数呢? --Respo ...

  8. [翻译] Tensorflow模型的保存与恢复

    翻译自:http://cv-tricks.com/tensorflow-tutorial/save-restore-tensorflow-models-quick-complete-tutorial/ ...

  9. VC2013 代码图,依赖项关系图,等出错解决办法.

    环境WIN10+VS2013+SQL2015 当VS2013代码图,依赖项关系图等出现 数据库连接错误时 去http://www.microsoft.com/zh-cn/download/detail ...

  10. golang如何使用channel控制goroutine退出

    最经典的处理方式: 在启动goroutine的时候,传递一个额外的chan型参数,用来接收退出信号,代码如下 func worker(name string, stopchan chan struct ...