MySQL--表的操作之增(insert)

158 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第8天,点击查看活动详情

表中数据的操作 -- 增insert

(1)插入数据的操作 -- 增

a 一次插入一条表中所有列的数据

 语法1:
insert into table_name(列1,列2,...列n) 
values(值1,值2,...值n);

例子: 往mytest表中插入数据

insert into mytest(id,name,age,birthday) values(1,'zs',20,'2021-10-10');
insert into mytest(id,name,age,birthday) values(2,'ls',25,20211011);

在这里插入图片描述

语法2:
insert into table_name 
values(值1,值2,...值n);
   【说明:values中的值必须是表中所有列对应的值
     少一列值就会报错误】
insert into mytest values(3,'ww',30,'2021-10-9');
insert into mytest values(4,'xx',33);

在这里插入图片描述

b 一次插入一条表中部分列的数据

语法:
insert into table_name(列1,列3) values(值1,值3);

例子: 往mytest表中插入一条数据4,xx,33

insert into mytest(id,name,age) values(4,'xx',33);
insert into mytest(id) values(5);

在这里插入图片描述

c 一次插入多条所有列的数据 列1~列n表示所有列

语法1insert into table_name(列1..列n)
          values(值1...值n),(值1...值),
                (值1...值n)...;
insert into mytest(id,name,age,birthday)
          values(1001,'a',10,20211020),
                (1002,'b',15,20211021),
                (1003,'c',20,20211018);

在这里插入图片描述

语法2: 
 insert into table_name values(值1...值n),(值1...值),(值1...值n)...;
   【说明:值1...值n必须对应的所有列的值】
insert into mytest 
           values(1004,'d',25,20211019),
                 (1005,'e',30,20211010);

在这里插入图片描述

d 一次插入多条部分列的数据

强调:表名后必须写哪几列

insert into mytest(id,name)
        values(100,'aa'),(200,'bb'),(300,'cc'),
              (400,'dd');
select * from mytest;
select id,name,age,birthday from mytest;
select id,name from mytest;

在这里插入图片描述

e 往表中插入查询出的结果

语法:
insert into table_name(f1,f2,...fn) select f_1,f_2,...f_n from table_name1;
create table mytest1(
    id int,
    name varchar(20)
 );
 insert into mytest1 values(001,'qq');
 insert into mytest1 values(002,'ww');
 select * from mytest1;

例子: 将mytest1表中查询的结果插入到mytest表中

insert into mytest(id,name) select id,name from mytest1;

将mytest表中查询的结果插入到mytest表中

insert into mytest(id,name,age,birthday) select id,name,age,birthday from mytest;

在这里插入图片描述