006集——where语句进行属性筛选——arcgis

         在arcgis中, dBASE 文件除了 WHERE 语句以外,不支持 其它 SQL 命令。选择窗口如下:

        首先,我们了解下什么是where语句。

        WHERE语句是SQL语言中使用频率很高的一种语句。它的作用是从数据库表中选择一些特定的记录行来进行操作。WHERE语句以关键词“WHERE”开头,后接所需的查询条件,可以是简单的等式、不等式等,也可以是复杂的逻辑表达式。通过WHERE语句,可以根据不同的条件进行灵活的数据查询操作。

        了解WHERE首先需要了解SQL。

SQL是什么

结构化查询语言

        SQL,全称为结构化查询语言(Structured Query Language),是一种用于与关系数据库进行通信的标准语言。它允许用户执行各种任务,如更新数据库中的数据、从数据库中检索数据、查询、更新和管理关系数据库系统。SQL语句可以执行数据库操作,如定义和删除模式、定义和修改基本表、建立和删除索引、数据更新、定义和查询视图等。

        SQL语言虽然被广泛使用,但它并不是严格意义上的编程语言,而是一种对数据进行操作的语言。它具有特定的语法结构,使得用户可以灵活地处理数据。此外,SQL也是数据库脚本文件的常见扩展名。

        接下来继续讲WHERE。

WHERE语句作用于数据库表中的记录行,可以从表中选择出需要的数据行进行操作。在SQL语言中,可以使用WHERE语句实现单表的选取、多表关联查询、数据筛选等功能。

        在 ArcGIS 中,查询表达式用于选择要素和表记录的子集。ArcGIS 中的查询表达式符合标准的 SQL 表达式。例如,您可以在使用按属性选择工具或查询构建器 对话框时使用此语法来设置图层定义查询。

        本 主题将介绍如何构建基本的 WHERE 子句表达式。如果您刚刚开始使用 SQL,本主题会对您有所帮助。要获取更加详细的参考,请参阅在 ArcGIS 中使用的查询表达式的 SQL 参考。

        简单的 SQL 表达式

        SELECT * FROM 构成了 SQL 表达式的第一部分,系统会自动为您提供该语句。

        查询表达式使用跟随在 Select * From <图层或数据集> Where 子句之后这样的一般格式(例如,跟随在 SELECT * FROM <图层名称> WHERE 之后的 SQL 表达式部分)。

以下是 ArcGIS 查询表达式的一般格式:

<字段名> <运算符> <值或字符串>

对于组合查询,使用以下格式:

<字段名> <运算符> <值或字符串> <连接符> <字段名> <运算符> <值或字符串> ...

也可以使用括号 () 来定义组合查询中的运算顺序。

由于您是将列作为一个整体进行选择的,因此不能将 SELECT 限制为仅返回相应表中的部分列,原因是 SELECT * 语法是通过硬编码实现的。因此,除非在使用子查询时,否则无法在 ArcGIS 的 SQL 查询中使用 DISTINCT、ORDER BY 和 GROUP BY 等关键字。有关子查询的信息,请参阅在 ArcGIS 中使用的查询表达式的 SQL 参考。

        在从中构建查询表达式的多数 ArcGIS 对话框中,都会为您提供图层或表的名称(或者从下拉列表中选择)。例如:

表达式的下一个部分是 WHERE 子句,这是您必须构建的部分。基本的 SQL WHERE 子句如下所示

STATE_NAME = 'Alabama'

这样会在名为 STATE_NAME 的字段中选择包含“Alabama”的要素。

SQL 语法

所使用的 SQL 语法因数据源的不同而有所差异。每个 DBMS 都拥有各自的 SQL 方言。

要查询基于文件的数据(包括文件地理数据库、coverage、shapefile、INFO 表、dBASE 表、CAD 和 VPF 数据),请使用支持 SQL 功能的子集的 ArcGIS SQL 方言。要查询个人地理数据库,请使用 Microsoft Access 语法。要查询 ArcSDE 地理数据库,请使用基础 DBMS(即:Oracle、SQL Server、DB2、Informix 或 PostgreSQL)的 SQL 语法。

