Python练习之操作MySQL数据库
作者: 孤寒者
这篇文章主要介绍了Python练习之操作MySQL数据库,文章通过如何创建MySQL数据表?如何向MySQL表中插入数据?如何查询MySQL中的数据?的三个问题展开了详细的内容介绍
文章介绍内容:
操作MySQL数据库:
- 创建MySQL数据表;
- 向表中插入记录;
- 其他数据库操作。
面试题:
- 如何创建MySQL数据表?
- 如何向MySQL表中插入数据?
- 如何查询MySQL中的数据?
一、创建MySQL数据表
# coding=utf-8 from pymysql import * def connectDB(): ''' 连接本地MySQL数据库,指定连接的库为test库。 :return: ''' db = connect(host='localhost', user='root', password='123456', port=3306, db='test') return db db = connectDB() print(type(db)) def createTable(db): c = db.cursor() try: c.execute('''create table persons (id int primary key not null, name text not null, age int not null, address char(100), salary real);''') db.commit() db.commit() return True except: db.rollback() return False if createTable(db): print('create table success') else: print('create table failed')
使用navicat工具查看:
三、向MySQL表中插入数据
# coding=utf-8 from pymysql import * def connectDB(): ''' 连接本地MySQL数据库,指定连接的库为test库。 :return: ''' db = connect(host='localhost', user='root', password='123456', port=3306, db='test') return db db = connectDB() print(type(db)) def insertRecords(db): cursor = db.cursor() try: cursor.execute("delete from persons") cursor.execute(''' insert into persons(id,name,age,address,salary) values(1, 'GuHanZhe', 18, 'China', 9999) ''') cursor.execute(''' insert into persons(id,name,age,address,salary) values(2, 'XiaoZhang', 55, 'China', 9) ''') db.commit() return True except Exception as e: print(e) db.rollback() return False if insertRecords(db): print("成功插入记录") else: print("插入记录失败")
使用navicat工具查看:
三、查询MySQL中的数据
# coding=utf-8 from pymysql import * def connectDB(): ''' 连接本地MySQL数据库,指定连接的库为test库。 :return: ''' db = connect(host='localhost', user='root', password='123456', port=3306, db='test') return db db = connectDB() def selectRecords(db): cursor = db.cursor() sql = 'select name,age,salary from persons order by age desc' cursor.execute(sql) results = cursor.fetchall() print(results) print(type(results)) # 打印发现是元组类型 selectRecords(db) db.close()
- 我们发现查询数据输出类型是元组类型,如果我们想要将字段名和查询出的数据一一对应该怎么做呢?
- 这里就需要用到两个很常用的函数dict()和zip(),如下:
# coding=utf-8 import json from pymysql import * def connectDB(): ''' 连接本地MySQL数据库,指定连接的库为test库。 :return: ''' db = connect(host='localhost', user='root', password='123456', port=3306, db='test') return db db = connectDB() def selectRecords(db): cursor = db.cursor() sql = 'select name,age,salary from persons order by age desc' cursor.execute(sql) results = cursor.fetchall() print(results) print(type(results)) # 打印发现是元组类型 # 将字段名和查询结果整合在一起 fields = ['name', 'age', 'salary'] records = [] for row in results: records.append(dict(zip(fields, row))) return json.dumps(records) # 输出类型为JSON字符串 endresults = selectRecords(db) print(endresults) db.close()
总结
注意:我们使用的是pymysql模块中的API来操作MySQL数据库,该模块需要单独安装
到此这篇关于Python练习之操作MySQL数据库的文章就介绍到这了,更多相关Python 操作MySQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!