AI教我学编程之SQL Server常见指令以及数据类型

news2024/11/18 1:33:37

前言

今天在工作的过程中,遇到了许多常见的属性,在此做下记录,方便以后查询

目录

  • SQL Server 常见指令
    • 对话AI
    • 光有概念怎么行
      • 阶段总结
    • SQL Server关键字
    • 边学边练
  • 数据类型
    • 看图说话
    • 对话AI
      • 数据类型我知道
      • 括号里的神秘数字
    • 疑问
    • 边练边学
  • 总结

SQL Server 常见指令

正如菜鸟教程所言

SQL 是用于访问和处理数据库的标准的计算机语言

那么该如何理解SQL这个看起来极易入门的语言呢?我们试着从基础概念入手

对话AI

程序员

介绍SQL指令的基础概念

在这里插入图片描述

SQL(Structured Query Language)是一种用于与数据库进行通信的编程语言。它被用于存储、检索、修改和管理关系数据库系统中的数据。SQL 的设计目的是提供一种简洁、直观的方式来处理数据,使得无论是技术人员还是非技术人员都能够理解和使用。

基础概念涵盖了几个关键点:

  1. 数据操作语言 (DML): 这部分的 SQL 指令用于处理数据。它包括如下指令:

    • SELECT:查询数据库中的数据。
    • INSERT:向数据库表中插入新数据。
    • UPDATE:修改表中的现有数据。
    • DELETE:从表中删除数据。
  2. 数据定义语言 (DDL): DDL 指令用于定义或修改数据库结构。这些指令包括:

    • CREATE:创建新的数据库或数据库表。
    • ALTER:修改现有数据库或表的结构。
    • DROP:删除整个数据库或表。
  3. 数据控制语言 (DCL): 这类指令用于控制对数据库的访问。主要包括:

    • GRANT:授予用户或角色访问数据库的权限。
    • REVOKE:撤销先前授予的权限。
  4. 事务控制语言 (TCL): 用于管理数据库事务的指令,主要包括:

    • BEGIN TRANSACTION:开始一个新的事务。
    • COMMIT:提交当前事务,使所有更改成为永久性。
    • ROLLBACK:撤销当前事务中的所有更改。

每种类型的 SQL 指令都有其特定的用途和应用场景,它们共同构成了 SQL 语言的基础,使得 SQL 成为处理关系数据库中数据的强大工具。

由此,我们了解到SQL分为四种类型,分别是数据操作语言 (DML)数据定义语言 (DDL),数据控制语言 (DCL),事务控制语言 (TCL)

光有概念怎么行

程序员

根据你以上分四类列举的SQL指令的特定的用途和应用场景构建一个实例,在这个实例中需要体现SQL不同类型指令的不同之处

在这里插入图片描述

当然,让我们通过一个实例来展示 SQL 中不同类型指令的特定用途和应用场景。在这个例子中,我们将创建一个简单的数据库环境,涉及创建表、插入和查询数据、修改表结构、控制访问权限,以及事务处理。

假设我们正在管理一个图书馆的数据库,需要记录书籍和借书记录。

1. 数据定义语言 (DDL) - 创建表

首先,我们需要创建两个表:BooksBorrowRecords

CREATE TABLE Books (
    BookID INT PRIMARY KEY,
    Title NVARCHAR(100),
    Author NVARCHAR(100),
    PublishedYear INT
);

CREATE TABLE BorrowRecords (
    RecordID INT PRIMARY KEY,
    BookID INT,
    BorrowerName NVARCHAR(100),
    BorrowDate DATE,
    ReturnDate DATE,
    FOREIGN KEY (BookID) REFERENCES Books(BookID)
);

2. 数据操作语言 (DML) - 插入和查询数据

接下来,我们向 Books 表中插入一些数据,并查询数据。

-- 插入数据
INSERT INTO Books (BookID, Title, Author, PublishedYear) VALUES (1, 'SQL for Beginners', 'John Doe', 2020);

-- 查询数据
SELECT * FROM Books WHERE Author = 'John Doe';

3. 数据定义语言 (DDL) - 修改表结构

