一、什么是INSERT INTO语句?
INSERT INTO语句是一种SQL命令语句,用于将数据插入到数据库表中。它可以向一个表中添加一条或多条记录。 INSERT INTO语句基于SELECT语句模式,可以通过指定列名、值和条件向数据库表中添加数据。
二、INSERT INTO语句的基本语法
INSERT INTO语句的基本语法如下:
INSERT INTO table_name (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN);
其中:
- table_name: 表示要插入数据的目标表名。
- column1, column2, column3,...columnN: 表示插入目标表的列名。这是可选的,如果省略,就需要在VALUES子句中输入值数据并且这个顺序必须和表中列的顺序一致。如果指定了列,那么VALUES子句中要放置和列名对应的数据。
- value1, value2, value3,...valueN: 表示插入目标表相应列的值。
例如:
INSERT INTO customer (name, age, address) VALUES ('John', 25, 'New York');
以上语句将John这个人的name设为'John',age设为25,address设为'New York',并插入到customer表中。
三、插入多条数据
可以使用INSERT INTO语句插入多条数据,只需在VALUES子句中多次指定不同的值即可。例如:
INSERT INTO customer (name, age, address) VALUES ('John', 25, 'New York'), ('Mary', 30, 'Los Angeles'), ('Tom', 35, 'Chicago');
以上语句将插入三条记录,分别是John(25, 'New York'),Mary(30, 'Los Angeles')和Tom(35, 'Chicago')。
四、使用默认值插入数据
如果表中的某些列设置了默认值,您可以插入一条记录而不指定这些列中的任何值。例如:
INSERT INTO customer (name, age) VALUES ('Kobe', 41);
以上语句将Kobe(41)插入到customer表中,address列使用默认值。
五、从另一张表复制数据
INSERT INTO语句可以从另一个表中选择数据,并将其插入到目标表中。可以使用SELECT语句来选择表中需要复制的数据。例如:
INSERT INTO customer (name, age, address) SELECT name, age, address FROM old_customer WHERE age > 18;
以上语句将从old_customer表中选择年龄大于18岁的记录,之后将name、age和address列的值复制到customer表中。
六、案例说明
假设有一张学生成绩表,其表结构如下:
score(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20),
math_score INT,
english_score INT,
computer_score INT
);
现在需要向score表中插入一些成绩数据,具体要求如下:
- 名字为Alice的学生数学得了80分,英语得了70分,计算机得了60分;
- 名字为Bob的学生数学得了90分,英语得了85分,计算机得了70分;
- 名字为Cathy的学生数学得了70分,英语得了80分,计算机得了75分。
则可以使用如下SQL语句:
INSERT INTO score (name, math_score, english_score, computer_score) VALUES
('Alice', 80, 70, 60),
('Bob', 90, 85, 70),
('Cathy', 70, 80, 75);
以上语句将插入三条记录,分别是Alice(80, 70, 60),Bob(90, 85, 70)和Cathy(70, 80, 75)。
如果想要向score表中插入多条相同的数据,可以使用INSERT INTO语句插入多次,也可以将数据存储在CSV文件中,然后使用LOAD DATA INFILE语句插入多条相同的数据。例如:
CREATE TABLE tmp_score(
name VARCHAR(20),
math_score INT,
english_score INT,
computer_score INT
);
INSERT INTO tmp_score VALUES
('Alice', 80, 70, 60),
('Bob', 90, 85, 70),
('Cathy', 70, 80, 75);
LOAD DATA INFILE '/path/to/score_data.csv' INTO TABLE score FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (name, math_score, english_score, computer_score);
以上语句将会向score表中插入tmp_score表中的数据,并将CSV文件中的数据插入到score表中。
七、总结
INSERT INTO语句是向数据库表中添加数据的基本语句,可以插入单条或多条数据,并可以从另一张表中复制数据。需要注意的是,在插入数据时需要将数据类型和列顺序以及列名与插入表的结构保持一致,否则将会出现数据结构错误,导致插入失败。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
发表评论 取消回复