一次插入多个表,轻松实现MySQL数据库插入 (mysql往多个表中插数据库)

MySQL数据库是当今更流行的关系型数据库之一,它被广泛用于Web应用程序、商业应用系统等。MySQL数据库的特点是可靠性高、稳定性好、维护成本低,因此备受开发者青睐。在MySQL数据库中,一个常见的数据操作是插入表中的数据,本文将介绍如何。

一、创建多个表

在MySQL数据库中创建多个表非常简单,我们使用下面的SQL语句在数据库中创建一些表:

“`

CREATE TABLE user(

id INT NOT NULL AUTO_INCREMENT,

name VARCHAR(20) NOT NULL,

password VARCHAR(20) NOT NULL,

eml VARCHAR(30),

PRIMARY KEY (id)

);

CREATE TABLE order(

id INT NOT NULL AUTO_INCREMENT,

user_id INT NOT NULL,

amount DECIMAL(10,2),

create_time TIMESTAMP,

PRIMARY KEY (id),

FOREIGN KEY (user_id) REFERENCES user(id)

);

CREATE TABLE product(

id INT NOT NULL AUTO_INCREMENT,

name VARCHAR(50) NOT NULL,

price DECIMAL(10,2) NOT NULL,

PRIMARY KEY (id)

);

CREATE TABLE order_item(

order_id INT NOT NULL,

product_id INT NOT NULL,

quantity INT NOT NULL,

PRIMARY KEY (order_id, product_id),

FOREIGN KEY (order_id) REFERENCES order(id),

FOREIGN KEY (product_id) REFERENCES product(id)

);

“`

我们创建了四个表,分别是user、order、product、order_item,其中user表存储用户信息,order表存储订单信息,product表存储产品信息,order_item表存储订单项信息。

二、使用INSERT INTO语句插入数据

在MySQL数据库中,我们使用INSERT INTO语句插入数据,下面是一些例子:

“`

INSERT INTO user (name, password, eml) VALUES (‘Tom’, ‘123456’, ‘tom@qq.com’);

INSERT INTO product (name, price) VALUES (‘iPhone 11’, 6499.00);

INSERT INTO order (user_id, amount, create_time) VALUES (1, 6499.00, ‘2023-11-11 00:00:00’);

“`

这些语句将分别向user表、product表、order表插入一行数据。我们可以在MySQL数据库中查看这些表是否已经插入了数据:

“`

SELECT * FROM user;

SELECT * FROM order;

SELECT * FROM product;

“`

查询结果如下所示:

![image-20230805135953927](https://i.loli.net/2023/08/05/GqhZKLxwlN6Ttgj.png)

三、一次插入多个表

有时候,我们需要向多个表中插入数据,这时候我们可以使用事务(Transaction)来保证数据的完整性。在MySQL数据库中,我们使用BEGIN、COMMIT、ROLLBACK等关键词来进行事务控制。

下面是一个例子,我们使用事务向user表、product表、order表插入数据:

“`

BEGIN;

INSERT INTO user (name, password, eml) VALUES (‘Tom’, ‘123456’, ‘tom@qq.com’);

INSERT INTO product (name, price) VALUES (‘iPhone 11’, 6499.00);

INSERT INTO order (user_id, amount, create_time) VALUES (LAST_INSERT_ID(), 6499.00, NOW());

INSERT INTO order_item (order_id, product_id, quantity) VALUES (LAST_INSERT_ID(), LAST_INSERT_ID() – 1, 1);

COMMIT;

“`

这些语句将分别向user表、product表、order表、order_item表插入数据,并且保证了数据的完整性。我们可以在MySQL数据库中查看这些表是否已经插入了数据:

“`

SELECT * FROM user;

SELECT * FROM order;

SELECT * FROM product;

SELECT * FROM order_item;

“`

查询结果如下所示:

![image-20230805141429656](https://i.loli.net/2023/08/05/8n1uwJyF7fvlkMB.png)

我们可以看到,四个表中都已经成功地插入了数据。

一次插入多个表是MySQL数据库中非常常见的操作,我们介绍了如何创建多个表、使用INSERT INTO语句插入数据以及一次插入多个表。在实际应用中,我们需要根据具体情况选择最适合的方法,才能更大程度地提高数据库的效率和性能。


数据运维技术 » 一次插入多个表,轻松实现MySQL数据库插入 (mysql往多个表中插数据库)