使用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

你可能感兴趣的:(使用python操纵数据库)