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)

运行结果:

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

相关推荐
程序员夏洛35 分钟前
MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?
数据库·mysql
Wang's Blog1 小时前
PostgreSQL笔记34:索引优化策略全景解析——从B-tree到HOT的核心原理与实践
数据库·笔记·postgresql
l1258651 小时前
# RAG向量数据库优化实战:HNSW索引调参与生产级性能设计
数据库·python·mysql·langchain
梦Arrebol2 小时前
Mysql内容及相关实验
数据库·mysql
OceanWaves19932 小时前
mysql 8.0.32 磁盘爆满,清理从库日志
数据库·mysql
凤山老林2 小时前
数据库读写分离与动态路由实战:Spring Boot + ShardingSphere-JDBC 生产配置
数据库·spring boot·后端·分库分表·sharding-jdbc
l1258653 小时前
# RAG噪声知识库治理:一致性与可信度的四层防线设计
数据库·人工智能·python·自然语言处理·langchain
聚美智数4 小时前
图片水印-图片剪裁-图片缩放API接口介绍
java·服务器·数据库
JavaPub-rodert4 小时前
Go 后台如何同时兼容 MySQL、PostgreSQL、SQLite 和 SQL Server?从 ShiyuAdmin 看 GORM 多数据库适配
数据库·mysql·postgresql·golang·javapub·王仕宇
瀚高PG实验室5 小时前
SQL优化案例:存储过程、复杂SQL拆成简单SQL提升整体性能
数据库·sql·postgresql·瀚高数据库