SQL中的工会和工会之间的差异

工会和工会之间的主要区别在于他们如何处理重复记录。

工会和工会都以不同的方式处理重复。工会将结合两个或多个选择的语句以删除重复项,而工会都不会删除重复项,而是将所有记录(包括重复项)串联。

目录:

什么是SQL联合?

联盟 在SQL中,将结合两个或多个选定语句的结果,但将滤除结果集中表中的所有重复值。

句法:

SELECT column1, column2, column3, ...
FROM table1
WHERE condition
UNION
SELECT column1, column2, column3, ...
FROM table2
WHERE condition;

例子:

CREATE TABLE customers (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    city VARCHAR(50)
);
CREATE TABLE suppliers (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    city VARCHAR(50)
);
INSERT INTO customers (id, name, city) VALUES
(1, 'Bahadhur', 'Kolkata'),
(2, 'Hema', 'Tamil Nadu'),
(3, 'Chahar', 'Delhi'),
(4, 'Dan', 'Kerala');
INSERT INTO suppliers (id, name, city) VALUES
(1, 'Supplier A', 'Kolkata'),
(2, 'Supplier B', 'Tamil Nadu'),
(3, 'Supplier C', 'Delhi'),
(4, 'Supplier D', 'Kerala');
SELECT city FROM customers
UNION
SELECT city FROM suppliers;

输出:

什么是SQL的联合什么是SQL的联合

解释: 联盟 查询将两个数据表组合为一个。在此示例中,联合查询将两个表的城市组合在一起,删除了重复项,并显示了独特的价值。

SQL中的联盟是什么?

联盟全部 与工会相同的工作;它结合了从选择语句中的所有结果数据,但不会从结果集中的表中删除重复值。它将结合数据集中的结果值和重复值。

句法:

SELECT column1, column2, column3, ...
FROM table1
WHERE condition

UNION ALL

SELECT column1, column2, column3, ...
FROM table2
WHERE condition;
CREATE TABLE sales_2023 (
    order_id INT PRIMARY KEY,
    customer_id INT,
    amount DECIMAL(10,2)
);

例子:

CREATE TABLE sales_2024 (
    order_id INT PRIMARY KEY,
    customer_id INT,
    amount DECIMAL(10,2)
);
-- Insert sales data for 2023
INSERT INTO sales_2023 (order_id, customer_id, amount) VALUES
(101, 1, 150.75),
(102, 2, 220.50),
(103, 3, 340.00),
(104, 4, 180.25);
-- Insert sales data for 2024
INSERT INTO sales_2024 (order_id, customer_id, amount) VALUES
(201, 2, 200.00),
(202, 3, 400.75),
(203, 5, 120.50),
(204, 6, 310.90);
SELECT order_id, customer_id, amount, '2023' AS year FROM sales_2023
UNION ALL
SELECT order_id, customer_id, amount, '2024' AS year FROM sales_2024;

输出:

什么是SQL中的联盟什么是SQL中的联盟

解释: 工会都将来自客户和销售的所有数据与重复的值结合在一起。

工会和工会之间的主要区别

联盟 联盟全部
从桌子上删除所有重复项。 不会从桌子上删除重复项。
性能较慢,因为它必须删除所有重复项。 性能更快,因为它不需要对重复项进行排序或删除。
它需要大量的内存使用,因为它需要排序。 它不需要高内存使用。
它产生独特的内容 它具有所有值,包括重复。
工会和工会之间的主要区别工会和工会之间的主要区别

MySQL的联盟和工会规则

  1. 每个选择语句都必须返回相同数量的列
  2. 每列应具有相应的匹配数据类型。
  3. 工会将删除所有重复项。
  4. 工会将包括所有行,包括重复项。
  5. 订单应在选择语句之后放置。
  6. 工会的性能较慢,因为它必须处理重复项。
  7. 工会全部更快,因为它不需要处理重复。
  8. 零值在联盟和工会中始终被视为常规价值。

联盟和工会的真实例子

1。 使用工会与自由职业者合并职位:

联盟 将从各种来源合并工作位置,删除重复项并返回唯一的数据。

例子:

CREATE TABLE full_time_jobs (
    id INT PRIMARY KEY,
    job_title VARCHAR(100),
    company VARCHAR(100),
    location VARCHAR(50)
);
CREATE TABLE freelance_jobs (
    id INT PRIMARY KEY,
    job_title VARCHAR(100),
    client VARCHAR(100),
    remote BOOLEAN
);

-- Insert full-time job listings
INSERT INTO full_time_jobs (id, job_title, company, location) VALUES
(1, 'Software Engineer', 'ERV', 'Delhi'),
(2, 'Data Analyst', 'PQR', 'Srinagar'),
(3, 'Marketing Manager', 'ABC', 'Lucknow'),
(4, 'Software Engineer', 'XYZ', 'Hyderabad');

-- Insert freelance job listings
INSERT INTO freelance_jobs (id, job_title, client, remote) VALUES
(1, 'Software Engineer', ' Client A', TRUE),
(2, 'Graphic Designer', 'Client B', TRUE),
(3, 'Data Analyst', 'Client C', TRUE),
(4, 'SEO Specialist', 'Client D', TRUE);

