您当前的位置: 首页 >  Python

嗨学编程

暂无认证

  • 0浏览

    0关注

    1405博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Python数据库操作

嗨学编程 发布时间:2019-04-15 15:55:34 ,浏览量:0

连接数据库

获得当前工作目录

import os
current_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 11"
    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]):设置列输出的缓冲值

关注
打赏
1663681728
查看更多评论
立即登录/注册

微信扫码登录

0.0493s