python 连接mysql

本文详细介绍使用Python进行数据库操作的方法,包括连接数据库、创建表格、插入数据、查询、更新、删除及表格管理等核心操作,适合初学者快速掌握数据库基本技能。

本文为参考其他大佬的博客及视频后所做的笔记,如有侵权,请告知删除。原文链接:

参考博客:https://blog.youkuaiyun.com/hzw6991/article/details/87893761

参考视频:https://www.bilibili.com/video/av44630247?from=search

目录

数据库连接基础:

在数据库中创建表格

在表格中插入数据

查询表格数据

更新

删除数据

删除表格(DROP Table)


数据库连接基础:

(确保连接成功)

import pymysql

DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = '******' #你自己的密码
DBNAME = 'mydb'  #所要连接的数据库

try:
    db = pymysql.connect(DBHOST,DBUSER,DBPASS,DBNAME)
    print('connect success!')
except pymysql.Error as e:
    print("Error connect:"+str(e))

在数据库中创建表格

import pymysql

DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = '111111111'
DBNAME = 'mydb'

try:
    db = pymysql.connect(DBHOST,DBUSER,DBPASS,DBNAME)
    print('connect success!')
    cur = db.cursor() #创建游标
    cur.execute("drop table if exists Student")
    sql = 'create table student(Name char(20) not null, email char(20) , age int)'
    cur.execute(sql)
    print('表格创建成功')
except pymysql.Error as e:
    print("Error connect:"+str(e))

在表格中插入数据

import pymysql

DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = '111111111'
DBNAME = 'mydb'

try:
    db = pymysql.connect(DBHOST,DBUSER,DBPASS,DBNAME)
    print('connect success!')
    cur = db.cursor() #创建游标
    sql = 'insert into Student(Name,email, age) value (%s,%s,%s)'
    value = ('Mike','123@123.com',20)
    cur.execute(sql,value)
    db.commit()
    print('数据插入成功')
except pymysql.Error as e:
    print("Error Insert:"+str(e))
    db.rollback()

db.close()

查询表格数据

import pymysql

DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = '111111111'
DBNAME = 'mydb'

try:
    db = pymysql.connect(DBHOST,DBUSER,DBPASS,DBNAME)
    print('connect success!')
    cur = db.cursor() #创建游标
    sql = 'select * from Student'
    cur.execute(sql)
    results = cur.fetchall() #获取查询列表
    for row in results:
        name = row[0]
        email = row[1]
        age = row[2]
        print('Name:%s, Email:%s, Age:%s'%(name,email,age))
except pymysql.Error as e:
    print("Error query:"+str(e))
    

db.close()

更新

import pymysql

DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = '11111111'
DBNAME = 'mydb'

try:
    db = pymysql.connect(DBHOST,DBUSER,DBPASS,DBNAME)
    print('connect success!')
    cur = db.cursor() #创建游标
    sql = 'update Student set Name = %s where Name = %s'
    value = ('John','Mike')
    cur.execute(sql,value)
    db.commit()
    print('数据更新成功!')
except pymysql.Error as e:
    print("Error update:"+str(e))
    db.rollback()

db.close()
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

删除数据

import pymysql

DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = '1111111'
DBNAME = 'mydb'

try:
    db = pymysql.connect(DBHOST,DBUSER,DBPASS,DBNAME)
    print('connect success!')
    cur = db.cursor() #创建游标
    sql = 'delete from Student where Name = %s'
    value = ('John')
    cur.execute(sql,value)
    db.commit()
    print('数据删除成功!')
except pymysql.Error as e:
    print("Error delete:"+str(e))
    db.rollback()

db.close()
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

删除表格(DROP Table)

import pymysql

DBHOST = 'localhost'
DBUSER = 'root'
DBPASS = '11111111'
DBNAME = 'mydb'

try:
    db = pymysql.connect(DBHOST,DBUSER,DBPASS,DBNAME)
    print('connect success!')
    cur = db.cursor() #创建游标
    sql = 'drop table if EXISTS Student'
    cur.execute(sql)
    print('表格删除成功!')
except pymysql.Error as e:
    print("Error drop:"+str(e))

db.close()

 

