• 数据库查询


    I.导入pymsql:import pymysql [pip install pymsql]

    II.数据库查询步骤

    (1)连接数据库

    import pymysql
    
    # (1)连接数据库
    
    # 方法1
    db_config = {'host': 'xxxx',  # 连接的MySQL主机,如果本机是“localhost"
        'port' : 3306 , # 端口,默认3306,int型
        'database':'xxx', # 数据库名称
        'user': 'xxx', # 连接的用户名
        'password' : 'xxx', # 密码
        'charset' : 'utf8' # 编码方式,推荐使用utf8
    }
    
    con = pymysql.connect(**db_config)
    
    # 方法2
    con= pymysql.Connect(
              host = 'xxx',  #连接ip
              port = 3306,  #端口号
              user = 'xxxx', #数据库用户名
              passwd = 'xxxx', #数据库密码
              db = 'xxx', #数据库名
              charset = 'utf8' #设置了数据库的字符集
    )

     (2) 创建游标对象:用于执行SQL语句

    cur = con.cursor()

    (3)执行SQL语句

    • 准备执行语句
    query_sql = 'SELECT * FROM member WHERE reg_name = "小"'
    • 查找结果
    # 显示数据行数
    res = cur.execute(query_sql)
    print('显示数据行数:',res)
    # 显示查找的第一条数据
    res1 = cur.fetchone()
    print('显示查找的第一条数据:',res1)
    # 显示查找的所有内容
    res2 =cur.fetchall()  
    # fetchall:返回的是一个查询集(所有数据放在元组里)
    print('[元组形式]显示查找的所有内容:',res2)
    con.commit() # 增删改:执行完增删改的SQL语句之后,需要进行commit提交

    (4)关闭

    • 关闭游标
    • 关闭连接
    # 关闭游标
    cur.close()
    
    # 关闭连接
    con.close()

    数据库查询完整代码:

    import pymysql
    from com.myconf import conf # 配置文件对象
    class MySql:
        def __init__(self):
            # (1)连接mysql数据库
            self.con = pymysql.Connect(
                host= conf.get('mysql', 'host'),  # 连接ip
                port=conf.getint('mysql', 'port'),  # 端口号
                user=conf.get('mysql', 'user'),  # 数据库用户名
                passwd=conf.get('mysql', 'passwd'),  # 数据库密码
                # db=conf.get('mysql', 'db'),  # 数据库名
                charset='utf8'  # 设置了数据库的字符集
            )
    
            # (2)创建游标对象:用于执行SQL语句
            self.cursor = self.con.cursor()
    
        # (3)执行SQL语句
        def readone(self, sql):  # 显示查找的第一条数据
            self.con.commit() # 提交执行(执行完增删改数据后,需要提交)
            self.cursor.execute(sql)
            return self.cursor.fetchone()
    
        def readall(self, sql):  # 显示查找的所有内容(元组形式)
            self.con.commit()
            self.cursor.execute(sql)
            return self.cursor.fetchall()
    
        def count(self, sql):
            self.con.commit()
            return self.cursor.execute(sql)
    
        def close(self):
            self.cursor.close()  # 关闭游标对象
            self.con.close()  # 断开连接

    注意:不能在数据库中直接创建对象,在不同测试类中直接调用【因为测试完成后,需要关闭测试库,影响连接状态】
    需对类数据进行操作的,在调用类中创建对象,不可在被调用的类中创建对象

  • 相关阅读:
    2020-10-24;我对机器学习实现的理解
    2020软件工程作业03
    友链
    导航页
    POJ3694 Network (板子题)
    洛谷 P1084 [NOIP2012 提高组] 疫情控制
    AcWing 355. 异象石
    洛谷P4556 雨天的尾巴
    POJ1639 Picnic Planning (K度限制最小生成树)
    POJ2728 Desert King
  • 原文地址:https://www.cnblogs.com/kite123/p/13784970.html
Copyright © 2020-2023  润新知