在 MySQL 数据库中复制行
今天的主题是关于在 MySQL 数据库中复制行。我们将学习如何复制一行并将其粘贴到具有自动增量 ID 和自定义 ID 的同一个表中。
我们还将了解如何从一个表的多行复制多个字段并将它们粘贴到另一个表中。
在 MySQL 数据库中复制行
当需要另一个表中的两个或多个精确列时,复制行很有用。我们可以将一行(一条记录)从一个表复制到另一个表,而不是手动插入它们。
我们可以使用不同的方法来复制 MySQL 数据库中的行。首先,为了学习这些方法,让我们创建一个包含两个表 tb_students
和 tb_attendance
的 test
数据库。
示例代码:
# create a database
CREATE SCHEMA `test`;
# create students table
CREATE TABLE `test`.`tb_students` (
`ID` INT NOT NULL AUTO_INCREMENT,
`FIRSTNAME` VARCHAR(45) NOT NULL,
`LASTNAME` VARCHAR(45) NOT NULL,
`DEPARTMENT` VARCHAR(45) NOT NULL,
`GENDER` VARCHAR(10) NOT NULL,
`PHONE` BIGINT NOT NULL,
`CITY` VARCHAR(45) NOT NULL,
PRIMARY KEY (`ID`));
# create attendance table
CREATE TABLE `test`.`tb_attendance` (
`ID` INT NOT NULL,
`FIRSTNAME` VARCHAR(45) NOT NULL,
`LASTNAME` VARCHAR(45) NOT NULL,
`GENDER` VARCHAR(45) NOT NULL,
`DEPT` VARCHAR(45) NOT NULL,
`ATTENDANCE` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`));
在 MySQL 数据库中使用 INSERT
和 SELECT
语句将行从一个表复制到另一个表
我们必须将数据插入到一个表中,才能将该表中的行复制到另一个表中。为此,我们按如下方式填充名为 tb_students
的表。
示例代码:
#insert data into the table
INSERT INTO `test`.`tb_students`
(FIRSTNAME, LASTNAME, DEPARTMENT, GENDER, PHONE, CITY)
VALUE
('Mehvish', 'Ashiq', 'Computer Science', 'Female', '1234567890', 'Lahore'),
('Thomas', 'Christopher', 'Physics', 'Male', '2546317908', 'Miami'),
('Daniel', 'James', 'Business Administration', 'Male', '7854123690', 'Texas'),
('Saira', 'Kethy', 'History', 'Female', '3254169870', 'Michigan');
#display table data
SELECT * FROM test.tb_students;
输出:
现在,从 tb_students
表中复制数据并将其插入 tb_attendace
表中。请注意,我们不是复制所有数据,而是复制特定字段以填充 tb_attendance
表。
#insert data into the table
INSERT INTO `test`.`tb_attendance`
(ID, FIRSTNAME, LASTNAME, GENDER, DEPT)
SELECT ID, FIRSTNAME, LASTNAME, GENDER, DEPARTMENT
FROM `test`.`tb_students`;
#display table data
SELECT * FROM test.tb_attendance;
输出:
使用 INSERT
和 SELECT
语句在具有自动增量 ID 的同一表中复制行
在本节中,我们从 tb_students
表中复制一行,其中包含四条记录,使用自动增量 ID 插入它,并更新 PHONE
和 CITY
属性的值。
示例代码:
INSERT INTO `test`.`tb_students`
(FIRSTNAME, LASTNAME, DEPARTMENT, GENDER, PHONE, CITY)
SELECT FIRSTNAME, LASTNAME, DEPARTMENT, GENDER, '2564138790', 'Dubai'
FROM `test`.`tb_students`
WHERE `test`.`tb_students`.ID = 1;
SELECT * FROM `test`.`tb_students`;
输出:
使用 INSERT
和 SELECT
语句复制具有自定义 ID 的同一表中的行
如果我们不想在 tb_students
表中使用自增 ID 而是自定义 ID,我们可以在 INSERT
语句中写入列名,在 SELECT
语句中写入其值,如下所示。
示例代码:
INSERT INTO `test`.`tb_students`
(ID, FIRSTNAME, LASTNAME, DEPARTMENT, GENDER, PHONE, CITY)
SELECT 10,FIRSTNAME, LASTNAME, DEPARTMENT, GENDER, '2564138790', 'Dubai'
FROM `test`.`tb_students`
WHERE `test`.`tb_students`.ID = 1;
SELECT * FROM `test`.`tb_students`;
输出:
相关文章
MySQL 中的减法运算
发布时间:2024/03/25 浏览次数:140 分类:MySQL
-
本教程将指导你如何在 MySQL 中模拟 MINUS 操作。它还通过不同的示例教你各种模拟 MINUS 操作的方法。
MySQL 中的 MUL vs PRI vs UNI
发布时间:2024/03/25 浏览次数:190 分类:MySQL
-
本教程将指导你了解 MySQL 中 MUL、PRI 和 UNI 键之间的区别。它还强调了它们中的每一个的使用。
MySQL 中的 DATETIME 与 TIMESTAMP 的比较
发布时间:2024/03/25 浏览次数:155 分类:MySQL
-
本教程将向你介绍 DATETIME 和 TIMESTAMP 数据类型。你还将了解在哪里使用它们以及它们的异同。
在 MYSQL 中的一个查询中执行多个连接
发布时间:2024/03/25 浏览次数:161 分类:MySQL
-
本教程展示了如何在 MySQL 中的一个查询中合并多个连接;无论是内部的还是外部的。我们还展示了定义连接条件的不同方法。