美文网首页
Python数据库连接

Python数据库连接

作者: 小黑的守望 | 来源:发表于2018-03-27 07:25 被阅读0次

    前言

    上一次的文章实现了数据库的连接,当前文章实现数据库的操作

    1.pyodbc官方文档
    2.参考文章

    连接数据库

    获得当前工作目录

    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 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)
    

    附录

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

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

    相关文章

      网友评论

          本文标题:Python数据库连接

          本文链接:https://www.haomeiwen.com/subject/qifjcftx.html