从中创建 SQL WHERE 子句的 ArcGIS 对话框会帮助您对所查询的数据库使用正确的语法。它们利用适当的分隔符列出正确的字段名称和值。而且还为您选择相关的 SQL 关键字和运算符。

搜索字符串

字符串必须始终用单引号括起。例如:

STATE_NAME = 'California'

表达式中的字符串区分大小写,但在查询个人地理数据库中的要素类和表时除外。要在其他数据格式中进行不区分大小写的搜索,您可使用 SQL 函数将所有值转换为相同的大小写形式。对于基于文件的数据源(如地理数据库或 shapefile),可使用 UPPER 或 LOWER 函数。

例如,以下表达式将选择姓氏存储为 Jones 或 JONES 这两种形式的客户:

UPPER(LAST_NAME) = 'JONES'

其他数据源也有类似的函数。例如,个人地理数据库中的 UCASE 和 LCASE 函数可执行同样的操作。

可使用 LIKE 运算符(而不是 = 运算符)来构建部分字符串搜索。例如,以下表达式将从美国州名称中选择 Mississippi 和 Missouri:

STATE_NAME LIKE 'Miss%'

% 表示其位置可以是任意数量的任何字符:一个字符、一百个字符或无字符。此外,如果您希望在查询时通配符仅代表一个字符,则可使用“_”。

例如,以下表达式将找到 Catherine Smith 和 Katherine Smith:

OWNER_NAME LIKE '_atherine smith'

上述通配符适用于任何基于文件的数据或 ArcSDE 地理数据库数据。在查询个人地理数据库时,使用通配符 * 来表示任意数量的字符,而使用 ? 来表示一个字符。

在按属性选择 和查询构建器 对话框中,通配符以按钮的形式显示。您可单击相应的按钮来将通配符输入到正在构建的表达式中。构建查询时,仅显示适用于所查询的图层或表的数据源的通配符。

如果在字符串中同时使用通配符和 = 运算符,则此字符将被视为字符串的一部分,而不会将其视为通配符。

还可使用大于 (>)、小于 (<)、大于等于 (>=)、小于等于 (<=) 以及 BETWEEN 运算符,来基于排序顺序选择字符串值。例如,以下表达式将选择 coverage 中名称首字母为 M 到 Z 的所有城市:

CITY_NAME >= 'M'

查询字符串时,还可使用不等于 (<>) 运算符。

如果字符串包含单引号,您首先需要使用另一单引号作为转义字符。例如:

NAME = 'Alfie''s Trough'

了解有关通配符的详细信息

NULL 关键字

可使用 NULL 关键字来选择指定字段为空值的要素和记录。NULL 关键字的前面始终使用 IS 或 IS NOT。

例如,要查找尚未输入 1996 年人口的城市,可使用

POPULATION96 IS NULL

或者,要查找已输入 1996 年人口的城市,可使用

POPULATION96 IS NOT NULL

搜索数字

可使用等于 (=)、不等于 (<>)、大于 (>)、小于 (<)、大于等于 (>=)、小于等于 (<=) 和 BETWEEN 运算符查询数字。

例如

POPULATION96 >= 5000

无论区域设置如何定义,所列出的数值将始终使用点作为小数分隔符。在表达式中不能使用逗号作为小数分隔符或千位分隔符。

计算

可使用算术运算符 +、-、* 和 / 在查询中加入计算:

可在字段和数字之间进行计算。

例如:

AREA >= PERIMETER * 100

也可在字段之间进行计算。

例如,要查找人口密度小于等于每平方英里 25 人的所有国家,可使用以下表达式:

POP1990 / AREA <= 25

运算符优先级

表达式求值顺序遵照标准的运算符优先级规则。例如,求值时,首先计算括号内部的表达式部分,然后再计算其他部分。

示例

HOUSEHOLDS > MALES * POP90_SQMI + AREA

与以下表达式的求值顺序不同

HOUSEHOLDS > MALES * (POP90_SQMI + AREA)

可单击添加括号,然后输入括号内部的表达式,也可高亮显示要放入括号内部的现有表达式,然后单击括号按钮

将其括起。

组合表达式