假设我们需要为 Books 表增加一个新列 Genre

ALTER TABLE Books ADD Genre NVARCHAR(50);

4. 数据控制语言 (DCL) - 控制访问权限

我们想要授予用户 Alice 查询 Books 表的权限。

GRANT SELECT ON Books TO Alice;

5. 事务控制语言 (TCL) - 管理事务

最后,假设一个借书记录的创建需要作为一个事务来处理。

BEGIN TRANSACTION;
    INSERT INTO BorrowRecords (RecordID, BookID, BorrowerName, BorrowDate, ReturnDate) VALUES (1, 1, 'Alice', '2021-01-01', '2021-01-15');
    UPDATE Books SET Quantity = Quantity - 1 WHERE BookID = 1;
COMMIT;

在这个事务中,我们向 BorrowRecords 表中添加一条记录,并更新 Books 表中的书籍数量。如果在执行过程中出现任何错误,整个事务将回滚,以保持数据的一致性。

阶段总结

这个实例展示了如何使用不同类型的 SQL 指令来管理一个简单的图书馆数据库。通过创建表、插入和查询数据、修改表结构、控制用户权限,以及处理复杂的事务,我们能够有效地管理和操作数据库中的信息。

在以上的例子中我们看到有很多的关键字,诸如:VALUES,FOREIGN,那么这些关键字是什么意思呢?

SQL Server关键字

程序员

在你列举的例子中,有哪些关键字?

在这里插入图片描述

在提供的例子中,使用了多个 SQL 关键字。这些关键字是 SQL 语法的核心组成部分,用于构造数据库操作的命令和语句。以下是例子中使用的关键字:

  1. CREATE:用于创建新的数据库对象,如表或索引。
  2. TABLE:指定操作的对象是表。
  3. PRIMARY KEY:定义表中的主键约束。
  4. INTNVARCHAR:数据类型关键字,用于定义列的数据类型。
  5. INSERT INTO:用于向表中插入新的数据行。
  6. SELECT:用于从一个或多个表中检索数据。
  7. FROM:指定 SELECTUPDATEDELETE 操作的表。
  8. WHERE:用于指定查询或操作的条件。
  9. ALTER:用于修改现有数据库对象的结构。
  10. ADD:与 ALTER TABLE 一起使用,用于向表中添加新列。
  11. GRANT:用于给用户授权访问数据库的特定权限。
  12. ON:与 GRANTSELECTJOIN 等语句一起使用,指定操作的对象或条件。
  13. TO:在 GRANT 语句中使用,指定权限授予的目标用户或角色。
  14. BEGIN TRANSACTION:标记事务的开始。
  15. UPDATE:用于更新表中的现有数据。
  16. SET:与 UPDATE 一起使用,指定要更新的列和新值。
  17. COMMIT:用于提交事务,使事务中所有操作成为永久性更改。

这些关键字在 SQL 语言中扮演着构建和执行数据库操作的基础角色。通过组合这些关键字,可以构建从简单到复杂的各种数据库查询和命令。

这样看其实很累的,那么有没有更简便的办法呢?

我们试着输入以下指令
程序员

将这些关键字分类列表展示,列表格式如下
关键字类型| 关键字 | 作用 | 应用场景
数字类型 | INT | ··· | ···
不同的类型以不同的表格返回,格式不变

在这里插入图片描述

按照您提供的格式,我将例子中提及的 SQL 关键字分类并列出它们的作用和应用场景。由于这些关键字涵盖了不同的方面,我将它们分为几个类别:

数据定义语言 (DDL)

关键字类型关键字作用应用场景
DDLCREATE创建新的数据库对象(如表、索引)创建新表或其他数据库结构
DDLTABLE指定操作的对象是表CREATEALTER 等语句一起使用
DDLALTER修改现有数据库对象的结构修改表结构,如添加或删除列
DDLADD向表中添加新列用于在现有表中添加新的列

数据类型

关键字类型关键字作用应用场景
数据类型INT整型数据类型存储整数值
数据类型NVARCHAR可变长度字符串类型存储需要国际化支持的文本数据

