Python学习超简单第八弹:连接Mysql数据库

Python快乐学习、快乐成长

    • 1、PyMySQL是什么
      • [1.1 PyMySQL安装](#1.1 PyMySQL安装)
    • 2、数据库准备
    • 3、数据库连接
      • [3.1 创建数据库表](#3.1 创建数据库表)
      • [3.2 数据库插入操作](#3.2 数据库插入操作)
      • [3.3 数据库查询操作](#3.3 数据库查询操作)
      • [3.4 数据库更新操作](#3.4 数据库更新操作)
      • [3.5 数据库删除操作](#3.5 数据库删除操作)
  • 结尾

1、PyMySQL是什么

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则使用mysqldb。

1.1 PyMySQL安装

PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。

如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL:

pip install PyMySQL

或者使用 git 命令下载安装包安装:

git clone https://github.com/PyMySQL/PyMySQL

2、数据库准备

1、创建了数据库 test

2、 test数据库中您已经创建表 person_info

3、person_info表字段为 id、name、age、sex等

4、连接数据库 test使用的用户名为 "root" ,密码为 "123456"。

3、数据库连接

示例:

python 复制代码
#!/usr/bin/python3
import pymysql

#打开数据库链接

db=pymysql.connect(host='localhost',user='root',password='123456',db='test')

#创建对象
cursor=db.cursor()

#执行查询
cursor.execute("select * from person_info")

#获取查询结果
data=cursor.fetchall()

print(data) #结果((1, 'zhang', 27, '1', '312*****83123123', 'test', '2W'),)

#关闭数据库连接
db.close()

3.1 创建数据库表

如果数据库连接存在我们可以使用 execute() 方法来为数据库创建表,如下所示创建表Dept:

python 复制代码
#!/usr/bin/python3
import pymysql

#打开数据库链接
db=pymysql.connect(host='localhost',user='root',password='123456',db='test')

#创建对象
cursor=db.cursor()

#如果存在则删除表person_info
cursor.execute("DROP TABLE IF EXISTS person_info")

# 使用预处理语句创建表
sql="""CREATE TABLE `person_info` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `sex` varchar(255) DEFAULT NULL,
  `card` varchar(255) DEFAULT NULL,
  `dept` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`))"""

cursor.execute(sql)

#关闭数据库连接
db.close()

3.2 数据库插入操作

python 复制代码
#!/usr/bin/python3
import pymysql

#打开数据库链接
db=pymysql.connect(host='localhost',user='root',password='123456',db='test')

#创建对象
cursor=db.cursor()

# 使用预处理语句创建表
sql="""INSERT INTO `test`.`person_info` 
           (`id`, `name`, `age`, `sex`, `card`, `dept`) 
       VALUES (1, 'zhang', 28, '1', '234****77777', 'TEST')
"""
try:
   # 执行sql语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
except:
   # 如果发生错误则回滚
   db.rollback()

cursor.execute("select * from person_info")
print(cursor.fetchall())#结果((1, 'zhang', 28, '1', '234****77777', 'TEST'),)
#关闭数据库连接
db.close()

3.3 数据库查询操作

Python 查询 Mysql 使用 fetchone() 方法获取单条数据, 使用 fetchall() 方法获取多条数据。

fetchone(): 该方法获取下一个查询结果集。结果集是一个对象

fetchall(): 接收全部的返回结果行.

rowcount: 这是一个只读属性,并返回执行 execute() 方法后影响的行数。

python 复制代码
#!/usr/bin/python3
import pymysql

#打开数据库链接
db=pymysql.connect(host='localhost',user='root',password='123456',db='test')

#创建对象
cursor=db.cursor()

cursor.execute("select * from person_info")
print(cursor.fetchall()) #所有数据
print(cursor.rowcount) # 2条

cursor.execute("select * from person_info where id=2")
print(cursor.fetchone()) #返回id=2的一条数据
print(cursor.rowcount)#1条
#关闭数据库连接
db.close()

3.4 数据库更新操作

更新操作用于更新数据表中的数据,以下实例演示了将id=1的数据的name更新为zzh:

python 复制代码
#!/usr/bin/python3
import pymysql

#打开数据库链接
db=pymysql.connect(host='localhost',user='root',password='123456',db='test')

#创建对象
cursor=db.cursor()

# SQL 更新语句 
sql = "UPDATE person_info SET name = 'zzh' WHERE id=1 "
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
except:
   # 发生错误时回滚
   db.rollback()
#关闭数据库连接
db.close()

3.5 数据库删除操作

删除操作用于删除数据表中的数据,以下实例演示了删除id等于1数据:

python 复制代码
#!/usr/bin/python3
import pymysql

#打开数据库链接
db=pymysql.connect(host='localhost',user='root',password='123456',db='test')

#创建对象
cursor=db.cursor()

# SQL 更新语句
sql = "DELETE FROM person_info WHERE id=1 "
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
except:
   # 发生错误时回滚
   db.rollback()
#关闭数据库连接
db.close()

结尾

记录自己的快乐学习日志,也祝贺观看到这的小伙伴早日学有所成,财富自由💰💰。

记得点赞👍、收藏👋呀!!!

相关推荐
hsjiasb6 分钟前
FreeRTOS学习(二十九)——低功耗Tickless Idle
学习·学习笔记·freertos
小赵AI手记7 分钟前
技术拆解(十七)具身智能:机器人动作生成为何走向Diffusion Policy?
人工智能·笔记·python·机器人
本地化文档18 分钟前
poethepoet-docs-l10n
python·github·gitcode·sphinx
baopixiaoz26 分钟前
AI量化策略师|Web3 量化交易研究员
大数据·人工智能·python·区块链
IT古董28 分钟前
【WMS学习笔记系列】01-需求分析
大数据·数据库
zlinear数据采集卡32 分钟前
数据采集卡从入门到精通(9):分辨率与精度——16位卡不等于1/65536的精度
开发语言·数据库·fpga开发·开源·c#
蒸蒸yyyyzwd43 分钟前
后端面经学习笔记
笔记·学习
Mico181 小时前
麒麟v10-MySQL InnoDB Cluster 完整部署与全场景验证(从入门到精通)
数据库·mysql
Uncommon.1 小时前
使用Pytorch自动计算梯度
人工智能·pytorch·python