博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python数据库操作
阅读量:2069 次
发布时间:2019-04-29

本文共 2475 字,大约阅读时间需要 8 分钟。

连接数据库

获得当前工作目录

import oscurrent_folder=os.getcwd()

生成数据库文件路径

path=current_folder+'\Output\Test.mdb'

数据库连接

def __init__(self,path):    self.conn = pyodbc.connect(r"Driver={Driver do Microsoft Access (*.mdb)};DBQ=" + path + ";Uid=;Pwd=;")      self.cursor = self.conn.cursor()

执行sql语句

def run_sql(self,sql):    self.cursor.execute(sql)

退出程序

def close(self):        #提交所有执行语句        self.conn.commit()          self.cursor.close()          self.conn.close()

表格操作

创建表格

def create_table(self,name,key):    sql="Create table "+name+"("+key+")"    self.run_sql(sql)

复制表格

def coppy_table(self,copy_table,new_table):    sql="select * into "+new_table+" from "+copy_table+" where 1<>1"    self.run_sql(sql)

删除表格

def drop_table(self,name):    sql="drop table "+name    self.run_sql(sql)

获取表格列首

def get_table_column(self,table):    colunm_list=[]    backdata=self.cursor.columns(table)     for row in backdata:        colunm_list.append(row.column_name)    return colunm_list

数据操作

查询数据

def select(self,table_name,key,codition):        sql="SELECT "+key+" from "+table_name+" WHERE "+ codition        self.cursor.execute(sql)        backdata=self.cursor.fetchall()        return backdata

插入数据

def insert(self,table_name,column_list,value_list):        colunm_name_str='('        value_str='('        for index in range(0,len(column_list)):            colunm_name_str=colunm_name_str+column_list[index]+','            value_str=value_str+'\''+str(value_list[index])+'\','        colunm_name_str=colunm_name_str[:-1]+')'        value_str=value_str[:-1]+')'        sql='INSERT INTO %s %s VALUES %s'%(table_name,colunm_name_str,value_str)        self.run_sql(sql)

附录

想要学习Python?Python学习交流群:973783996满足你的需求,资料都已经上传群文件,可以自行下载!

附上相关函数的使用方法,仅供参考

1. connection 对象方法 

close():关闭数据库 
commit():提交当前事务 
rollback():取消当前事务 
cursor():获取当前连接的游标 
errorhandler()作为已给游标的句柄 
2. cursor游标对象和方法 
arrysize(): 使用fetchmany()方法时一次取出的记录数,默认为1 
connection():创建此游标的连接 
discription():返回游标的活动状态,包括(7要素)(name,type_code,display_size,internal_size,precision,scale,null_ok)其中name,type_code是必须的 
lastrowid():返回最后更新行的id,如果数据库不支持,返回none. 
rowcount():最后一次execute()返回或者影响的行数 
callproc():调用一个存储过程 
close():关闭游标 
execute():执行sql语句或者数据库命令 
executemany():一次执行多条sql语句 
fetchone():匹配结果的下一行 
fetchall():匹配所有剩余结果 
fetchmany(size-cursor,arraysize):匹配结果的下几行 
iter():创建迭代对象(可选,参考next()) 
messages():游标执行好数据库返回的信息列表(元组集合) 
next():使用迭代对象得到结果的下一行 
nextset():移动到下一个结果集 
rownumber():当前结果集中游标的索引(从0行开始) 
setinput-size(sizes):设置输入的最大值 
setoutput-size(sizes[,col]):设置列输出的缓冲值

转载地址:http://ginmf.baihongyu.com/

你可能感兴趣的文章
几个基本的 Sql Plus 命令 和 例子
查看>>
PLSQL单行函数和组函数详解
查看>>
Oracle PL/SQL语言初级教程之异常处理
查看>>
Oracle PL/SQL语言初级教程之游标
查看>>
Oracle PL/SQL语言初级教程之操作和控制语言
查看>>
Oracle PL/SQL语言初级教程之过程和函数
查看>>
Oracle PL/SQL语言初级教程之表和视图
查看>>
Oracle PL/SQL语言初级教程之完整性约束
查看>>
PL/SQL学习笔记
查看>>
如何分析SQL语句
查看>>
结构化查询语言(SQL)原理
查看>>
SQL教程之嵌套SELECT语句
查看>>
日本語の記号の読み方
查看>>
计算机英语编程中一些单词
查看>>
JavaScript 经典例子
查看>>
判断数据的JS代码
查看>>
js按键事件说明
查看>>
AJAX 设计制作 在公司弄的 非得要做出这个养的 真晕!
查看>>
Linux 查看文件大小
查看>>
Java并发编程:线程池的使用
查看>>