数据操作语言 (DML)

关键字类型关键字作用应用场景
DMLINSERT INTO向表中插入新数据向表中添加新行
DMLSELECT从一个或多个表中检索数据查询表中的数据
DMLUPDATE更新表中的现有数据修改表中的数据
DMLDELETE删除表中的数据从表中移除数据
DMLSET指定更新操作中列的新值UPDATE 语句一起使用
DMLVALUES指定 INSERT 语句的数据值在插入数据时指定列的值
DMLFROM指定 SELECT 操作的表指定要查询的数据表
DMLWHERE指定查询或操作的条件SELECTUPDATEDELETE 中筛选数据

约束和关系

关键字类型关键字作用应用场景
约束PRIMARY KEY定义表的主键约束用于唯一标识表中的每一行
约束FOREIGN KEY定义外键约束确保引用的完整性,引用另一张表的键

数据控制语言 (DCL)

关键字类型关键字作用应用场景
DCLGRANT授予用户访问权限授予用户对数据库对象的访问权限

事务控制语言 (TCL)

关键字类型关键字作用应用场景
TCLBEGIN TRANSACTION开始一个新的事务控制一系列操作作为单个工作单位进行
TCLCOMMIT提交当前事务确认事务中的所有操作

这些分类提供了一个对 SQL 关键字及其作用和应用场景的概览,有助于理解它们在数据库操作中的不同角色和用途。

边学边练

程序员

根据以上指令,补充以必要的其他指令,写一段SQL语句,要求,逻辑完整且包含上表中所有指令,在这段SQL语句中添加中文注释,便于初学者阅读

在这里插入图片描述

以下是一个包含上表中所有指令的 SQL 语句示例,用于 SQL Server。这段脚本演示了一个简单的数据库操作过程,包括创建表、插入数据、更新数据、查询数据、创建索引、删除数据和最终删除表。我在每个步骤中都加入了中文注释,以便初学者理解。

-- 使用特定数据库
USE myDatabase;

-- 创建新表
CREATE TABLE Employees (
    ID INT PRIMARY KEY,
    Name NVARCHAR(50),
    Age INT,
    Department NVARCHAR(50)
);

-- 向表中插入数据
INSERT INTO Employees (ID, Name, Age, Department) VALUES (1, 'Alice', 30, 'HR');
INSERT INTO Employees (ID, Name, Age, Department) VALUES (2, 'Bob', 35, 'Finance');
INSERT INTO Employees (ID, Name, Age, Department) VALUES (3, 'Charlie', 40, 'IT');

-- 更新表中的数据
UPDATE Employees SET Age = 31 WHERE Name = 'Alice';

-- 从表中选择数据
SELECT * FROM Employees;

-- 为表创建索引,提高查询性能
CREATE INDEX idx_department ON Employees(Department);

-- 删除表中的某些数据
DELETE FROM Employees WHERE Name = 'Charlie';

-- 使用JOIN操作来结合另一个表的数据(这里假设有另一个表Departments)
-- 注意:此操作假定存在一个名为Departments的表
SELECT Employees.Name, Employees.Age, Departments.DepartmentName
FROM Employees
JOIN Departments ON Employees.Department = Departments.ID;

-- 对查询结果进行分组
SELECT Department, COUNT(*) as NumberOfEmployees FROM Employees GROUP BY Department;

-- 对结果进行排序
SELECT * FROM Employees ORDER BY Age;

-- 筛选特定条件的数据
SELECT * FROM Employees WHERE Age > 30;

-- 开始一个事务
BEGIN TRANSACTION;
    -- 在事务中执行多个操作
    INSERT INTO Employees (ID, Name, Age, Department) VALUES (4, 'David', 28, 'HR');
    DELETE FROM Employees WHERE Name = 'Bob';
-- 提交事务
COMMIT;

-- 删除表
DROP TABLE Employees;

这段 SQL 脚本涵盖了基本的数据库操作,从创建和使用数据库表开始,到更新、查询、索引创建和删除数据,最后删除整个表。对于初学者来说,理解这些基本概念是学习 SQL 的重要第一步。

