当前位置: 首页 > news >正文

操作数据库

""" 
本文件是【连接数据库:通过链和代理查询鲜花信息】章节的配套代码,课程链接:https://juejin.cn/book/7387702347436130304/section/7388065974408183858
您可以点击最上方的“运行“按钮,直接运行该文件;更多操作指引请参考Readme.md文件。
"""
# 导入sqlite3库,它是Python内置的轻量级数据库。
import sqlite3# 连接到数据库
conn = sqlite3.connect("FlowerShop.db")
cursor = conn.cursor()# 执行SQL命令来创建Flowers表
cursor.execute("""CREATE TABLE Flowers (ID INTEGER PRIMARY KEY, Name TEXT NOT NULL, Type TEXT NOT NULL, Source TEXT NOT NULL, PurchasePrice REAL, SalePrice REAL,StockQuantity INTEGER, SoldQuantity INTEGER, ExpiryDate DATE,  Description TEXT, EntryDate DATE DEFAULT CURRENT_DATE );"""
)# 插入5种鲜花的数据
flowers = [("Rose","Flower","France",1.2,2.5,100,10,"2023-12-31","A beautiful red rose",),("Tulip","Flower","Netherlands",0.8,2.0,150,25,"2023-12-31","A colorful tulip",),("Lily", "Flower", "China", 1.5, 3.0, 80, 5, "2023-12-31", "An elegant white lily"),("Daisy","Flower","USA",0.7,1.8,120,15,"2023-12-31","A cheerful daisy flower",),("Orchid","Flower","Brazil",2.0,4.0,50,2,"2023-12-31","A delicate purple orchid",),
]for flower in flowers:cursor.execute("""INSERT INTO Flowers (Name, Type, Source, PurchasePrice, SalePrice, StockQuantity, SoldQuantity, ExpiryDate, Description) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);""",flower,)# 提交更改
conn.commit()# 关闭数据库连接
conn.close()

这段代码是一个Python脚本,用于操作SQLite数据库。下面是对代码的逐行解释:

  1. import sqlite3:导入Python的sqlite3模块,该模块提供了轻量级的磁盘基数据库,不需要独立的服务器进程。

  2. conn = sqlite3.connect("FlowerShop.db"):创建一个连接到名为"FlowerShop.db"的SQLite数据库的连接对象。如果数据库文件不存在,会自动创建。

  3. cursor = conn.cursor():创建一个光标对象,用于执行SQL命令。

4-11. 这部分代码执行了一个SQL命令来创建一个名为"Flowers"的表。表中有多个字段,包括ID(主键)、Name(花的名字)、Type(花的类型)、Source(产地)、PurchasePrice(购买价格)、SalePrice(销售价格)、StockQuantity(库存数量)、SoldQuantity(已售数量)、ExpiryDate(过期日期)、Description(描述)和EntryDate(录入日期,默认值为当前日期)。

12-21. 定义了一个名为flowers的列表,其中包含了五种鲜花的数据,每种花的数据是一个元组,包含了上述表中定义的字段。

22-28. 使用一个for循环遍历flowers列表中的每个元组,并对每种花执行一个SQL插入命令,将花的数据插入到"Flowers"表中。

  1. conn.commit():提交之前的所有更改,确保这些更改被保存到数据库中。

  2. conn.close():关闭数据库连接。

这段代码的目的是创建一个数据库表,并在该表中插入一些鲜花的数据。这些数据可以用来管理一个花店的库存和销售信息。
数据库的常用命令会根据你使用的数据库管理系统(DBMS)的不同而有所差异。以下是一些常见的数据库系统及其常用的命令:

MySQL/MariaDB

  • 连接数据库:
    mysql -u username -p
    
  • 选择数据库:
    USE database_name;
    
  • 显示数据库列表:
    SHOW DATABASES;
    
  • 显示表列表:
    SHOW TABLES;
    
  • 查询表结构:
    DESCRIBE table_name;
    
  • 查询数据:
    SELECT * FROM table_name;
    
  • 插入数据:
    INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
    
  • 更新数据:
    UPDATE table_name SET column1 = value1 WHERE condition;
    
  • 删除数据:
    DELETE FROM table_name WHERE condition;
    
  • 添加新表:
    CREATE TABLE table_name (column1 datatype, column2 datatype, ...);
    
  • 删除表:
    DROP TABLE table_name;
    
  • 创建索引:
    CREATE INDEX index_name ON table_name (column);
    
  • 删除索引:
    DROP INDEX index_name ON table_name;
    
  • 备份数据库:
    mysqldump -u username -p database_name > backup.sql
    
  • 恢复数据库:
    mysql -u username -p database_name < backup.sql
    