通过使用 AND 和 OR 运算符将表达式组合在一起,可构建复杂表达式。

例如,以下表达式将选择面积超过 1,500 平方英尺的所有房屋和一个可容纳三台或更多汽车的车库。

AREA > 1500 AND GARAGE > 3

如果使用 OR 运算符,OR 运算符两侧的两个表达式中必须至少有一个为真时才会选择记录。

例如:

RAINFALL < 20 OR SLOPE > 35

在表达式开头使用 NOT 运算符可查找与指定表达式不匹配的要素或记录。

例如:

NOT STATE_NAME = 'Colorado'

NOT 表达式可与 AND 和 OR 组合。

例如,以下表达式将选择除 Maine 以外的所有新英格兰州。

SUB_REGION = 'New England' AND NOT STATE_NAME = 'Maine'

子查询

子查询是嵌套在另一个查询中的查询,仅受地理数据库数据源支持。子查询可用于应用谓词或聚合函数,或将数据与存储在另一张表中的值进行比较。例如,以下查询只会选择未列在表 indep_countries 中的国家:

COUNTRY_NAME NOT IN (SELECT COUNTRY_NAME FROM indep_countries)

有关详细信息,请参阅在 ArcGIS 中使用的查询表达式的 SQL 参考。

查询日期

从中创建 SQL WHERE 子句的 ArcGIS 对话框会帮助您对所查询的数据库使用正确的数据语法。大多数情况下,只需单击字段、运算符和值,即可生成正确的语法。

在单表查询中,可以通过WHERE语句根据特定条件选取符合要求的记录行。例如:

SELECT * FROM tableName WHERE column1="xxx";

本主题将介绍 ArcGIS 中的选择表达式所用的常规查询的各个元素。ArcGIS 中的查询表达式使用常规 SQL 语法。

警告:

SQL 语法不适用于使用字段计算器计算字段。

字段

在 SQL 表达式中指定字段时,如果该字段名可能产生岐义(比如与 SQL 保留关键字相同),则需提供一个分隔符。

由于存在许多保留关键字,并且后续版本中还能添加新的保留关键字,所以建议您始终使用分隔符将字段名称括起来。

DBMS 和 DBMS 之间的字段名分隔符有所不同。如果要查询任何基于文件的数据(例如,文件地理数据库、ArcSDE 地理数据库数据,或者 ArcIMS 要素类或影像服务子图层中的数据),可以将字段名称用双引号括起:

"AREA"

如果要查询个人地理数据库数据,可以将字段名称用方括号括起:

[AREA]

对于个人地理数据库栅格数据集,应将字段名称用双引号括起:

"AREA"

对于文件地理数据库数据,您可以将字段名称用双引号括起,但是通常不需要。

AREA

字符串

查询中的字符串必须始终用单引号括起。例如:

STATE_NAME = 'California'
  • 表达式中的字符串区分大小写。对于要素类和表,可以用 UPPER 或 LOWER 函数设置所选项的大小写。例如:
    UPPER(STATE_NAME) = 'RHODE ISLAND'
  • 个人地理数据库要素类和表中的字符串不区分大小写。如果需要,可以使用与 UPPER 或 LOWER 等效的 UCASE 和 LCASE 函数。
  • 如果字符串包含单引号,您首先需要使用另一单引号作为转义字符。例如:
    NAME = 'Alfie''s Trough'

进行部分字符串搜索所用的通配符还取决于所要查询的数据源。例如,在基于文件的或 ArcSDE 地理数据库数据源中,以下表达式将从美国州名称中选择 Mississippi 和 Missouri:

STATE_NAME LIKE 'Miss%'

百分号 (%) 表示这个位置可以是任意字符,即 1 个字符、100 个字符或者无字符均可。在查询个人地理数据库时,使用通配符“*”代表任意数量的字符,而使用“?”来代表一个字符。

字符串函数可用来格式化字符串。例如,LEFT 函数将返回字符串左侧特定数量的字符。在以下示例中,查询将返回以字母 A 开头的所有州:

LEFT(STATE_NAME,1) = 'A'

有关支持的函数列表,请参阅 DBMS 文档。

数值