以上是较为基础的SQL指令的使用案列,看到这里的道友不妨拿出你的电脑,跟着敲一遍吧!

数据类型

看图说话

除了常见指令外,经常见到的当属数据类型了,如下图

在这里插入图片描述
我们从中可以看到,在这个SQL语句段中,刚开始就是一系列的对参数的数据类型进行定义,那么这些数据类型有什么含义呢?

对话AI

程序员

针对上图解释这段语句的含义

在这里插入图片描述

这段语句是 SQL Server 中的一个存储过程的定义。存储过程是一组为了执行特定任务而预编译的 SQL 语句。它们可以接受参数,执行复杂的操作,并返回结果。下面是对这个存储过程 SPDONGSHAN002014 的参数及其数据类型的解释:

  1. 参数和数据类型:

    • @FDONGSHAN019001, @FDONGSHAN019002, …, @FDONGSHAN019015, @SDONGSHAN019PID, @SDONGSHAN019UID, @FDONGSHAN016001: 这些参数都使用 VARCHAR(255) 数据类型。VARCHAR 是一个变长字符串类型,255 表示字符串最大长度为 255 个字符。这种类型适用于文本或字符串数据。

    • @FDONGSHAN019007, @FDONGSHAN019008: 这些参数使用 BIGINT 数据类型。BIGINT 是一个大范围的整数类型,通常用于存储非常大的整数值。

    • @FDONGSHAN019011, @FDONGSHAN019012, @FDONGSHAN019013: 这些参数使用 NUMERIC(18,4) 数据类型。NUMERIC 类型用于精确数值,18 表示数字的总位数,而 4 表示小数点后的位数。这种类型通常用于需要高精度的财务和科学计算。

    • @OPTTYPE: 使用 INT 类型,这是一个整数数据类型,用于存储普通范围的整数。

  2. 输出参数:

    • @PER001: 使用 SMALLINT 输出类型。SMALLINT 是一个较小范围的整数类型,用于存储较小范围的整数值。
    • @PER002: 使用 VARCHAR(255) 输出类型。这表明这个输出参数是一个字符串,最大长度为 255 个字符。
  3. 存储过程的作用:

    • 存储过程的具体逻辑没有在代码段中给出,但从参数列表来看,它可能涉及对数据库中的一些记录进行操作,例如添加、更新或删除记录。参数的多样性表明这个存储过程可能执行复杂的任务,并处理多种数据类型。
  4. 应用场景:

    • 存储过程通常用于封装复杂的逻辑,提高代码重用性,减少网络通信量,提高性能。在这个例子中,由于参数众多且类型多样,SPDONGSHAN002014 可能用于处理涉及多个字段和数据类型的复杂业务逻辑。

总结来说,这段存储过程的定义展示了如何在 SQL Server 中创建一个接受多种数据类型的存储过程,以及如何定义输出参数。这种多参数和多数据类型的结构通常用于执行复杂的数据库操作。

由此,我们见到了一般情况下比较常见的数据类型,只有这些吗?别的数据类型长什么样?又用在什么地方呢?

数据类型我知道

程序员

列举中SQL中常见的数据类型,以列表形式返回
列表格式如下
数据类型 | 作用 | 应用场景
INT | ··· | ···

在这里插入图片描述

在 SQL 中常见的数据类型及其作用和应用场景如下:

数据类型作用应用场景
INT存储整数。用于不需要小数的数字,如年龄、数量等。
BIGINT存储更大范围的整数。用于大范围的数值,比如人口统计。
SMALLINT存储小范围的整数。用于较小数值范围的情况,如楼层号等。
TINYINT存储非常小的整数。用于非常小的数值,如一个小组的人数。
DECIMAL存储精确的小数。金融计算,需要精确小数的场景。
NUMERICDECIMAL 相同,存储精确的小数。DECIMAL
FLOAT存储近似的小数。需要存储大范围浮点数时使用。
REAL存储近似的小数,比 FLOAT 精度低。用于需要较小范围的浮点数。
VARCHAR存储可变长度的字符串。用于文本或字符数据,长度可变。
CHAR存储固定长度的字符串。用于长度固定的文本。
TEXT存储大量文本。存储大型文本,如文章或日志等。
DATE存储日期。用于存储日期数据,不包括时间。
DATETIME存储日期和时间。用于需要同时存储日期和时间的情况。
TIME存储时间。只存储时间的场景。
BIT存储二进制数字,通常用于存储布尔值(0 或 1)。常用于存储真/假值。
BLOB存储二进制大对象,如图像、音频或其他多媒体文件。存储大型二进制数据。

