python操作mysql实现一个超市管理系统

yizhihongxing

Python操作MySQL实现超市管理系统

简介

MySQL 是一个流行的关系型数据库管理系统,而 Python 是一种与 MySQL 配合非常好的编程语言。在这个教程中,我们将使用 Python 中的 pymysql 库实现一个超市管理系统。

步骤

1. 创建数据库和表

首先需要创建一个数据库,并且在其中创建一个表来存储超市的商品信息。可以使用如下 SQL 语句来创建一个名为 supermarket 的数据库和名为 products 的表:

CREATE DATABASE supermarket;

USE supermarket;

CREATE TABLE products (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(255),
  price FLOAT
);

2. 连接数据库

使用 Python 中的 pymysql 库连接到数据库:

import pymysql

conn = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    db='supermarket'
)

其中,host 是数据库的主机名,user 是数据库的用户名,password 是数据库的密码,db 是要连接的数据库名。

3. 插入数据

使用 SQL 语句向表中插入数据:

cursor = conn.cursor()

# 插入单条数据
sql = "INSERT INTO products (name, price) VALUES (%s, %s)"
val = ("apple", 2.3)
cursor.execute(sql, val)

# 插入多条数据
sql = "INSERT INTO products (name, price) VALUES (%s, %s)"
val = [
    ("banana", 1.1),
    ("orange", 4.5),
    ("peach", 3.2)
]
cursor.executemany(sql, val)

conn.commit()

可以使用 cursor.execute()cursor.executemany() 来插入数据,conn.commit() 用于提交插入操作。

4. 查询数据

使用 SELECT 语句从表中查询数据:

cursor = conn.cursor()

# 查询单条数据
sql = "SELECT * FROM products WHERE name = %s"
val = ("apple", )
cursor.execute(sql, val)
result = cursor.fetchone()
print(result)

# 查询所有数据
sql = "SELECT * FROM products"
cursor.execute(sql)
result = cursor.fetchall()
print(result)

可以使用 cursor.fetchone() 来获取一条查询结果,也可使用 cursor.fetchall() 获取所有查询结果。

5. 更新数据

使用 UPDATE 语句更新表中数据:

cursor = conn.cursor()

sql = "UPDATE products SET price = 2.5 WHERE name = %s"
val = ("apple", )
cursor.execute(sql, val)

conn.commit()

可以使用 cursor.execute() 来更新数据,conn.commit() 用于提交更新操作。

6. 删除数据

使用 DELETE 语句删除表中数据:

cursor = conn.cursor()

sql = "DELETE FROM products WHERE name = %s"
val = ("apple", )
cursor.execute(sql, val)

conn.commit()

可以使用 cursor.execute() 来删除数据,conn.commit() 用于提交删除操作。

示例说明

以下是一个基于 pymysql 实现的超市管理系统示例:

import pymysql

conn = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    db='supermarket'
)

def add_product(name, price):
    cursor = conn.cursor()
    sql = "INSERT INTO products (name, price) VALUES (%s, %s)"
    val = (name, price)
    cursor.execute(sql, val)
    conn.commit()

def get_products():
    cursor = conn.cursor()
    sql = "SELECT * FROM products"
    cursor.execute(sql)
    return cursor.fetchall()

def remove_product(name):
    cursor = conn.cursor()
    sql = "DELETE FROM products WHERE name = %s"
    val = (name, )
    cursor.execute(sql, val)
    conn.commit()

# 添加商品
add_product("apple", 2.5)
add_product("banana", 1.1)
add_product("peach", 3.2)

# 查询商品
products = get_products()
print(products)

# 删除商品
remove_product("apple")
products = get_products()
print(products)

在这个示例中,我们定义了 add_product() 函数用于添加商品,get_products() 函数用于查询所有商品,以及 remove_product() 函数用于删除商品。我们使用这些函数来添加、查询和删除一些商品信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python操作mysql实现一个超市管理系统 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • mySQL建表及练习题(下)

    1、 查询Student表中的所有记录的Sname、Ssex和Class列。 select sname,ssex,class from student 2、 查询教师所有的单位即不重复的Depart列。 select distinct depart from teacher 3、 查询Student表的所有记录。 select * from student …

    MySQL 2023年4月13日
    00
  • MySQL中表的复制以及大型数据表的备份教程

    MySQL中表的复制 MySQL中的表复制可以帮助我们将数据从一个MySQL数据库复制到另一个MySQL数据库或者同一个数据库中的不同表里面。 复制方法1:使用INSERT INTO和SELECT语句 我们可以使用INSERT INTO和SELECT语句将一张表的数据复制到另外一张表中,如下所示: INSERT INTO target_table (colu…

    database 2023年5月22日
    00
  • Spring框架接入单机Redis两种实现方式解析

    下面我将详细讲解“Spring框架接入单机Redis两种实现方式解析”的完整攻略。 1. 简介 Redis是一个开源的内存数据结构存储系统,它支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。Redis具有高性能和可靠性,广泛用于缓存、消息队列、排行榜、计数器等场景。 Spring框架是一个流行的Java应用开发框架,提供了很多便利的特性,如依赖注…

    database 2023年5月18日
    00
  • navcat无法远程连接mysql数据库解决办法

    navcat无法远程连接mysql数据库,一般都是因为本地ip没有访问权限,服务器上执行下面指令即可解决 mysql -u root -p GRANT ALL PRIVILEGES ON *.* TO ‘mysql数据库用户名’@’本地ip’ IDENTIFIED BY ‘mysql数据库密码’ WITH GRANT OPTION; flush privil…

    MySQL 2023年4月13日
    00
  • 利用Java8 Optional类优雅如何地解决空指针问题

    使用Java8的Optional类是一个优雅的方法,在代码中优雅解决空指针问题是值得推荐的。本文详细讲解如何将Optional类应用于你的Java代码中。 什么是Optional类? Optional类是Java8的一个类,它的目的是解决Null和Null Pointer Exceptions (NPE)在Java程序中的问题。在Java8之前,判断变量是否…

    database 2023年5月21日
    00
  • Springboot集成Jasypt实现配置文件加密的方法

    下面是Spring Boot集成Jasypt实现配置文件加密的方法的完整攻略。 什么是Jasypt? Jasypt是一个开源的Java加密/解密库,可以手动或自动加密文本、属性和配置文件。Jasypt的目标是为Java开发人员提供简单易用、强大高效的数据加密工具。 集成Jasypt实现配置文件加密的方法 1. 添加Jasypt依赖 在Spring Boot项…

    database 2023年5月22日
    00
  • SQL WHERE IN参数化编译写法简单示例

    下面我将为您详细讲解“SQL WHERE IN参数化编译写法简单示例”的完整攻略。 SQL WHERE IN参数化编译写法简介 在 SQL 中,我们常常需要使用到 WHERE IN 语法来查询一段区间内的数据。将参数与 SQL 语句拼接在一起虽然可行,但容易造成 SQL 注入的风险。参数化编译能够避免这一风险,而且能够提高语句的执行效率。 下面具体讲解 SQ…

    database 2023年5月21日
    00
  • SQL 行值轮转

    下面将详细讲解SQL行值轮转的攻略。 什么是SQL行值轮转? SQL行值轮转(Row Value Transposition),也称为行转列、透视表,是将原始数据行转换为新的数据列的一个过程。通常情况下,我们从数据库中获取的数据是以行的形式呈现的,如果要将这些行数据“横向”展示,可以使用SQL行值轮转。 SQL行值轮转的语法 SQL行值轮转有不同的语法,此处…

    database 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部