无论您的区域设置如何,小数点 (.) 将始终用作小数分隔符。在表达式中不能使用逗号作为小数分隔符或千位分隔符。

可以使用等于 (=)、不等于 (<>)、大于 (>)、小于 (<)、大于等于 (>=) 和小于等于 (<=) 和 BETWEEN 运算符查询数值。例如:

POPULATION >= 5000

数值函数可用来格式化数值。例如,ROUND 函数可将文件地理数据库中的数值四舍五入到指定的小数位数:

ROUND(SQKM,0) = 500

有关支持的数值函数列表,请参阅 DBMS 文档。

日期和时间

基本规则

地理数据库数据源将日期保存在日期时间字段中。但是,ArcInfo coverage 和 shapefile 不是这样。

因此,下面所列的大部分查询语法都包含对时间的引用。在某些情况下,当已知字段只包含日期时,查询中的时间部分可以安全地省略掉;而在其他情况下则需要声明,否则查询将返回语法错误。

ArcMap 日期格式的主要目的是存储日期,不是时间。当基础数据库实际上使用日期时间字段时,可以在此字段中只存储时间,但最好不要这样做。查询时间会比较麻烦;例如,12:30:05 p.m. 会被存储为 '1899-12-30 12:30:05'。

注:

基础数据库中日期的存储会参考 1899 年 12 月 30 日 00:00:00。这适用于此处所列出的所有数据源。

本部分内容的目的只是帮助您查询日期值,而非时间值。当存储了包含非空时间的日期(例如 1999 年 1 月 12 日 04:00:00)后,只查询该日期将不会返回这条记录,因为当向一个日期时间字段只传递日期时,系统会自动用零填充时间,所以将只检索该日期下时间为 12:00:00 a.m 的记录。

属性表内会以用户友好的格式来显示日期和时间(取决于用户的区域设置)而不是采用基础数据库的格式。这在大多数情况下都很适用,但也有一些缺点:

  • SQL 查询中显示的字符串可能会与表中显示的值稍有不同,尤其是当包含时间时。例如,输入的时间 00:00:15 将在属性表中(当您的区域设置为美国时)显示为 12:00:15 a.m.,对应于查询语法将是 Datefield = '1899-12-30 00:00:15'。
  • 属性表在您保存编辑之前无法知道是何种基础数据源。它首先会尝试将输入的值格式化为符合自己的格式,然后在保存编辑内容时,会再尝试对生成的值进行调整以便存入数据库。因此,您可以在 shapefile 中输入一个时间值,但您会发现当您保存编辑内容时该值会被丢弃。随后该字段将包含值 '1899-12-30' 并显示 12:00:00 a.m. 或其他等效的值(取决于您的区域设置)。

1.1条件查询

给查询语句设置条件,如果条件成立,则数据被返回,如果条件不成立,数据被忽略。

所有的条件成立情况,我们称为True,所有的条件不成立情况我们称为False。

使用where条件查询可以对表中的数据进行筛选,条件成立的记录会出现在结果集中。

1.2where语句支持的运算符:

  1. 比较运算符
  2. 逻辑运算符
  3. 模糊查询
  4. 范围查询
  5. 空判断

2. 比较运算符查询

  • 等于: =
  • 大于: >
  • 大于等于: >=
  • 小于: <
  • 小于等于: <=
  • 不等于: != 或 <>

3. 逻辑运算符查询

  • and 逻辑与: 同真即真
  • or 逻辑或: 同假即假
  • not 逻辑非: 真变假,假变真
# 逻辑运算符
# and :逻辑与  同真即真
# true and false >> false
# true and true >> true
# false and false >> false
# or : 逻辑或  同假即假
# true or false >> true
# true or true >> true
# false or false >> false
# not :逻辑非  真变假,假变真

4. 模糊查询

  • like是模糊查询关键字
  • %表示任意多个任意字符
  • _表示一个任意字符

5. 范围查询

  1. between .. and .. 表示在一个连续的范围内查询
  2. in 表示在一个非连续的范围内查询

6. 空判断查询

  1. 判断为空使用: is null
  2. 判断非空使用: is not null

