美文网首页
python 使用 pymysql 数据库操作基本使用

python 使用 pymysql 数据库操作基本使用

作者: 自律改变现状 | 来源:发表于2018-10-16 22:43 被阅读0次

    python 使用 pymysql 操作mysql 初体验.

    import pymysql
    
    
    def create_table(bg_data_name, table_name, sql, drop):
        """ 创建数据库表
    
        :param bg_data_name: str: 连接数据库的名称
        :param table_name:   str: 表名
        :param sql:          str: 创建数据库语句
        :param drop:         bool: 如果表存在,是否是删除旧的表,重新创建
        :return:
        """
        print("创建表的语句 = ", sql)
        # 打开数据库连接
        db = pymysql.connect("127.0.0.1", "root", "chunyan", bg_data_name)
    
        # 使用 cursor() 方法创建一个游标对象 cursor
        cursor = db.cursor()
    
        # 判断数据库中是否存在表
        exist = cursor.execute("show tables like '%s'" % table_name)
        print("如果表存在则删除 exist = ", exist)
    
        if exist:
            print("表已存在")
            if drop:
                print("删除表,重新创建")
                # 使用 execute() 方法执行 SQL,如果表存在则删除
                cursor.execute("DROP TABLE IF EXISTS %s" % table_name)
                print("创建表")
                cursor.execute(sql)
                db.commit()
        else:
            print("创建表")
            cursor.execute(sql)
    
        print("关闭数据库连接")
        cursor.close()
        # 关闭数据库连接
        db.close()
    
    
    def del_table(bg_data_name, table_name):
        """ 删除数据库中的表
    
        :param bg_data_name:    str: 连接数据库的名称
        :param table_name:      str: 表名
        :return:
        """
        # 打开数据库连接
        db = pymysql.connect("127.0.0.1", "root", "chunyan", bg_data_name)
    
        # 使用 cursor() 方法创建一个游标对象 cursor
        cursor = db.cursor()
    
        # 判断数据库中是否存在表
        exist = cursor.execute("show tables like '%s'" % table_name)
        print("判断数据库中是否存在表 exist = ", exist)
    
        if exist:
            print("表存在 删除表")
            # 使用 execute() 方法执行 SQL,如果表存在则删除
            cursor.execute("DROP TABLE IF EXISTS %s" % table_name)
        else:
            print("数据库中没有该表")
    
        print("关闭数据库连接")
        cursor.close()
        # 关闭数据库连接
        db.close()
    
    
    def add_table_row(bg_data_name, table_name, field_name, row):
        add_table_rows(bg_data_name, table_name, field_name, [row])
    
    
    def add_table_rows(bg_data_name, table_name, field_name, rows):
        """ 向数据库添加数据
    
        :param bg_data_name: str: 连接数据库的名称
        :param table_name:   str: 表名
        :param field_name:   str: 字段名 多个逗号隔开
        :param rows:         list(tuple): 添加的数据
        :return:
        """
        # 打开数据库连接
        db = pymysql.connect("127.0.0.1", "root", "chunyan", bg_data_name)
    
        # 使用 cursor() 方法创建一个游标对象 cursor
        cursor = db.cursor()
    
        # 判断数据库中是否存在表
        exist = cursor.execute("show tables like '%s'" % table_name)
        print("数据库中是否存在表 exist = ", exist)
    
        if exist:
            print("表存在")
            string = str(rows)
            string1 = string.replace("[", "")
            value = string1.replace("]", "")
            sql = """INSERT INTO %s(%s) VALUES %s""" % (table_name, field_name, value)
            print("插入表的操作语句 = ", sql)
            cursor.execute(sql)
            db.commit()
        else:
            print("插入失败 不存在表")
    
        print("关闭数据库连接")
        cursor.close()
        # 关闭数据库连接
        db.close()
    
    
    def sql_table(bg_data_name, table_name, sql):
        """ 操作数据库
    
        :param bg_data_name:    str: 连接数据库的名称
        :param table_name:      str: 表名
        :param sql:             str: 数据库操作语句
        :return:
        """
        # 打开数据库连接
        db = pymysql.connect("127.0.0.1", "root", "chunyan", bg_data_name)
    
        # 使用 cursor() 方法创建一个游标对象 cursor
        cursor = db.cursor()
    
        # 判断数据库中是否存在表
        exist = cursor.execute("show tables like '%s'" % table_name)
        print("数据库中是否存在表 exist = ", exist)
        cursor.execute(sql)
        db.commit()
    
        print("关闭数据库连接")
        cursor.close()
        # 关闭数据库连接
        db.close()
    
    
    def find_table(bg_data_name, table_name, sql):
        """ 操作数据库
    
        :param bg_data_name:    str: 连接数据库的名称
        :param table_name:      str: 表名
        :param sql:             str: 数据库操作语句
        :return: tuple
        """
        # 打开数据库连接
        db = pymysql.connect("127.0.0.1", "root", "chunyan", bg_data_name)
    
        # 使用 cursor() 方法创建一个游标对象 cursor
        cursor = db.cursor()
    
        # 判断数据库中是否存在表
        exist = cursor.execute("show tables like '%s'" % table_name)
        print("数据库中是否存在表 exist = ", exist)
        cursor.execute(sql)
        # 获取所有记录列表
        results = cursor.fetchall()
    
        print("关闭数据库连接")
        cursor.close()
        # 关闭数据库连接
        db.close()
        return results
    
    
    def del_table_row(bg_data_name, table_name, sql):
        # 打开数据库连接
        db = pymysql.connect("127.0.0.1", "root", "chunyan", bg_data_name)
    
        # 使用 cursor() 方法创建一个游标对象 cursor
        cursor = db.cursor()
    
        # 判断数据库中是否存在表
        exist = cursor.execute("show tables like '%s'" % table_name)
        print("数据库中是否存在表 exist = ", exist)
    
        if exist:
            print("执行删除语句")
            cursor.execute(sql)
            # 提交修改
            db.commit()
        else:
            print("删除失败 不存在表")
    
        print("关闭数据库连接")
        cursor.close()
        # 关闭数据库连接
        db.close()
    
    
    def temp_call():
        table_name = "temp_table6"
        bg_name = "crawler"
        # 创建一个表
        # sql_str = """CREATE TABLE %s (
        #              NAME  CHAR(20) NOT NULL,
        #              AGE INT,
        #              SEX CHAR(1)
        #              )""" % table_name
        # 创建一个主键自增长
        # sql_str = """CREATE TABLE %s (
        #              id INT AUTO_INCREMENT,
        #              name CHAR(20) NOT NULL,
        #              age INT,
        #              sex CHAR(1),
        #              PRIMARY KEY (id)
        #              )""" % table_name
    
        # 创建表
        # create_table(bg_name, table_name, sql_str, True)
        # 删除表
        # del_table(bg_name, name)
        # 向表中添加数据
        # add_table_rows(bg_name, table_name, "name, age, sex", [("主角", 9, "男"), ("配角", 2, "女")])
        # sql = ""
        # insert_table_row(bg_name, table_name, sql)
        # 删除表中的数据
        # sql = "DELETE FROM %s WHERE AGE = %d" % (table_name, 10)
        # print(sql)
        # del_table_row(bg_name, table_name, sql)
        # 更新数据 向 ID 为2的那一行数据,更新 age 为3.
        # sql = "UPDATE %s SET AGE = 3 WHERE ID = %d" % (table_name, 2)
        # sql_table(bg_name, table_name, sql)
        # 查询表中所有数据
        sql = "SELECT * FROM %s" % table_name
        obj = find_table(bg_name, table_name, sql)
        print(obj)
    
    temp_call()
    

    相关文章

      网友评论

          本文标题:python 使用 pymysql 数据库操作基本使用

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