SELECT job_title FROM full_time_jobs
UNION
SELECT job_title FROM freelance_jobs;

输出:

使用工会与自由职业者合并职位使用工会与自由职业者合并职位

解释: 联盟 将工作位置与自由职业作业相结合,并从表中带有独特的值。

2。使用工会的医院记录:

医院数据库中存在的病房和ICU的患者的诊断, 联盟全部,将产生结合一般病房和ICU诊断的结果。

例子:

CREATE TABLE general_ward (
    id INT PRIMARY KEY,
    patient_name VARCHAR(100),
    diagnosis VARCHAR(100)
);
CREATE TABLE icu_ward (
    id INT PRIMARY KEY,
    patient_name VARCHAR(100),
    diagnosis VARCHAR(100)
);

-- Insert patient records in the General Ward
INSERT INTO general_ward (id, patient_name, diagnosis) VALUES
(1, 'Alex', 'Pneumonia'),
(2, 'Baskar', 'Diabetes'),
(3, 'Sneha', 'Hypertension'),
(4, 'Shekhar', 'Pneumonia');  -- Duplicate diagnosis

-- Insert patient records in ICU
INSERT INTO icu_ward (id, patient_name, diagnosis) VALUES
(1, 'Eric', 'COVID-19'),
(2, 'Bishnoi', 'Pneumonia'),  -- Duplicate diagnosis
(3, 'Govind', 'Diabetes'),    -- Duplicate diagnosis
(4, 'Hari', 'Cardiac Arrest');

SELECT diagnosis FROM general_ward
UNION ALL
SELECT diagnosis FROM icu_ward;

输出:

使用工会的医院记录使用工会的医院记录

解释: 这给出了一般病房和ICU患者诊断的输出,包括重复值。

使用联盟和工会的最佳实践

  • 使用 联盟 当您需要消除重复记录并维护数据完整性时。
  • 选择 联盟全部 当重复物可以接受时,它可以通过避免排序和过滤的开销来提高性能。
  • 确保所有选择的语句具有相同数量的列和兼容数据类型。
  • 应用过滤器,例如单个选择语句中的子句,以在使用联合或联合所有工会之前减少数据集。
  • 在最终查询中使用明确的列名,以清晰度和可维护性。

绩效注意事项:工会与工会全部

  • 联盟 需要其他处理来分类和删除重复项,这可能会减慢性能,尤其是在大型数据集上。
  • 联盟全部 通常会更快,因为它直接将结果结合在一起而无需过滤重复。
  • 在大量数据方案中, 联盟全部 除非独特性是必不可少的,否则首选。
  • 使用适当的索引和限制返回的行,具有限制或顶部等子句可以进一步提高性能。
  • 分析查询执行计划以识别瓶颈并相应地进行优化。

工会和工会的用例

联盟:

  • 工会的用例将是合并来自多个分支的客户列表,而无需任何重复。
  • 它还可以帮助结合不同部门的员工记录。
  • 它可以通过交易历史记录创建销售报告,而无需任何重复。

联盟全部:

  • 它将从服务器中收集带有事件记录的重复项的所有日志。
  • 它将结合全球每月的销售,并将所有活动的记录与重复关系保留。

结论

工会和工会都是SQL运营商,将结合两个精选查询。这 联盟 查询在删除重复项后返回唯一的值;工会所有人将保留桌面上的所有记录,包括重复。它们之间的主要区别是处理重复。工会维持代码冗余,但是由于分类,处理时间将比所有工会延迟。工会全部更快,因为它返回了所有记录。

常见问题解答

1。我什么时候应该使用联盟代替工会?

使用 联盟 当您想结合多个查询的结果并删除重复行时,确保每个记录在最终结果中仅出现一次。

2。联盟都会影响性能吗?

联盟全部 通常比 联盟 因为它没有检查重复记录,请减少处理时间,尤其是在大型数据集的情况下。

3。工会和工会都可以结合来自不同表的数据吗?

是的,只要列的数量及其数据类型匹配在组合查询中,两者都可以将结果组合起来。



Related Posts

戴尔(Dell

戴尔(Dell

戴尔(Dell)在NVIDIA GTC 2025上拆除…

如何在Python中获取实例的类名称

如何在Python中获取实例的类名称

要获取实例的类名称,您可以在Python中使用__ c…

了解代理商广告帐户在营销中的作用

了解代理商广告帐户在营销中的作用

代理商广告帐户是由营销机构代表客户管理的专业广告帐户。…

热图如何有效地跟踪OKR进展

热图如何有效地跟踪OKR进展

设定目标是一回事,但是跟踪它们是真正的挑战开始的地方。…

目前最强大的台式PC处理器

目前最强大的台式PC处理器

家 »» 目前最强大的台式PC处理器 如果您要构建或升…

电动榨汁机如何改善您的健康和环境?

电动榨汁机如何改善您的健康和环境?

许多人想过着更健康的生活。一种方法是使用电动果汁机械。…