PostgreSQL

  • 连接数据库:
    psql -U username -d database_name
    
  • 显示数据库列表:
    \l
    
  • 显示表列表:
    \dt
    
  • 查询表结构:
    \d+ table_name
    
  • 查询数据:
    SELECT * FROM table_name;
    
  • 插入数据:
    INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
    
  • 更新数据:
    UPDATE table_name SET column1 = value1 WHERE condition;
    
  • 删除数据:
    DELETE FROM table_name WHERE condition;
    
  • 添加新表:
    CREATE TABLE table_name (column1 datatype, column2 datatype, ...);
    
  • 删除表:
    DROP TABLE table_name;
    
  • 创建索引:
    CREATE INDEX index_name ON table_name (column);
    
  • 删除索引:
    DROP INDEX index_name;
    
  • 备份数据库:
    pg_dump -U username database_name > backup.sql
    
  • 恢复数据库:
    psql -U username -d database_name < backup.sql
    

SQLite

  • 连接数据库:
    sqlite3 database_name.db
    
  • 显示表列表:
    .tables
    
  • 查询表结构:
    .schema table_name
    
  • 查询数据:
    SELECT * FROM table_name;
    
  • 插入数据:
    INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
    
  • 更新数据:
    UPDATE table_name SET column1 = value1 WHERE condition;
    
  • 删除数据:
    DELETE FROM table_name WHERE condition;
    
  • 添加新表:
    CREATE TABLE table_name (column1 datatype, column2 datatype, ...);
    
  • 删除表:
    DROP TABLE table_name;
    
  • 创建索引:
    CREATE INDEX index_name ON table_name (column);
    
  • 删除索引:
    DROP INDEX index_name;
    
  • 备份数据库:
    .output backup.db
    .dump
    .output stdout
    
  • 恢复数据库:
    .read backup.db
    

SQL Server

  • 连接数据库:
    sqlcmd -U username -P password
    
  • 显示数据库列表:
    EXEC sp_helpdb;
    
  • 显示表列表:
    SELECT name FROM sys.tables;
    
  • 查询表结构:
    EXEC sp_columns table_name;
    
  • 查询数据:
    SELECT * FROM table_name;
    
  • 插入数据:
    INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
    
  • 更新数据:
    UPDATE table_name SET column1 = value1 WHERE condition;
    
  • 删除数据:
    DELETE FROM table_name WHERE condition;
    
  • 添加新表:
    CREATE TABLE table_name (column1 datatype, column2 datatype, ...);
    
  • 删除表:
    DROP TABLE table_name;
    
  • 创建索引:
    CREATE INDEX index_name ON table_name (column);
    
  • 删除索引:
    DROP INDEX index_name ON table_name;
    
  • 备份数据库:
    BACKUP DATABASE database_name TO DISK = 'backup.bak';
    
  • 恢复数据库:
    RESTORE DATABASE database_name FROM DISK = 'backup.bak';
    

请注意,这些命令是基础的,实际使用时可能需要根据具体情况进行调整。此外,对于复杂的操作,如事务处理、存储过程、触发器等,命令会更加复杂。

相关文章:

操作数据库

