一次插入多个表,轻松实现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语句插入数据以及一次插入多个表。在实际应用中,我们需要根据具体情况选择最适合的方法,才能更大程度地提高数据库的效率和性能。