一个简单的python查询数据库

 1 import pymysql
 2  3  4 def insertsql():
 5     # 建立数据库连接
 6     connection_sql = pymysql.connect(
 7         host='127.0.0.1',
 8         port=3306,
 9         user='root',
10         password='root',
11         db='5_10',
12         charset='utf8'
13     )
14     # 获取游标
15     cursor = connection_sql.cursor(pymysql.cursors.DictCursor)
16     str1 = '1'
17     str2 = '18'
18     # sql = 'select * from staff where id> %s and age>%s'
19     sql1 = 'select * from staff where id= %s'
20     try:
21         # cursor.execute(sql, [str1, str2])
22         cursor.execute(sql1, str1)
23         a = cursor.fetchall()
24         print(a)
25         connection_sql.commit()
26     except Exception as e:
27         connection_sql.rollback()
28         raise e
29     # 关闭游标
30     cursor.close()
31     # 关闭连接
32     connection_sql.close()
33 34 insertsql()

一个封装的py——MySQL

  1 import pymysql
  2   3   4 # username : adil
  5 # password : helloyyj
  6   7   8 class DataBaseHandle(object):
  9     ''' 定义一个 MySQL 操作类'''
 10  11     def __init__(self, host, username, password, database, port):
 12         '''初始化数据库信息并创建数据库连接'''
 13         # 下面的赋值其实可以省略,connect 时 直接使用形参即可
 14         self.host = host
 15         self.username = username
 16         self.password = password
 17         self.database = database
 18         self.port = port
 19         self.db = pymysql.connect(
 20             host=self.host,
 21             user=self.username,
 22             password=self.password,
 23             db=self.database,
 24             port=self.port,
 25             charset="utf8"
 26  27         )
 28         self.cursor = self.db.cursor(pymysql.cursors.DictCursor)
 29  30  31  32  33  34  35     def insertDB(self, sql):
 36         ''' 插入数据库操作 '''
 37  38  39         try:
 40             # 执行sql
 41             self.cursor.execute(sql)
 42  43             # tt = self.cursor.execute(sql)  # 返回 插入数据 条数 可以根据 返回值 判定处理结果
 44             # print(tt)
 45             self.db.commit()
 46  47             # query = 'insert into 表名(列名1, 列名2, 列名3, 列名4, 列名5, 列名6) values(%s, %s, %s, %s, %s, %s)'
 48         # self.cursor.execute(sql)
 49  50         except:
 51             # 发生错误时回滚
 52             self.db.rollback()
 53         finally:
 54             self.cursor.close()
 55  56     def deleteDB(self, sql):
 57         ''' 操作数据库数据删除 '''
 58  59         try:
 60             # 执行sql
 61             self.cursor.execute(sql)
 62             # tt = self.cursor.execute(sql) # 返回 删除数据 条数 可以根据 返回值 判定处理结果
 63             # print(tt)
 64             self.db.commit()
 65         except:
 66             # 发生错误时回滚
 67             self.db.rollback()
 68         finally:
 69             self.cursor.close()
 70  71     def updateDb(self, sql):
 72         ''' 更新数据库操作 '''
 73  74  75         try:
 76             # 执行sql
 77             self.cursor.execute(sql)
 78             # tt = self.cursor.execute(sql) # 返回 更新数据 条数 可以根据 返回值 判定处理结果
 79             # print(tt)
 80             self.db.commit()
 81         except:
 82             # 发生错误时回滚
 83             self.db.rollback()
 84         finally:
 85             self.cursor.close()
 86  87     def selectDb(self, sql):
 88         ''' 数据库查询 '''
 89  90         try:
 91             self.cursor.execute(sql)  # 返回 查询数据 条数 可以根据 返回值 判定处理结果
 92  93             data = self.cursor.fetchall()  # 返回所有记录列表
 94  95             print(data)
 96  97             # 结果遍历
 98             for row in data:
 99                 name = row["name"]
100                 age = row["age"]
101                 # 遍历打印结果
102                 print('age = %s,  name = %s' % (age, name))
103         except:
104             print('Error: unable to fecth data')
105         finally:
106             self.cursor.close()
107 108     def closeDb(self):
109         ''' 数据库连接关闭 '''
110         self.db.close()
111 112 113 if __name__ == '__main__':
114     DbHandle = DataBaseHandle('127.0.0.1', 'root', 'root', 'class202107', 3306,)
115 116     # DbHandle.insertDB("insert into students (name,age,gender) values ('随便起名',19,'男')")
117     # DbHandle.deleteDB("delete from students where name='随便起名'")
118     DbHandle.selectDb("select * from students where id > 10")
119 120 121 122     DbHandle.closeDb()

 

再次封装一个做查询,一个做非查询

 1 # 一个做查询,一个做非查询
 2 import pymysql
 3  4  5 # username : adil
 6 # password : helloyyj
 7  8  9 class DataBaseHandle(object):
10     ''' 定义一个 MySQL 操作类'''
11 12     def __init__(self, host, username, password, database, port):
13         '''初始化数据库信息并创建数据库连接'''
14         # 下面的赋值其实可以省略,connect 时 直接使用形参即可
15         self.host = host
16         self.username = username
17         self.password = password
18         self.database = database
19         self.port = port
20         self.db = pymysql.connect(
21             host=self.host,
22             user=self.username,
23             password=self.password,
24             db=self.database,
25             port=self.port,
26             charset="utf8"
27 28         )
29         self.cursor = self.db.cursor(pymysql.cursors.DictCursor)
30 31     def select_info(self, sql):
32         try:
33             self.cursor.execute(sql)
34             data = self.cursor.fetchall()
35             return data
36         except:
37             print('Error: unable to fecth data')
38         finally:
39             self.cursor.close()
40 41     def no_select_info(self, sql):
42         try:
43             result = self.cursor.execute(sql)
44             print(result)
45             self.db.commit()
46             return result
47         except Exception as e:
48             self.db.rollback()
49             raise e
50         finally:
51             self.cursor.close()
52 53 54 if __name__ == '__main__':
55     DbHandle = DataBaseHandle('127.0.0.1', 'root', 'root', '5_10', 3306, )
56 57     DbHandle.no_select_info("insert into stu (name,age) values ('随便起名1',19)")
58     DbHandle.select_info("select * from students where id < 10")

 

 

 

 posted on 2021-06-04 19:44  2165843  阅读(142)  评论(0)    收藏  举报