""" 本文件是【连接数据库&#xff1a;通过链和代理查询鲜花信息】章节的配套代码&#xff0c;课程链接&#xff1a;https://juejin.cn/book/7387702347436130304/section/7388065974408183858 您可以点击最上方的“运行“按钮&#xff0c;直接运行该文件&…...

lua-lru缓存算法解析

lua-lru缓存算法解析 主要功能和作用1. 缓存管理&#xff1a;2. 数据存储与访问&#xff1a;3. 迭代器&#xff1a;4. 容量管理&#xff1a; 具体实现细节使用场景使用示例 lua-lru 是 Lua 语言中的一个 LRU&#xff08;Least Recently Used&#xff0c;最近最少使用&#xff0…...

Python - 初识Python;Python解释器下载安装;Python IDE(一)

一、初识Python Python 是一种高级编程语言&#xff0c;Python是一种面向对象的解释型计算机程序设计语言&#xff0c;Python由荷兰国家数学与计算机科学研究中心的吉多范罗苏姆&#xff08;&#xff09;Guido van Rossum吉多范罗苏姆&#xff08;&#xff09;于1989 年底发明…...

鸿蒙学习基本概念

文章目录 1、当前移动应用开发中遇到的主要挑战包括&#xff1a;2、 新的应用生态应该具备如下特征&#xff1a;3、HarmonyOS 应用&#xff1a;使用 HarmonyOS SDK 开发的应用程序&#xff0c;能够在华为终端设备4、HarmonyOS 元服务&#xff1a;元服务是 HarmonyOS 面向万物互…...

正则表达式(补充)

定义一个正则表达式 const 变量名 /表达式/ const reg /前端/ 匹配看字符串中有无前端俩字 正则对象上的一些方法 test() 用于查看正则表达式与指定的字符串是否匹配 const reg /前端/ const res reg.test(学前端&#xff0c;找黑马) //匹配到返回true,匹配不到返回fa…...

第23课-C++-红黑树的插入与旋转

&#x1f307;前言 红黑树是一种自平衡的二叉搜索树&#xff0c;因其出色的性能&#xff0c;广泛应用于实际中。Linux 内核中的 CFS 调度器便是一个使用红黑树的例子&#xff0c;这足以说明它的重要性。红黑树的实现通过红黑两种颜色的控制来维持平衡&#xff0c;并在必要时使…...

【C#】C#编程入门指南:构建你的.NET开发基础

文章目录 前言&#xff1a;1. C# 开发环境 VS的基本熟悉2. 解决方案与项目的关系3. 编辑、编译、链接、运行4. 托管代码和CLR4.1 CLR&#xff1a;4.2 C# 代码第编译过程&#xff08;两次编译的&#xff09; 5. 命名空间6. 类的组成与分析7. C# 的数据类型7.1 值类型7.2 引用类型…...

[系统安全] PE文件知识在免杀中的应用

0x1 PE文件与免杀思路 基于PE文件结构知识的免杀技术主要用于对抗启发式扫描。 通过修改PE文件中的一些关键点来达到欺骗反病毒软件的目的。 修改区段名 1.1 移动PE文件头位置免杀 工具&#xff1a;PeClean SizeOfOptionalHeader字段来描述扩展头的大小&#xff0c;恒定值为…...

相机标定原理

相机标定原理 什么是相机标定相机畸变 什么是相机标定 为了确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系&#xff0c;需建立相机成像的几何模型&#xff0c;几何模型参数即为相机参数&#xff0c;求解相机参数的过程就是相机标定。 坐标系 **世界坐标…...

Linux基础开发工具使用

目录 1. 软件包管理器yum 1.1 概念介绍 1.2 更换镜像源&#xff08;可选&#xff09; 1.3 工具的搜索/查看/安装/卸载 1.4 优势 2. vim编辑器 2.1 vi和vim 2.2 三种常用模式和操作 2.3 配置vim 3. Linux编译器-gcc/g 4. Linux调试器-gdb 5. make和Makefile 6.…...

蓝牙PBAP协议及Android实现

文章目录 前言一、什么是PBAP协议&#xff1f;PBAP的关键功能 二、PBAP的工作流程PBAP流程 三、PBAP在Android实现关键步骤&#xff1a;1. 检查设备是否支持 PBAP 服务 2. 创建 PBAP 连接3. 发送 OBEX 请求4. 解析 vCard 数据数据存储与展示6. 性能优化建议7. 完整示例&#xf…...

Py之pymupdf:基于langchain框架结合pymupdf库实现输出每个PDF页面的文本内容、元数据等

Py之pymupdf:基于langchain框架结合pymupdf库实现输出每个PDF页面的文本内容、元数据等 目录 PyMuPDFLoader类 初始化 属性 方法 __init__(file_path, *, headers=None, extract_images=False, **kwargs) lazy_load() aload() alazy_load() load(**kwargs) load_and…...

LeetCode题解:17.电话号码的数字组合【Python题解超详细,回溯法、多叉树】,知识拓展:深度优先搜索与广度优先搜索

题目描述 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;digits "23" 输出…...

《JVM第10课》内存溢出(OOM)排查过程

文章目录 常用命令1. jps2. jconsole3. jstat4. jmap 工具1.jvisualvm 排查OOM的方法其实很简单很简单。 如果能找到拋OOM的日志&#xff0c;可以在日志里看到是哪一行抛出的OOM异常。如果找不到日志&#xff0c;那么处理方式是导出Java进程的内存快照&#xff0c;然后用工具查…...

Thinkphp6视图介绍

一.MVC MVC 软件系统分为三个基本部分&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&#xff09; ThinkPHP6 是一个典型的 MVC 架构 控制器—控制器&#xff0c;用于将用户请求转发给相应的Model进行处理&a…...

躺平成长-人工智能进行编程-(12)

躺平成长&#xff1a; 让每一个人在科技&#xff08;开源的网络/智能科技对于生活琐事的处理&#xff09;的帮助下&#xff0c;实现养生反卷&#xff0c;躺平成长。 开源竞争&#xff1a; 当你无法彻底掌握技术的时候&#xff0c;你就开源这个技术&#xff0c;形成技术依赖&a…...

计算机网络中的域名系统(DNS)及其优化技术

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 计算机网络中的域名系统&#xff08;DNS&#xff09;及其优化技术 计算机网络中的域名系统&#xff08;DNS&#xff09;及其优化…...

Matplotlib库中show()函数的用法

在Matplotlib库中使用show()函数是用于显示绘制的图形的函数。它将图形显示在屏幕上或保存到文件中。show()函数通常在绘制完图形后调用。 Matplotlib是一个用于绘制2D图形的Python库&#xff0c;它提供了丰富的绘图工具和函数&#xff0c;可以用于创建各种类型的图表&#xf…...

C#中object和dynamic

在C#中&#xff0c;object和dynamic都是用于存储不同类型值的类型&#xff0c;但它们之间存在一些关键的区别&#xff1a; object object是C#中的基元类型之一&#xff0c;是所有其他类型的最终基类。当你将一个值赋给object类型的变量时&#xff0c;编译器会执行装箱操作&am…...

Spring Cloud Eureka 服务注册与发现

Spring Cloud Eureka 服务注册与发现 一、Eureka基础知识概述1.Eureka两个核心组件2.Eureka 服务注册与发现 二、Eureka单机搭建三、Eureka集群搭建四、心跳续约五、Eureka自我保护机制 一、Eureka基础知识概述 1.Eureka两个核心组件 Eureka Server &#xff1a;服务注册中心…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...