MySQL数据库——12、UNION 操作符

发布于:2024-04-17 ⋅ 阅读:(143) ⋅ 点赞:(0)

在 MySQL 中

UNION 操作符用于合并两个或多个 SELECT 语句的结果集,并去除重复的行。UNION 操作符可以将多个 SELECT 查询的结果合并成一个结果集,并且对结果进行排序。

SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;
 

在这个语法中,SELECT 查询必须具有相同数量的列,并且相应列的数据类型必须相匹配。UNION 操作符合并两个 SELECT 查询的结果,并去除重复的行。

例如,假设我们有两个数据表 table1table2,分别包含了相同结构的列 idname。我们可以使用 UNION 操作符将这两个表的数据合并,并去除重复的行:

SELECT id, name FROM table1
UNION
SELECT id, name FROM table2;
 

在这个例子中,UNION 操作符将 table1table2 中的数据合并,并去除重复的行。最终返回的结果集包含了所有不重复的 idname 组合。

需要注意的是,UNION 操作符默认会去除重复的行。如果想要保留所有的行(包括重复的行),可以使用 UNION ALL 操作符。

在 Python 中

可以使用 mysql-connector-pythonpymysql 等库连接到 MySQL 数据库,并执行相应的 SQL 查询操作,包括使用 UNION 操作符进行结果集的合并。

import mysql.connector

# 连接到 MySQL 数据库
conn = mysql.connector.connect(
    host="localhost",
    user="your_username",
    password="your_password",
    database="my_database"  # 指定要连接的数据库
)

# 创建游标对象
cursor = conn.cursor()

# 执行 UNION 操作
union_query = """
SELECT id, name FROM table1
UNION
SELECT id, name FROM table2
"""
cursor.execute(union_query)

# 获取查询结果
rows = cursor.fetchall()

# 打印查询结果
for row in rows:
    print(row)

# 关闭游标和数据库连接
cursor.close()
conn.close()
 

首先导入 mysql.connector 模块,然后通过 mysql.connector.connect() 方法连接到 MySQL 数据库。接着,创建一个游标对象,该对象用于执行 SQL 查询。然后,执行一个带有 UNION 操作符的 SQL 查询,合并两个数据表的数据,并去除重复的行。最后,我们通过 fetchall() 方法获取查询结果,并打印每一行数据。最后,我们关闭游标和数据库连接。


网站公告

今日签到

点亮在社区的每一天
去签到