注意:

  1. 不能使用 where height = null 判断为空
  2. 不能使用 where height != null 判断非空
  3. null 不等于 '' 空字符串

7. 小结

  • 比较查询:< > <= >= = != <>
  • 逻辑查询
    • and 逻辑与: 同真即真
    • or 逻辑或: 同假即假
    • not 逻辑非: 真变假,假变真

  • 模糊查询: like
    • % 代表0个或者多个任意字符
    • _代表一个任意字符

  • 范围查询:
    • 连续范围: between 。。。 and 。。。 (包含左右边界)
    • 不连续范围: in 可以对字符型数据查询

  • 非空查询:
    • is null (判断是否为空)
    • is not null(判断是否不为空)

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

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

相关文章

[VulnHub靶机渗透] dpwwn: 1

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

Python 线性回归可视化 并将回归函数放置到图像上

import matplotlib.pyplot as plt import scipy import seaborn as sns# 加载内置的数据集 df sns.load_dataset(tips)#create regplot p sns.regplot(xtotal_bill, ytip, datadf)#calculate slope and intercept of regression equation slope, intercept, r, p, sterr sci…

Android:国际化弹出框

3.13 风格与主题、国际化 1、应用国际化 应用国际化&#xff0c;通过修改系统语言&#xff0c;应用显示语言跟着改变。 选择Locale,点击>>符号。 创建多个国家&#xff0c;地区strings.xml文件&#xff0c;有一个默认strings.xml文件&#xff0c;各个stirngs.xml中<…

C语言指针函数学习2

之前写过一篇指针函数的博文&#xff1b;复习再学习一下&#xff1b; 指针函数&#xff0c;是一个函数&#xff0c;它的返回值是指针类型&#xff1b; 之前写了一个指针函数&#xff0c;返回一个 int * 类型的指针&#xff1b;下面做一个程序&#xff0c;返回一个结构体指针&a…

【golang】23、gorilla websocket 源码:examples、数据结构、流程

文章目录 一、examples1.1 echo1.1.1 server.go1.1.2 client.go 1.2 command1.2.1 功能和启动方式1.2.2 home.html1.2.3 main.go 1.3 filewatch1.3.1 html1.3.2 serveHome 渲染模板1.3.3 serveWs1.3.4 writer() 1.4 buffer pool1.4.1 server1.4.2 client 1.5 chat1.5.1 server1…

【Java】ArrayList和LinkedList的区别是什么

目录 1. 数据结构 2. 性能特点 3. 源码分析 4. 代码演示 5. 细节和使用场景 ArrayList 和 LinkedList 分别代表了两类不同的数据结构&#xff1a;动态数组和链表。它们都实现了 Java 的 List 接口&#xff0c;但是有着各自独特的特点和性能表现。 1. 数据结构 ArrayList…

Leetcode刷题笔记题解(C++):64. 最小路径和

思路一&#xff1a;dfs深度优先搜索&#xff0c;然后取最小路径值&#xff0c;但是时间消耗较大&#xff0c;时间复杂度可能不满足&#xff0c;代码如下&#xff1a; class Solution { public:int res 1000000;int rows,cols;int minPathSum(vector<vector<int>>…

力扣面试题 05.06. 整数转换(位运算)

Problem: 面试题 05.06. 整数转换 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.通过将两个数进行异或操作求出两个数中不同的位(不同的位异或后为二进制1); 2.统计异或后不同的位的个数(即异或后二进制为1的个数) 复杂度 时间复杂度: O ( 1 ) O(1) O(1) 空间…

实现远程开机(电脑)的各种方法总结

一.为什么要远程开机 因为工作需要&#xff0c;总是需要打开某台不在身边的电脑&#xff0c;相信很多值友也遇到过相同的问题&#xff0c;出门在外&#xff0c;或者在公司&#xff0c;突然需要的一个文件存在家里的电脑上&#xff0c;如果家里有人可以打个电话回家&#xff0c…

基于SpringBoot+Vue的校园博客管理系统

末尾获取源码作者介绍&#xff1a;大家好&#xff0c;我是墨韵&#xff0c;本人4年开发经验&#xff0c;专注定制项目开发 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c;不进则退。学习如赶路&#xff0c;不能慢一步。 目录 一、项目简介 二、开发技术与环…

