使用python操纵数据库

数据库

  • SQLite:一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎,对应包sqlite3
  • MySQL: 开源数据库系统,对应包pymysql

数据库操纵步骤

  1. 创建connection对象,建立于数据库的连接
  2. 创建游标cursor对象
  3. 利用cursor.execute()方法执行SQL语句
  4. 如果SQL语句为DML语句(涉及到增删改操作),则执行connection.commit()命令,提交事务
  5. 关闭连接

SQL语句

  • DDL 数据定义语言,用于创建表格,包括CREATE TABLE、DROP TABLE等
  • DML 数据操纵语言,用于增删改表格中数据,包括INSERT、UPDATA、DELETE等
  • DQL 数据查询语言,用于查询表格中数据,包括SELECT等
  • DCL 数据控制语言,用于数据库用户权限设置等

Pythons数据库操作的封装

import pymysql
class MysqlHelper():
    # 初始化连接参数
    def __init__(self):
        self.host = 'localhost'
        self.port = ''
        self.db = ''
        self.user = ''
        self.pwd = ''
        self.charset = 'utf-8'

    def connect(self):
        self.conn = pymysql.connect(host=self.host, port=self.port, 
                                    user=self.user, passwd=self.pwd, 
                                    db=self.db, charset=self.charset)
        self.cursor = self.conn.cursor()
        
    def close(self):
        self.cursor.close()
        self.conn.close()
        
    def get_one(self, sql, params=()):
        result = ()
        try:
            self.connect()
            self.cursor.execute(sql, params)
            result = self.cursor.fetchone()
            self.close()
        except Exception as e:
            print(e)
        return result
    
    def get_all(self, sql, params=()):
        result = ()
        try:
            self.connect()
            self.cursor.execute(sql, params)
            result = self.cursor.fetchall()
            self.close()
        except Exception as e:
            print(e)
        return result

    def insert(self, sql, params=()):
        return self.__edit(sql, params)
    
    def update(self, sql, params=()):
        return self.__edit(sql, params)
    
    def delete(self, sql, params=()):
        return self.__edit(sql, params)
    
    def __edit(self, sql, params=()):
        count = 0
        try:
            self.connect()
            count = self.cursor.execute(sql, params)
            self.conn.commit()
            self.close()
        except Exception as e:
            print(e)
        return count

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容