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

前言

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

目录

  • 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 数据类型的一个很好的实践方式。

总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

彩色图像处理之彩色图像分割的python实现——数字图像处理

原理 彩色图像分割是图像处理领域的一个重要技术,它旨在将一幅彩色图像划分为多个区域或对象。其基本原理包括以下几个方面: 像素特征的提取:彩色图像分割首先涉及到像素级的特征提取。在彩色图像中,常用的特征包括颜色、纹理和…

用大模型训练实体机器人,谷歌推出机器人代理模型

谷歌DeepMind的研究人员推出了一款,通过视觉语言模型进行场景理解,并使用大语言模型来发出指令控制实体机器人的模型——AutoRT AutoRT可有效地推理自主权和安全性,并扩大实体机器人学习的数据收集规模。在实验中,AutoRT指导超过…

HTML-表格

表格 1.基本结构 一个完整的表格由:表格标题、表格头部、表格主体、表格脚注,四部分组成 表格涉及到的标签: table:表格 caption:标题 thead:表格头部 tbody:表格主体 tfoot:表格注…

redis持久化之RDBAOF压缩

前引 1、redis持久化的文件是什么 dump.rdb appendonly.aof 2、这两中文件有什么异同 save 秒 1 alaways everysec no 3、文件存放的位置 dir ./ 4、默认的存放位置:命令启动的地方 dir 自定义的路径 rdb 和aof 文件 存放在同一个路径下面 5、rdb文件默认备份的策略是什么&…

每日一题——LeetCode1331.数组序号转换

方法一 排序哈希Map 首先用一个数组保存排序完的原数组,然后用一个哈希表保存各元素的序号,最后将原属组的元素替换为序号后返回。 var arrayRankTransform function(arr) {let set new Set(arr)let sortArrArray.from(set).sort((a,b)>a-b)let ma…

自学C语言-6

第6章 选择结构程序设计 顺序结构程序设计最简单,但通常无法解决生活中的选择性问题。选择结构程序设计需要用到一些条件判断语句,可实现的程序功能更加复杂,程序的逻辑性与灵活性也更加强大。 本章致力于使读者掌握使用if语句进行条件判断的…

【docker】解决docker overlay2目录占用大量磁盘空间,导致验证码出不来,报错Can‘t create output stream!

问题: 验证码出现Cant create output stream!报错信息 排查: 所在服务器磁盘使用率已经到达100%,经排查,服务器目录/var/lib/docker/overlay2占用大量磁盘空间, 解决: 使用【docker system prune】命令删…

怎么移除WordPress后台工具栏“新建”菜单?如何添加“新建文章”菜单?

默认情况下,WordPress后台顶部管理工具栏有左侧有一个“新建”菜单,而且还有下拉菜单文章、媒体、链接、页面和用户等,不过我们平时用得最多的就是“新建文章”,虽然可以直接点击“新建”,或点击“新建 – 文章”&…

AI Toolkit软件安装教程(附软件下载地址)

软件简介: 软件【下载地址】获取方式见文末。注:推荐使用,更贴合此安装方法! AI Toolkit是一款卓越的人工智能软件,专为企业和个人提供一体化的解决方案,助力其工作流程高效运转。该软件套件融合了多种顶…

Python脚本之操作Redis Cluster【三】

本文为博主原创,未经授权,严禁转载及使用。 本文链接:https://blog.csdn.net/zyooooxie/article/details/135485606 之前写了2篇 操作redis集群的 https://blog.csdn.net/zyooooxie/article/details/123760358 、 https://blog.csdn.net/zyo…

2021 Google Chrome RCE漏洞分析

一、复现环境: Win10 Google Chrome 86.0.4240.75 二、利用复现: 关闭沙箱安全使用命令进行关闭 ,在正常情况下,浏览器沙箱提供了一个受限制的执行环境,以防止恶意代码对用户系统的损害。关闭沙箱可能会导致浏览器执…

查询排序(1)

Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 前面介绍了在 SQL 限定查询中 WHERE 子句的运行顺序优先于 SELECT 子句,WHERE 子句确定数据行,SELECT 子句确定数据列。 也分别讲述了在 WHERE 子句中常用的运算…

相机拍摄基础

相机拍摄 1.索尼A7M3摄影机挡位 AUTO自动档,光圈快门自动调整。 P档半自动档,只能调整感光度,光圈快门随之变化。 A档,光圈优先,只能调整光圈值,快门随之变化。适合拍摄风景、人像。 S档,快…

SpringBoot整合redisson实现分布式锁

SpringBoot整合redisson实现分布式锁 本文主要通过 SpringBoot 整合 redisson 来实现分布式锁&#xff0c;并结合 demo 测试结果。 1、pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0…

【Linux】 开始使用 gcc 吧!!!

Linux 1 认识gcc2 背景知识3 gcc 怎样完成 &#xff1f;3.1 预处理预处理^条件编译 3.2 编译3.3 汇编3.4 链接 4 函数库5 gcc 基本选项Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读下一篇文章见&#xff01;&#xff01;&#xff01; 1 认识gcc 我们在windows环…

【LIBS】交叉编译TCPDUMP

目录 1. 安装编译工具2. 设置环境变量3. 编译libpcap3.1 安装依赖3.2 交叉编译 4. 编译TCPDUMP4.1 克隆仓库与生成构建环境4.2 静态链接LIBPCAP4.3 动态链接LIBPCAP4.4 构建与安装 5. 查看交叉编译结果5.1 文件布局 1. 安装编译工具 sudo apt-get install -y autoconf automak…

SaaS系统如何助力企业数字化转型

随着科技的快速发展&#xff0c;数字化转型已经成为企业适应市场变化、提高竞争力的必要手段。在这个过程中&#xff0c;SaaS&#xff08;软件即服务&#xff09;系统以其独特的优势&#xff0c;正在成为越来越多企业的首选。乔拓云SaaS系统作为这一领域的佼佼者&#xff0c;更…

谷歌出品!读懂 QUIC 协议:更快、更高效的通信协议

QUIC结构 QUIC协议模型如下图所示&#xff0c;其放弃了TCP∕IP网络中使用五元组(源IP,源端口,目的IP,目的端口,协议标识符)来唯一标识一条连接的方式,而使用一个全局唯一的随机生成的ID(即Connection ID) 来标识一条连接。 由低向上分层讨论QUIC协议&#xff1a; •UDP层:在U…

1990-2019年城市维度区域创新创业指数面板数据/地级市创新创业指数面板数据

1990-2019年城市维度区域创新创业指数面板数据/地级市创新创业指数面板数据 1、时间&#xff1a;1990-2019年 2、范围&#xff1a;地级市&#xff08;290&#xff09; 3、指标&#xff1a;序号、年份、城市码、城市、总维度&#xff1a;总量指数得分、人均得分、单位面积得分…

应用协议漏洞

应用协议漏洞 一、rsync rsync是Linux下一款数据备份工具&#xff0c;支持通过rsync协议、ssh协议进行远程文件传输。其中rsync协议默认监听873端口 1.未授权访问 打开靶场 判断漏洞是否存在 rsync rsync://目标ip:端口读取文件 rsync rsync://47.99.49.128:873/src/tmp/下…