内容概要:本文介绍了一个基于多传感器融合的定位系统设计方案,采用GPS、里程计和电子罗盘作为定位传感器,利用扩展卡尔曼滤波(EKF)算法对多源传感器数据进行融合处理,最终输出目标的滤波后位置信息,并提供了完整的Matlab代码实现。该方法有效提升了定位精度与稳定性,尤其适用于存在单一传感器误差或信号丢失的复杂环境,如自动驾驶、移动采用GPS、里程计和电子罗盘作为定位传感器,EKF作为多传感器的融合算法,最终输出目标的滤波位置(Matlab代码实现)机器人导航等领域。文中详细阐述了各传感器的数据建模方式、状态转移与观测方程构建,以及EKF算法的具体实现步骤,具有较强的工程实践价值。; 适合人群:具备一定Matlab编程基础,熟悉传感器原理和滤波算法的高校研究生、科研人员及从事自动驾驶、机器人导航等相关领域的工程技术人员。; 使用场景及目标:①学习和掌握多传感器融合的基本理论与实现方法;②应用于移动机器人、无人车、无人机等系统的高精度定位与导航开发;③作为EKF算法在实际工程中应用的教学案例或项目参考; 阅读建议:建议读者结合Matlab代码逐行理解算法实现过程,重点关注状态预测与观测更新模块的设计逻辑,可尝试引入真实传感器数据或仿真噪声环境以验证算法鲁棒性,并进一步拓展至UKF、PF等更高级滤波算法的研究与对比。
内容概要:文章围绕智能汽车新一代传感器的发展趋势,重点阐述了BEV(鸟瞰图视角)端到端感知融合架构如何成为智能驾驶感知系统的新范式。传统后融合与前融合方案因信息丢失或算力需求过高难以满足高阶智驾需求,而基于Transformer的BEV融合方案通过统一坐标系下的多源传感器特征融合,在保证感知精度的同时兼顾算力可行性,显著提升复杂场景下的鲁棒性与系统可靠性。此外,文章指出BEV模型落地面临大算力依赖与高数据成本的挑战,提出“数据采集-模型训练-算法迭代-数据反哺”的高效数据闭环体系,通过自动化标注与长尾数据反馈实现算法持续进化,降低对人工标注的依赖,提升数据利用效率。典型企业案例进一步验证了该路径的技术可行性与经济价值。; 适合人群:从事汽车电子、智能驾驶感知算法研发的工程师,以及关注自动驾驶技术趋势的产品经理和技术管理者;具备一定自动驾驶基础知识,希望深入了解BEV架构与数据闭环机制的专业人士。; 使用场景及目标:①理解BEV+Transformer为何成为当前感知融合的主流技术路线;②掌握数据闭环在BEV模型迭代中的关键作用及其工程实现逻辑;③为智能驾驶系统架构设计、传感器选型与算法优化提供决策参考; 阅读建议:本文侧重技术趋势分析与系统级思考,建议结合实际项目背景阅读,重点关注BEV融合逻辑与数据闭环构建方法,并可延伸研究相关企业在舱泊一体等场景的应用实践。
Python连接 MySQL 数据库,通常可以使用多种库,例如 `mysql-connector-python`、`PyMySQL` 或 `MySQLdb`。以下是几种常见方式的示例代码: ### 使用 mysql-connector-python 连接 MySQL 这是官方推荐的连接器之一,支持现代 Python 版本,并且功能完整。 ```python import mysql.connector try: # 建立数据库连接 connection = mysql.connector.connect( host='localhost', user='yourusername', password='yourpassword', database='mydatabase' ) if connection.is_connected(): print('成功连接到数据库') cursor = connection.cursor() # 可以在这里执行 SQL 查询 cursor.execute("SELECT VERSION()") db_version = cursor.fetchone() print(f"Database version: {db_version}") except Exception as e: print(f"连接数据库时出错: {e}") finally: if 'connection' in locals() and connection.is_connected(): cursor.close() connection.close() print('数据库连接已关闭') ``` ### 使用 PyMySQL 连接 MySQL `PyMySQL` 是一个纯 Python 实现的 MySQL 客户端库,广泛用于 Django 和其他框架中。 ```python import pymysql try: # 建立数据库连接 connection = pymysql.connect( host='localhost', user='root', password='password', database='mydatabase' ) print('成功连接到数据库') with connection.cursor() as cursor: # 执行 SQL 查询 cursor.execute("SELECT VERSION()") result = cursor.fetchone() print(f"Database version: {result}") except pymysql.err.OperationalError as e: print(f"连接数据库时出错: {e}") finally: if 'connection' in locals(): connection.close() print('数据库连接已关闭') ``` ### 使用 MySQLdb 连接 MySQL `MySQLdb` 是一个较老的库,仅支持 Python 2.x 和部分 Python 3.x 环境(通常为 Linux 系统)。 ```bash # 安装命令(适用于 Debian/Ubuntu) sudo apt-get install python-mysqldb ``` ```python import MySQLdb try: # 建立数据库连接 connection = MySQLdb.connect( host='localhost', user='root', passwd='password', db='mydatabase' ) print('成功连接到数据库') cursor = connection.cursor() cursor.execute("SELECT VERSION()") result = cursor.fetchone() print(f"Database version: {result}") except Exception as e: print(f"连接数据库时出错: {e}") finally: if 'connection' in locals(): connection.close() print('数据库连接已关闭') ``` ### 常见问题与解决方法 1. **无法连接MySQL 服务器** - 检查 MySQL 服务是否运行。 - 验证防火墙设置是否允许访问 MySQL 端口(默认为 3306)。 - 如果是远程连接,请确认 MySQL 用户权限配置允许从当前 IP 地址访问。 - 查看是否使用了错误的主机名或 IP 地址,如 `localhost` 应替换为实际 IP 地址以进行远程连接 [^3]。 2. **数据库连接超时** - 增加连接超时时间。 - 检查网络延迟或 SSH 隧道设置(如果使用了 SSH 转发) [^4]。 3. **认证失败** - 确认用户名和密码正确。 - 确保用户拥有连接权限和目标数据库的访问权限。 ### 示例:创建数据表 以下是一个在连接成功后创建名为 `users` 的数据表的示例: ```python cursor.execute(""" CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT ) """) print("数据表已创建") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值