python中增删改查excel_Python操作Mariadb数据库增删改查

本文介绍了如何使用Python与MySQLdb模块在树莓派上实现传感器数据的读取,并通过Python脚本连接、操作MariaDB数据库,包括创建表、插入、查询、更新和删除数据,适合初学者理解数据库基本操作。
摘要由CSDN通过智能技术生成

最近在使用树莓派操作传感器,想着把读取的模拟量和布尔量数据传到数据库保存,数据采集是可以使用python来完成,于是实验一番python操作Mariadb数据库,完成数据库增删改查操作。

1、安装 Python MySQLdb 模块接口

sudo apt-get install python-mysqldb。

操作数据库的步骤是引用API模块MySQLdb,连接数据库 MySQLdb.connect,获取游标conn.cursor,执行sql语句execute(包含事务),关闭数据库连接conn.close。

2、获取数据据库版本database_version.py#!/usr/bin/python

# -*- coding: UTF-8 -*-

import MySQLdb

# 打开数据库连接

db = MySQLdb.connect("localhost", "user", "user", "TESTDB", charset='utf8' )

# 使用cursor()方法获取操作游标

cursor = db.cursor()

# 如果数据表已经存在使用 execute() 方法删除表。

cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

# 创建数据表SQL语句

sql = """CREATE TABLE EMPLOYEE (

FIRST_NAME  CHAR(20) NOT NULL,

LAST_NAME  CHAR(20),

AGE INT,

SEX CHAR(1),

INCOME FLOAT )"""

cursor.execute(sql)

# 关闭数据库连接

db.close()

3、创建数据表#!/usr/bin/python

# -*- coding: UTF-8 -*-

import MySQLdb

# 打开数据库连接

db = MySQLdb.connect("localhost", "user", "user", "TESTDB", charset='utf8' )

# 使用cursor()方法获取操作游标

cursor = db.cursor()

# 如果数据表已经存在使用 execute() 方法删除表。

cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

# 创建数据表SQL语句

sql = """CREATE TABLE EMPLOYEE (

FIRST_NAME  CHAR(20) NOT NULL,

LAST_NAME  CHAR(20),

AGE INT,

SEX CHAR(1),

INCOME FLOAT )"""

cursor.execute(sql)

# 关闭数据库连接

db.close()

4、插入数据insert.py#!/usr/bin/python

# -*- coding: UTF-8 -*-

import MySQLdb

# 打开数据库连接

db = MySQLdb.connect("localhost", "user", "user", "TESTDB", charset='utf8' )

# 使用cursor()方法获取操作游标

cursor = db.cursor()

# SQL 插入语句

sql = """INSERT INTO EMPLOYEE(FIRST_NAME,

LAST_NAME, AGE, SEX, INCOME)

VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""

try:

# 执行sql语句

cursor.execute(sql)

# 提交到数据库执行

db.commit()

except:

# Rollback in case there is any error

db.rollback()

# 关闭数据库连接

db.close()

5、查询数据select.py#!/usr/bin/python

# -*- coding: UTF-8 -*-

import MySQLdb

# 打开数据库连接

db = MySQLdb.connect("localhost", "user", "user", "TESTDB", charset='utf8' )

# 使用cursor()方法获取操作游标

cursor = db.cursor()

# SQL 查询语句

sql = "SELECT * FROM EMPLOYEE \

WHERE INCOME > %s" % (1000)

try:

# 执行SQL语句

cursor.execute(sql)

# 获取所有记录列表

results = cursor.fetchall()

for row in results:

fname = row[0]

lname = row[1]

age = row[2]

sex = row[3]

income = row[4]

# 打印结果

print "fname=%s,lname=%s,age=%s,sex=%s,income=%s" % \

(fname, lname, age, sex, income )

except:

print "Error: unable to fecth data"

# 关闭数据库连接

db.close()

6、更新数据update.py#!/usr/bin/python

# -*- coding: UTF-8 -*-

import MySQLdb

# 打开数据库连接

db = MySQLdb.connect("localhost", "user", "user", "TESTDB", charset='utf8' )

# 使用cursor()方法获取操作游标

cursor = db.cursor()

# SQL 更新语句

sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')

try:

# 执行SQL语句

cursor.execute(sql)

# 提交到数据库执行

db.commit()

except:

# 发生错误时回滚

db.rollback()

# 关闭数据库连接

db.close()

7、删除数据delete.py#!/usr/bin/python

# -*- coding: UTF-8 -*-

import MySQLdb

# 打开数据库连接

db = MySQLdb.connect("localhost", "user", "user", "TESTDB", charset='utf8' )

# 使用cursor()方法获取操作游标

cursor = db.cursor()

# SQL 删除语句

sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)

try:

# 执行SQL语句

cursor.execute(sql)

# 提交修改

db.commit()

except:

# 发生错误时回滚

db.rollback()

# 关闭连接

db.close()

Python操作MySQL(也称为MariaDB,因为它们兼容)这样的关系型数据库,最常用的是使用像`pymysql`或者`mysql-connector-python`这样的库。对于崖山数据库(实际上可能是MySQL误拼,这里假设你是指MySQL),下面是一个基本的例子,展示了如何使用Python进行增删改查操作: ```python import pymysql # 连接到数据库 def connect_db(host, user, password, db): connection = pymysql.connect( host=host, user=user, password=password, database=db, charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor # 使用字典形式的游标 ) return connection # 关闭连接 def close_conn(connection): connection.close() # 插入数据 def insert_data(conn, table_name, columns, values): with conn.cursor() as cursor: sql = f"INSERT INTO {table_name} ({', '.join(columns)}) VALUES ({', '.join(['%s'] * len(values))})" cursor.execute(sql, values) conn.commit() # 查询数据 def select_data(conn, table_name, conditions=None, fields=None): with conn.cursor() as cursor: if conditions: sql = f"SELECT {(', '.join(fields))} FROM {table_name} WHERE {conditions}" else: sql = f"SELECT {(', '.join(fields))} FROM {table_name}" cursor.execute(sql) return cursor.fetchall() # 更新数据 def update_data(conn, table_name, set_values, where_conditions): with conn.cursor() as cursor: sql = f"UPDATE {table_name} SET {set_values} WHERE {where_conditions}" cursor.execute(sql) conn.commit() # 删除数据 def delete_data(conn, table_name, where_conditions): with conn.cursor() as cursor: sql = f"DELETE FROM {table_name} WHERE {where_conditions}" cursor.execute(sql) conn.commit() # 示例用法 connection = connect_db('localhost', 'username', 'password', 'database_name') try: # 插入一条记录 insert_data(connection, 'users', ['name', 'email'], ('John Doe', 'john.doe@example.com')) # 查询所有用户 users = select_data(connection, 'users') # 更新某个用户的邮箱 update_data(connection, 'users', "email='%s'", "name='John Doe'") # 删除邮件地址为'john.doe@example.com'的用户 delete_data(connection, 'users', "email='john.doe@example.com'") finally: close_conn(connection) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值