Python练习之操作MySQL数据库
作者:??孤寒者???? 发布时间:2024-01-20 12:29:22
标签:Python,操作,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()
来源:https://juejin.cn/post/7101921300704133151
0
投稿
猜你喜欢
- 01 什么是pocPoC(全称: Proof of Concept), 中文译作概念验证。在安全界,你可以理解成为漏洞验证程序。和一些应用程
- 如下拉框的text是<input type=button value=ggg>,那么生成的combobox里
- 为了显示一个渐变而专门制作一个图片的做法是不灵活的,而且很快会成为一种不好的做法。但是遗憾的是,截至写这篇文章,可能还必须这样做,但是希望不
- os.Rename()这个函数的原型是func Rename(oldname, newname string) error,输入的是旧文件名
- python中字典的key不能是可变类型。字典可存储任意类型对象,其中值可以取任何数据类型,但键必须是不可变的,如字符串、数字或元组。语法格
- 问题描述:使用指令 python -m pip install --upgrade pip 升级pip时,Pycharm报错:Attribu
- 有的时候取出全部数据库记录也许正好满足你的要求,不过,在大多数情况下我们通常只需得到部分记录。这样一来该如何设计查询呢?当然会更费点脑筋了,
- WordPress 3.0 引入导航菜单功能, 让页面的导航和链接的管理变得简单易用. WP 向用户提供了菜单管理页面和多种调用方法, 我们
- 语法 SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF } 参
- 本文实例讲述了thinkPHP框架实现类似java过滤器的简单方法。分享给大家供大家参考,具体如下:写java web代码的时候,可以定义过
- 进程和线程的区别和联系终于开始加深难度,来到进程和线程的知识点~单就这两个概念,就难倒过不少初学者—&mdash
- phpMyAdmin是一个用PHP编写的,可以通过互联网控制和操作MySQL。通过phpMyAdmin可以完全对数据库进行操作,例如建立、复
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&
- 对于PHP的逐渐流行,我们有目共睹:无论是BLOG程序中的WordPress,还是CMS程序中的DEDECMS,还是BBS程序中的Discu
- 前言当我们使用Python完成自己的原创的工具时,比如:端口扫描、弱口令爆破等。你是否想过添加自己的Logo,以及简要的帮助信息?如下:Sq
- 前言matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包。在使用Python matplotlib库绘
- 目录1. 字符串拆分函数.split()2. 字符串拼接函数.join()扩展:理解" ".join(s.split(&
- 前言最近看到一个有意思的机器学习项目——GFPGAN,他可以将模糊的人脸照片恢复清晰。开源项目的Github地址:https://githu
- 经常看见MOP上有人贴那种动态的图片,就是把一个字符串作为参数传给一个 * 页,就会生成一个带有这个字符串的图片,这个叫做文字水印。像什么原
- Cumsum :计算轴向元素累加和,返回由中间结果组成的数组重点就是返回值是“由中间结果组成的数组”以下代码在python3.6版本运行成功