这些数据类型在 SQL 数据库设计和操作中扮演着关键角色,确保了数据的准确性和效率。根据应用场景的不同,选择合适的数据类型是数据库设计的重要环节。

细心的同学已经注意到了,刚才明明看到这些关键字后面跟了个(18,3)这样的字样,怎么没看到,别急,就在下方

程序员

跟在这些数据类型关键字后面括号中的数字表示什么意思?

括号里的神秘数字

在这里插入图片描述

在 SQL 中,跟在数据类型关键字后面的括号中的数字具有特定的意义,通常表示该数据类型的大小或长度。不同数据类型的这些数字代表的意义也各不相同。以下是一些常见数据类型及其数字含义的概述:

  1. VARCHAR(n)CHAR(n):

    • 对于字符串类型如 VARCHARCHAR,括号中的数字 n 表示字符的最大数量。例如,VARCHAR(50) 表示可变长度的字符串,最多包含 50 个字符;CHAR(10) 表示固定长度的字符串,恒定为 10 个字符。
  2. DECIMAL(p, s)NUMERIC(p, s):

    • 对于 DECIMALNUMERIC 类型,p(精度)表示数字中允许的最大总位数(包括小数点两侧),而 s(标度)表示小数点后面的位数。例如,DECIMAL(10, 2) 表示数字最多有 10 位,其中小数部分最多 2 位,整数部分最多 8 位。
  3. FLOAT(n)REAL:

    • 对于 FLOAT 类型,n 表示精度,即所需的近似数字的位数。REALFLOAT 的特定子类型,通常有固定的精度。
  4. BINARY(n)VARBINARY(n):

    • 对于二进制类型如 BINARYVARBINARYn 表示字节的数量。BINARY(10) 表示固定长度为 10 字节的二进制数据;VARBINARY(100) 表示最多 100 字节的可变长度二进制数据。
  5. BIT(n):

    • 对于 BIT 类型,n 表示存储的位数。例如,BIT(1) 常用于存储布尔值,只能是 0 或 1。

这些数字的设定对于优化数据库存储空间、确保数据完整性和性能调优非常重要。选择合适的长度或大小有助于有效地使用数据库资源,并确保数据满足应用的需求。

还是那句话,光看没用,得用了才记得住,上才艺

边练边学

当然,我们可以通过创建一个简单的数据库示例来演示不同数据类型的应用。在这个示例中,我们将创建一个名为 School 的数据库,其中包含一个 Students 表和一个 Courses 表。我将一步一步地解释每个数据类型的应用,并提供相应的 SQL 代码,以便初学者能够跟着敲击键盘,同时理解这些数据类型的含义。

首先,让我们创建 Students 表:

CREATE TABLE Students (
    StudentID INT PRIMARY KEY,           -- INT: 用于存储整数。
    FirstName VARCHAR(50),              -- VARCHAR(50): 可变长度字符串,最多50个字符。
    LastName VARCHAR(50),
    DateOfBirth DATE,                   -- DATE: 仅存储日期。
    Gender CHAR(1),                     -- CHAR(1): 固定长度的字符,这里用于性别,M或F。
    PhoneNumber VARCHAR(15)             -- 可变长度字符串,这里用于电话号码。
);

解释:

  • StudentIDINT 类型,适合用作主键,因为学生ID是整数。
  • FirstNameLastNameVARCHAR(50) 类型,用于存储最多 50 个字符的名字和姓氏。
  • DateOfBirthDATE 类型,适合存储生日日期。
  • GenderCHAR(1) 类型,用于存储单个字符,如 ‘M’ 或 ‘F’。
  • PhoneNumberVARCHAR(15) 类型,可以存储格式化的电话号码。

