Python4 操作MySQL数据库

通过python的pymysql库连接到本地的MySQL数据库,并执行查询操作来获取数据,然后打印出每一行的数据,这里以一个简单的学生表为例进行介绍。

1. MySQL的安装与数据准备

首先需要安装MySQL,在安装完成之后使用Navicat与本地数据库进行增删查改操作。首先使用SQL(结构化查询语言)与本地数据库进行交互。

安装好后可以输入密码,再输入命令"show databases;",即可查看本地MySQL的suo'you'的所有数据库。

在Navicat中首先新建一个名为"mydatabase"的数据库,然后新建查询,输入以下代码即可在mydatabase数据库中创建一个表。

SQL代码:

sql 复制代码
use mydatabase;

create table student (
	id INT,
	name VARCHAR(100),
	age INT
);

DESC student;

INSERT INTO student (id, name, age) VALUES (5, 'Cheney',18);

select * from student;

建立了一个名为'student'的表:

2.使用pymysql对本地数据库进行交互

代码示例:

python 复制代码
import pymysql  # 该Python库允许与MySQL数据库进行交互
# try:
	# except  Exception :print("查询失败")
# 获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库
'''
使用pymysql.connect方法创建与MySQL数据库的连接,具体参数包括:
host='localhost':数据库服务器地址
user='root':数据库用户名
passwd='xxxx':用户密码,是自己设定的
db='mydatabase':要连接的数据库名
port=3306:数据库服务器的端口号
charset='utf8':使用的字符集类型,这里指定为UTF-8
'''
conn=pymysql.connect(host='localhost',user='root',passwd='111111',db='mydatabase',port=3306,charset='utf8')

cur=conn.cursor()  # 获取一个游标,游标对象用于在数据库上执行操作,可以通过游标来执行SQL语句
cur.execute('select * from student')  # 使用游标的execute方法执行一个SQL查询,这里查询student表的所有数据。
data=cur.fetchall()  # fetchall方法获取查询结果的所有行,返回一个元组列表,每个元组代表一行数据
for d in data :  # 遍历查询结果,每次循环处理一行数据。d[0]、d[1] 和 d[2] 分别代表每行数据的第一个(ID)、第二个(用户名)和第三个(年龄)元素。由于ID和年龄可能是整数类型,所以使用str函数将它们转换为字符串,以便可以与其他字符串一起打印
    print("ID: "+str(d[0])+'用户名:'+d[1]+'年龄'+str(d[2]))
cur.close()  # 关闭游标
conn.close()  # 释放数据库资源

运行结果:

下面的代码展示如何使用循环和列表操作来批量生成数据结构,并存储在列表中。这种方法在处理大量数据生成或批量初始化数据时非常有用。

代码示例:

python 复制代码
values=[]  # 初始化空列表 
for i in range(10000):  # 生成一个从0到9999的整数序列
    value=(str(i),'datas')  # 每次循环中当前循环的索引i将被转换为字符串(str(i)),然后与字符串 'datas' 一起创建一个元组。这个元组包含两个元素:一个是字符串形式的索引,另一个是固定的字符串 
    values.append(value)  # 将创建的元组添加到列表
print(values)

运行结果:

以上内容总结自网络,整理不易,如有帮助欢迎转发,我们下次再见!

相关推荐
时间售卖铺6 分钟前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw11 分钟前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
数智园区合作社1 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
lbb 小魔仙2 小时前
Windows搭建PaddleOCR+飞书Webhook自动打卡通知机器人:识别、推送与远程触发完整教程
数据库·人工智能·prometheus·时序数据库
captain3763 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你02143 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
龙亘川3 小时前
综合素质评价业务建模:从过程性评价到成长档案全链路闭环
数据库·智慧城市·数据可视化
数据库小组3 小时前
NineData 实战教程:MySQL 5.5 数据迁移同步到 MySQL 8.0(跨版本升级)
数据库·mysql·mysql优化·数据库开发·数据库迁移·版本升级·数据复制
zhangjw344 小时前
1-5 PostgreSQL 数据类型全集:基础类型、字符串、数值、时间类型
数据库·postgresql
王中阳Go4 小时前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型