Maven之安装自定义jar到本地Maven仓库中

Maven之安装自定义jar到本地Maven仓库中 文章目录 Maven之安装自定义jar到本地Maven仓库中1. 命令行窗口安装方式1. 常用参数说明2. 安装实例 2. IDEA中安装方式3. 使用 1. 命令行窗口安装方式 安装指定文件到本地仓库命令&#xff1a;mvn install:install-file; 在windows的cm…

Docker-Learn(一)使用Dockerfile创建Docker镜像

1.创建并运行容器 编写Dockerfile&#xff0c;文件名字就是为Dockerfile 在自己的工作工作空间当中新建文件&#xff0c;名字为Docerfile vim Dockerfile写入以下内容&#xff1a; # 使用一个基础镜像 FROM ubuntu:latest # 设置工作目录 WORKDIR /app # 复制当前目…

Qt QVariant类应用

QVariant类 QVariant类本质为C联合(Union)数据类型&#xff0c;它可以保存很多Qt类型的值&#xff0c;包括 QBrush&#xff0c;QColor&#xff0c;QString等等&#xff0c;也能存放Qt的容器类型的值。 QVariant::StringList 是 Qt 定义的一个 QVariant::type 枚举类型的变量&…

IntelliJ IDEA 2023.3发布,AI 助手出世,新特性杀麻了!!

目录 关键亮点 对 Java 21 功能的完全支持 调试器中的 Run to Cursor&#xff08;运行到光标)嵌入选项 带有编辑操作的浮动工具栏 用户体验优化 Default&#xff08;默认&#xff09;工具窗口布局选项 默认颜色编码编辑器标签页 适用于 macOS 的新产品图标 Speed Sear…

Android中的MVVM

演变 开发常用的框架包括MVC、MVP和本文的MVVM&#xff0c;三种框架都是为了分离ui界面和处理逻辑而出现的框架模式。mvp、mvvm都由mvc演化而来&#xff0c;他们不属于某种语言的框架&#xff0c;当存在ui页面和逻辑代码时&#xff0c;我们就可以使用这三种模式。 model和vie…

WordPress突然后台无法管理问题

登录WordPress后台管理评论&#xff0c;发现点击编辑、回复均无反应。 尝试清除缓存、关闭CF连接均无效。 查看插件时发现关闭wp-china-yes插件可以解决问题。 后来又测试了下发现加速管理后台这项&#xff0c;在启用时会发生点击无效问题&#xff0c;禁用就好了&#xff0c;不…

npm 下载报错

报错信息 : 证书过期 (CERT_HAS_EXPIRED) D:\Apps\nodejs-v18.16.1\npx.cmd --yes create-next-app"latest" . --ts npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/create-next-app failed…

详解各种LLM系列|LLaMA 1 模型架构、预训练、部署优化特点总结

作者 | Sunnyyyyy 整理 | NewBeeNLP https://zhuanlan.zhihu.com/p/668698204 后台留言『交流』&#xff0c;加入 NewBee讨论组 LLaMA 是Meta在2023年2月发布的一系列从 7B到 65B 参数的基础语言模型。LLaMA作为第一个向学术界开源的模型&#xff0c;在大模型爆发的时代具有标…

CDN相关和HTTP代理

CDN相关和HTTP代理 参考&#xff1a; 《透视 HTTP 协议》——chrono 把这两个放在一起是因为容易搞混&#xff0c;我一开始总以为CDN就是HTTP代理&#xff0c;但是看了极客时间里透视HTTP协议的讲解&#xff0c;感觉又不仅于此&#xff0c;于是专门写下来。 先说结论&#xf…

C#中的浅度和深度复制(C#如何复制一个对象)

文章目录 浅度和深度复制浅度复制深度复制如何选择 浅度和深度复制 在C#中&#xff0c;浅度复制&#xff08;Shallow Copy&#xff09;和深度复制&#xff08;Deep Copy&#xff09;是两种不同的对象复制方式&#xff0c;满足不同的应用场景需求&#xff0c;它们主要区别在于处…