操作数据库
"""
本文件是【连接数据库:通过链和代理查询鲜花信息】章节的配套代码,课程链接: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数据库。下面是对代码的逐行解释:
-
import sqlite3
:导入Python的sqlite3模块,该模块提供了轻量级的磁盘基数据库,不需要独立的服务器进程。 -
conn = sqlite3.connect("FlowerShop.db")
:创建一个连接到名为"FlowerShop.db"的SQLite数据库的连接对象。如果数据库文件不存在,会自动创建。 -
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"表中。
-
conn.commit()
:提交之前的所有更改,确保这些更改被保存到数据库中。 -
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';
请注意,这些命令是基础的,实际使用时可能需要根据具体情况进行调整。此外,对于复杂的操作,如事务处理、存储过程、触发器等,命令会更加复杂。
相关文章:

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

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

Python - 初识Python;Python解释器下载安装;Python IDE(一)
一、初识Python Python 是一种高级编程语言,Python是一种面向对象的解释型计算机程序设计语言,Python由荷兰国家数学与计算机科学研究中心的吉多范罗苏姆()Guido van Rossum吉多范罗苏姆()于1989 年底发明…...

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

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

第23课-C++-红黑树的插入与旋转
🌇前言 红黑树是一种自平衡的二叉搜索树,因其出色的性能,广泛应用于实际中。Linux 内核中的 CFS 调度器便是一个使用红黑树的例子,这足以说明它的重要性。红黑树的实现通过红黑两种颜色的控制来维持平衡,并在必要时使…...

【C#】C#编程入门指南:构建你的.NET开发基础
文章目录 前言:1. C# 开发环境 VS的基本熟悉2. 解决方案与项目的关系3. 编辑、编译、链接、运行4. 托管代码和CLR4.1 CLR:4.2 C# 代码第编译过程(两次编译的) 5. 命名空间6. 类的组成与分析7. C# 的数据类型7.1 值类型7.2 引用类型…...

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

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

Linux基础开发工具使用
目录 1. 软件包管理器yum 1.1 概念介绍 1.2 更换镜像源(可选) 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协议?PBAP的关键功能 二、PBAP的工作流程PBAP流程 三、PBAP在Android实现关键步骤:1. 检查设备是否支持 PBAP 服务 2. 创建 PBAP 连接3. 发送 OBEX 请求4. 解析 vCard 数据数据存储与展示6. 性能优化建议7. 完整示例…...

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 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits "23" 输出…...

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

Thinkphp6视图介绍
一.MVC MVC 软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller) ThinkPHP6 是一个典型的 MVC 架构 控制器—控制器,用于将用户请求转发给相应的Model进行处理&a…...

躺平成长-人工智能进行编程-(12)
躺平成长: 让每一个人在科技(开源的网络/智能科技对于生活琐事的处理)的帮助下,实现养生反卷,躺平成长。 开源竞争: 当你无法彻底掌握技术的时候,你就开源这个技术,形成技术依赖&a…...

计算机网络中的域名系统(DNS)及其优化技术
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 计算机网络中的域名系统(DNS)及其优化技术 计算机网络中的域名系统(DNS)及其优化…...

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

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

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

【WPF】Prism学习(三)
Prism Commands 1.复合命令(Composite Commanding) 这段内容主要介绍了在应用程序中如何使用复合命令(Composite Commands)来实现多个视图模型(ViewModels)上的命令。以下是对这段内容的解释: …...

1+X应急响应(网络)系统加固:
系统加固: 数据库的重要性: 数据库面临的风险: 数据库加固: 业务系统加固: 安全设备加固: 网络设备加固:...

使用 Grafana api 查询 Datasource 数据
一、使用grafana 的api 接口 官方API 二、生成Api key 点击 Administration -》Users and accss -》Service accounts 进入页面 点击Add service account 创建 service account 点击Add service account token 点击 Generate token , 就可以生成 api key 了 三、进入grafana…...

【电子设计】按键LED控制与FreeRTOS
1. 安装Keilv5 打开野火资料,寻找软件包 解压后得到的信息 百度网盘 请输入提取码 提取码:gfpp 安装526或者533版本都可以 下载需要的 F1、F4、F7、H7 名字的 DFP pack 芯片包 安装完 keil 后直接双击安装 注册操作,解压注册文件夹后根据里面的图示步骤操作 打开说明 STM…...

JMeter中添加请求头
在JMeter中添加请求头的步骤如下: 1.打开HTTP信息头管理器 : 首先,你需要进入JMeter的HTTP请求组件。这可以通过在HTTP请求测试元素上右键点击,然后选择“添加 > 配置元件 > HTTP信息头管理器”来完成。 2.添加新的请求头…...

VMD + CEEMDAN 二次分解,CNN-LSTM预测模型
往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较 全是干货 | 数据集、学习资料、建模资源分享! EMD变体分解效果最好算法——CEEMDAN(五)-CSDN博客 拒绝信息泄露!VMD滚动分…...

【Linux系统编程】第四十六弹---线程同步与生产消费模型深度解析
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、Linux线程同步 1.1、同步概念与竞态条件 1.2、条件变量 1.2.1、认识条件变量接口 1.2.2、举例子认识条件变量 1.2.3、…...

VoIP是什么?
IP 语音 (VoIP)(Voice over Internet Protocol) 是一种通过互联网拨打电话的方法。与旧的固定电话系统不同,互联网并非设计用于在连接的人之间实时传输音频信号。必须构建专门的技术和协议才能使之成为可能,这些技术和协议构成了 …...

MySQL 中的集群部署方案
文章目录 MySQL 中的集群部署方案MySQL ReplicationMySQL Group ReplicationInnoDB ClusterInnoDB ClusterSetInnoDB ReplicaSetMMMMHAGalera ClusterMySQL ClusterMySQL Fabric 总结参考 MySQL 中的集群部署方案 MySQL Replication MySQL Replication 是官方提供的主从同步方…...

《设计模式》创建型模式总结
目录 创建型模式概述 Factory Method: 唯一的类创建型模式 Abstract Factory Builder模式 Prototype模式 Singleton模式 最近在参与一个量化交易系统的项目,里面涉及到用java来重构部分vnpy的开源框架,因为是框架的搭建,所以会涉及到像…...