接着,创建 Courses 表:

CREATE TABLE Courses (
    CourseID INT PRIMARY KEY,            -- INT: 用于存储整数。
    Title VARCHAR(100),                 -- VARCHAR(100): 可变长度字符串,最多100个字符。
    CreditHours TINYINT,                -- TINYINT: 存储小的整数,如学分小时数。
    CourseFee DECIMAL(10, 2)             -- DECIMAL(10, 2): 存储金额,最多10位,小数点后2位。
);

解释:

  • CourseIDINT 类型,作为课程的唯一标识符。
  • TitleVARCHAR(100) 类型,用于存储课程标题。
  • CreditHoursTINYINT 类型,因为学分小时通常是较小的整数。
  • CourseFeeDECIMAL(10, 2) 类型,适合存储课程费用,需要精确到小数点后两位。

这个示例展示了如何使用不同的 SQL 数据类型来定义表和字段。初学者可以尝试自己创建这些表,并思考每种数据类型的用途和选择的原因。这是理解和应用 SQL 数据类型的一个很好的实践方式。

总结

今天的学习就到此结束了,感谢大家的喜爱,喜欢本文的话,给博主点个赞吧!记得收藏加关注哦!道友们的支持就是我更新的源动力!
回到顶部

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1410796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux sudo与/etc/sudoers

sudo介绍 sudo命令可以让普通用户在执行需要超级用户权限的命令时,临时提升为超级用户。例如,普通用户可以使用sudo执行系统管理任务,如安装软件、修改系统配置等。访问控制:sudo命令通过sudoers文件中的配置,可以对用…

企业软件项目成果-图像识别

下面图像识别仅仅使用了OpenCV库而已,并没有涉及深度学习、机器学习。 整盘样本的拍照识别结果(识别准确率达100%): 宫颈刷图像识别的测试结果(识别准确率达100%):

基于51单片机的智能烘干机设计

基于51单片机的智能烘干机设计[proteus仿真] 温湿度检测系统这个题目算是课程设计和毕业设计中常见的题目了,本期是一个基于51单片机的智能烘干机设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文章 2¥&#x…

基于springboot在线学习平台源码和论文

在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括学习平台的网络应用,在外国学习平台已经是很普遍的方式,不过国内的管理平台可能还处于起步阶段。学习平台具有学习信息管理功能的选择。学习平台采用ja…

jetson-inference----docker内运行分类任务

系列文章目录 jetson-inference入门 jetson-inference----docker内运行分类任务 文章目录 系列文章目录前言一、进入jetson-inference的docker二、分类任务总结 前言 继jetson-inference入门 一、进入jetson-inference的docker 官方运行命令 进入jetson-inference的docker d…

C++PythonC# 三语言OpenCV从零开发(2):教程选择

文章目录 相关专栏前言视频教学和官方文档视频教程OpenCV 官方教程最终选择我的最终选择 相关专栏 C&Python&Csharp in OpenCV 前言 OpenCV 有官方的教程和简单的视频教程: OpenCV 官方教程 B站也有相关的视频教学 OpenCV4 C 快速入门视频30讲 - 系列合集 …

使用Ollama本地部署大模型

Ollama 是一个简明易用的本地大模型运行框架,目前已经有 32 K star。随着围绕着 Ollama 的生态走向前台,更多用户也可以方便地在自己电脑上玩转大模型了,使用 Ollama 本地部署大模型在 mac 上尤其简单 GitHub地址:https://github…

[每日一题] 01.25 - 子数整数

子数整数 k int(input()) flag False for i in range(10000,30001):a,b,c [int(str(i)[j:j 3]) for j in range(3)]if a % k 0 and b % k 0 and c % k 0:print(i)flag Trueif not flag:print(No)

文旅AI交互数字人,提升景区数字化导览服务体验

