MySQL SELECT ... INTO 语句使用示例:将查询结果导出到文件或变量中


SELECT ... INTO 语句在 MySQL 中用于将查询结果直接插入到另一个表中,或者将查询结果存储到变量中。以下是几种常见的使用示例:

1. 将查询结果插入到另一个表中

假设你有两个表 source_tabletarget_table,你想将 source_table 中的部分数据插入到 target_table 中。

示例表结构
-- 源表 source_table
CREATE TABLE source_table (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    age INT
);

-- 目标表 target_table
CREATE TABLE target_table (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    age INT
);
插入数据
-- 插入部分数据到目标表
INSERT INTO target_table (id, name, age)
SELECT id, name, age
FROM source_table
WHERE age > 30;

2. 将查询结果存储到变量中

假设你有一个表 users,你想将某个用户的姓名和年龄存储到变量中。

示例表结构
CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    age INT
);
存储查询结果到变量
SET @user_name = '';
SET @user_age = 0;

SELECT name, age
INTO @user_name, @user_age
FROM users
WHERE id = 1;

-- 查看变量值
SELECT @user_name, @user_age;

3. 将查询结果导出到文件中

SELECT ... INTO OUTFILE 语句可以将查询结果导出到文件中。这通常用于备份数据或与其他系统进行数据交换。

示例表结构
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    customer_name VARCHAR(100),
    order_date DATE,
    total_amount DECIMAL(10, 2)
);
导出查询结果到文件
SELECT order_id, customer_name, order_date, total_amount
INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM orders;

报错:
1290 - The MySQL server is running with the --secure-file-priv option
so it cannot execute this statement

MySQL SELECT ... INTO 语句使用示例:将查询结果导出到文件或变量中_mysql


解决办法:

windows下的话,设置该变量的值即可。linux下可以禁用该参数,或指定该变量的值。

MySQL SELECT ... INTO 语句使用示例:将查询结果导出到文件或变量中_mysql_02

4. 从文件导入数据到表中

LOAD DATA INFILE 语句可以将文件中的数据导入到表中。这是 SELECT ... INTO OUTFILE 的逆操作。

示例表结构
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    customer_name VARCHAR(100),
    order_date DATE,
    total_amount DECIMAL(10, 2)
);
导入数据到表
LOAD DATA INFILE '/tmp/orders.csv'
INTO TABLE orders
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;  -- 如果文件有标题行,可以忽略第一行

MySQL SELECT ... INTO 语句使用示例:将查询结果导出到文件或变量中_MySQL_03


上一篇:2024年9月青少年软件编程(C语言/C++)等级考试试卷(九级)


下一篇:JavaWeb——HTML、CSS