(一)      前言

本文说明如何连接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. centos7配置Apache支持HTTPS

    Apache版本2.4 安装mod_ssl yum install mod_ssl 建立文件夹,存放sslkey mkdir /etc/httpd/ssl/ 建立凭证档 openssl req -x5 ...

  2. CBC翻转攻击(实验吧_简单的登陆题)

    题目链接 http://ctf5.shiyanbar.com/web/jiandan/index.php 有源码在test.php页面 分析代码过程 如果post id,将id转字符串,然后进入sql ...

  3. html标记语言 --格式标记

    html标记语言 --格式标记 一.格式标记 1.<br>单标记,强制换行标记,让后面的文字.图片.表格等显示在下一行 2.<p>换段落标记 3.<center>居 ...

  4. python九九乘法表

    j = 1 while j <= 9: i = 1 while i <= j: print("%d*%d=%d\t" % (i, j, i*j), end=" ...

  5. UWP中的文件相关操作

    最近开始做UWP开发,图省事儿就把自己之前一个Winform项目的一部分代码拷贝到了新写的UWP项目中来.整出了一些幺蛾子,下面做一个记录. 首先提一个重点就是:UWP里关于文件的操作尽量用Stora ...

  6. 设置python爬虫IP代理(urllib/requests模块)

    urllib模块设置代理 如果我们频繁用一个IP去爬取同一个网站的内容,很可能会被网站封杀IP.其中一种比较常见的方式就是设置代理IP from urllib import request proxy ...

  7. js switch判断 三目运算 while 及 属性操作

    三 目运算:如var a = 10: var b= 12: c = a>b ?a:b; 若成立执行a否则执行b var isHide = true; 若用if判断语句如下 if(isHide) ...

  8. [HNOI 2004]树的计数

    Description 一个有n个结点的树,设它的结点分别为v1, v2, …, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, d2, …, dn,编程需要 ...

  9. [Codeforces 863E]Turn Off The TV

    Description Luba needs your help again! Luba has n TV sets. She knows that i-th TV set will be worki ...

  10. ●POJ 2774 Long Long Message

    题链: http://poj.org/problem?id=2774题解: 后缀自动机 使用后缀自动机匹配,思路如下: 即如果当前的x字符匹配失败了,就可以从当前已经匹配的串的后缀去继续匹配. 然后不 ...