Python笔记:操作数据库
Posted 习惯形成性格,性格决定命运
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python笔记:操作数据库相关的知识,希望对你有一定的参考价值。
(一) 前言
本文说明如何连接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示例
1 import pymysql 2 3 # 连接数据库,host:服务器ip user:用户名 password:密码 database:数据库名 4 conn = pymysql.connect(host=\'192.168.4.196\', user=\'root\', password=\'password\', database=\'test\') 5 # 创建游标对象 6 cur = conn.cursor() 7 #执行SQL 8 cur.execute("insert into test_py(id,user_account) values(\'100\',\'admin\')") 9 cur.execute("update test_py set user_account = \'test6\' where id=\'123\'") 10 #提交事务 11 conn.commit() 12 #执行SQL 13 cur.execute("select * from test_py") 14 #获得查询结果 15 row = cur.fetchall() 16 print(row) 17 #关闭数据库连接 18 conn.close()
(六) Sql server 示例
import pymssql # 连接数据库,host:服务器ip\\\\实例名 user:用户名 password:密码 database:数据库名 conn = pymssql.connect(host=\'192.168.4.196\\\\amsys\', user=\'sa\', password=\'123\', 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笔记:操作数据库的主要内容,如果未能解决你的问题,请参考以下文章