当前位置: 首页 > 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;服务注册中心…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下&#xff0c;推客小程序系统凭借其裂变传播、精准营销等特性&#xff0c;成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径&#xff0c;助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...