Python练习之操作MySQL数据库
作者:??孤寒者???? 时间:2024-01-20 12:29:22
文章介绍内容:
操作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()
来源:https://juejin.cn/post/7101921300704133151
标签:Python,操作,MySQL,数据库
0
投稿
猜你喜欢
aspjpeg 添加水印教程及生成缩略图教程
2011-04-04 11:04:00
Python中使用OpenCV库来进行简单的气象学遥感影像计算
2021-02-02 09:45:49
pytorch 禁止/允许计算局部梯度的操作
2021-01-17 01:55:35
python实现XML解析的方法解析
2021-08-20 01:58:58
PyCharm如何导入python项目的方法
2022-10-23 05:50:35
通过自定义字段重新排序 WordPress 文章方法
2023-12-14 21:52:53
python数据库编程 Mysql实现通讯录
2024-01-24 17:53:11
Python实现通过解析域名获取ip地址的方法分析
2023-08-14 16:10:29
如何查询占CPU高的oracle进程
2024-01-27 13:16:54
python中numpy数组与list相互转换实例方法
2023-11-29 01:48:50
MySQL 数据库语句优化的原则
2010-01-20 10:11:00
Python如何用filter函数筛选数据
2022-07-23 21:20:14
myFocus slide3D v1.1.0 使用方法与下载
2024-04-17 09:55:41
python 基于Apscheduler实现定时任务
2022-03-29 00:53:32
Python eval的常见错误封装及利用原理详解
2021-06-11 22:38:42
Goland 2020或2019软件版本去掉a...或fmt...提示的方法
2024-04-25 15:06:44
django 快速启动数据库客户端程序的方法示例
2023-07-31 09:31:59
利用django model save方法对未更改的字段依然进行了保存
2021-12-21 21:24:18
django框架F&Q 聚合与分组操作示例
2021-05-21 02:13:56
linux下如何备份还原mysql数据库
2010-08-08 08:59:00