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

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...