随着数字化的普及,文化旅游逐渐走向数字化,通过数字人技术手段对文化旅游资源进行整合与开发。 AI交互数字人可以部署于交互式终端设备和移动端,可以为游客提供“面对面”的语音交互,提供路径规划、游览路线推荐、景点讲解等服务&…

[小程序]页面跳转

一、页面跳转 1.声明式导航 使用<navigate>组件实现&#xff08;固定式&#xff09;&#xff0c;需要指定url属性(跳转位置)和open-type属性(跳转方式) ①跳转tabBar页面 open-type属性必须指定类型为switchTab <navigator url"/pages/index/index" open-t…

golang整合rabbitmq,创建交换机并绑定队列

1,如果要开发消息队列,需要创建交换机和队列,通常有2中方式创建,1种是在面板直接创建 2,第二种就是在代码中创建,这里 展示的是go语言代码中创建rabbitmq package mainimport ("fmt""log""github.com/streadway/amqp" )func main() {// 连接R…

将本地项目打包成docker镜像的流程

前置条件&#xff1a; docker 守护进程已经开启 Python3 项目已经编写完成&#xff0c;且可以在本地正常运行 生成docker images 生成项目需引用的包 pip freeze > requirements.txt 确认目录结构配置dockerfile FROM python:3.9.6#代码添加当前目录所有内容到code文件…

无限学模式-“科研创新的加速器:全面掌握ChatGPT,推动研究方法和工作模式现代化!“

2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

前端面试题:topK算法

当面试官问你&#xff0c;在不考虑数字越界的情况下&#xff0c;有1亿条搜索数据&#xff0c;让你从中找到前100条频率高的数据你会怎么实现&#xff1f; 当时&#xff0c;我的第一印象是把数据分组&#xff0c;分别求前多少条&#xff1f;但是没法保证每组的前100条或者多少条…

jQuery语法遍历(过滤)

1、.eq&#xff08;&#xff09;: 减少匹配元素的集合为指定的索的哪一个元素。&#xff08;定位一个元素&#xff09; 法一 <script> $(document).ready(function(){ $("li").eq(1).css("background","red"); …

蓝桥杯备赛 week 1 —— DP 背包问题

目录 &#x1f308;前言&#x1f308;&#xff1a; &#x1f4c1; 01背包问题 分析&#xff1a; dp数组求解&#xff1a; 优化&#xff1a;滚动数组&#xff1a; &#x1f4c1; 完全背包问题 &#x1f4c1; 总结 &#x1f308;前言&#x1f308;&#xff1a; 这篇文章主…

在使用springboot框架式的的script无法通过${}来获取值

今天使用springboot框架做项目&#xff0c;想着来实现一下搜索的下拉框回显功能&#xff0c;然后就一直在报错误&#xff0c;关键是报的错误牛头不对马嘴&#xff0c;检查了一下后端代码&#xff0c;发现没什么问题&#xff0c;就把目光聚焦了.jsp页面的代码 <script type&…

shared_ptr 与 unique_ptr 的转换 笔记

推荐B站文章&#xff1a; 6.shared_ptr与unique_ptr_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV18B4y187uL?p6&vd_sourcea934d7fc6f47698a29dac90a922ba5a3我的往期文章&#xff1a; 独占指针&#xff1a;unique_ptr 与 函数调用-CSDN博客https://blog.csdn.n…

长度计算方法----sizeof与strlen的对比

sizeof sizeof是用来计算内存大小的一种操作符&#xff0c;它只计算内存的大小&#xff0c;无论内存中存放的是什么类型的数据。 单位&#xff1a;字节 举例&#xff1a; #inculde <stdio.h> int main() {int a 10;printf("%d\n", sizeof(a));//a的括号可…

API、DOM、获取元素、事件、文本节点、属性操作

单线程 进程 cpu 资源分配的最小单位一个进程可以有多个线程 线程 cpu调度的最小单位线程建立在进程的建立基础上的一次程序的运行单位 线程分为&#xff1a;单线程 多线程 单线程&#xff1a;js是单线程 &#xff08;同一个时间只能完成一个任务&#xff09;多线程&…