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')

Python练习之操作MySQL数据库

使用navicat工具查看: 

Python练习之操作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 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("插入记录失败")

Python练习之操作MySQL数据库

使用navicat工具查看:

Python练习之操作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()

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()

Python练习之操作MySQL数据库

  • 我们发现查询数据输出类型是元组类型,如果我们想要将字段名和查询出的数据一一对应该怎么做呢?

  • 这里就需要用到两个很常用的函数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()

Python练习之操作MySQL数据库

来源: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
  • asp之家 网络编程 m.aspxhome.com