使用Python解释和展示MySQL中UNION的用法

使用Python解释和展示MySQL中UNION的用法

在MySQL中,我们可以使用UNION关键字将两个或多个SELECT语句的结果合并成一个结果集。它将去除掉重复的记录,但是要注意,UNION的结果是按照第一个SELECT语句的列顺序排序的。

更多Python教程,请阅读:Python 教程

下面我们将使用Python语言连接到MySQL数据库,并使用UNION关键字来合并两个表的数据。假设我们有两个表:employees和customers,它们均具有以下结构:

CREATE TABLE employees(
    emp_id INT PRIMARY KEY,
    emp_name VARCHAR(50),
    emp_salary DOUBLE
);

CREATE TABLE customers(
    cust_id INT PRIMARY KEY,
    cust_name VARCHAR(50),
    cust_address VARCHAR(255)
);

现在我们将使用Python来连接到MySQL,并使用UNION关键字合并这两个表。首先,我们需要安装pymysql模块,让我们输入以下命令:

!pip install pymysql

接下来,我们将使用以下代码连接到MySQL数据库:

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost","username","password","database_name" )

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

我们可以使用以下代码创建employees和customers表,并将数据存储在其中:

# 创建employees表
cursor.execute("CREATE TABLE employees(emp_id INT PRIMARY KEY, emp_name VARCHAR(50), emp_salary DOUBLE)")

# 插入数据到employees表
cursor.execute("INSERT INTO employees VALUES (1,'Alice',5000),(2,'Bob',6000),(3,'Charlie',7000)")

# 创建customers表
cursor.execute("CREATE TABLE customers(cust_id INT PRIMARY KEY, cust_name VARCHAR(50), cust_address VARCHAR(255))")

# 插入数据到customers表
cursor.execute("INSERT INTO customers VALUES (1,'David','123 Main St.'),(2,'Emma','456 Broadway'),(3,'Frank','789 Park Ave.')")

现在,我们可以使用以下代码使用UNION关键字从这两个表中检索数据:

# 使用UNION关键字检索数据
cursor.execute("SELECT emp_name, emp_salary FROM employees UNION SELECT cust_name, NULL FROM customers")

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

# 输出结果
for row in result:
    print(row)

在以上代码中,我们使用了UNION关键字将employees表中的emp_name和emp_salary列与customers表中的cust_name列合并,并将cust_address列替换为NULL。最终,我们通过fetchall()方法获取整个结果集,并使用for循环输出结果。

完整的Python代码如下:

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost","username","password","database_name" )

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 创建employees表
cursor.execute("CREATE TABLE employees(emp_id INT PRIMARY KEY, emp_name VARCHAR(50), emp_salary DOUBLE)")

# 插入数据到employees表
cursor.execute("INSERT INTO employees VALUES (1,'Alice',5000),(2,'Bob',6000),(3,'Charlie',7000)")

# 创建customers表
cursor.execute("CREATE TABLE customers(cust_id INT PRIMARY KEY, cust_name VARCHAR(50), cust_address VARCHAR(255))")

# 插入数据到customers表
cursor.execute("INSERT INTO customers VALUES (1,'David','123 Main St.'),(2,'Emma','456 Broadway'),(3,'Frank','789 Park Ave.')")

# 使用UNION关键字检索数据
cursor.execute("SELECT emp_name, emp_salary FROM employees UNION SELECT cust_name, NULL FROM customers")

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

# 输出结果
for row in result:
    print(row)

# 断开数据库连接
db.close()

结论

在MySQL中,我们可以使用UNION关键字将两个或多个SELECT语句的结果合并成一个结果集。在Python中,我们可以通过安装pymysql模块并使用以上代码来连接到MySQL数据库,并使用UNION关键字来合并两张表的数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程