今天在参加笔试的过程中,看到一道题,大概意思就是说,当满足了条件就执行插入语句,当时就蒙了,之前从来都没有考虑过满足条件才插入的情况,所以一直都是这样写的insert into table_name(column...)values(value...)
这样的语句。所以那道题没有做出来。
今天就把插入语句好好复习一下。
第一种情况插入指定字段
insert into table_name(column1,column2)values(value1,value2);
第二种情况插入所有字段:前提条件是字段顺序必须与表中字段顺序一致
insert into table_name values(value1,value2);
第三种情况批量插入数据
insert into table_name values (value1,value2),(value1,value2);
也可以指定插入批量数据
insert into table_name(column1,column2) values(value1,value2),(value1,value2);
第四种情况就是当满足了指定条件时才插入数据
insert into (column1,column2) select value1,value2 from table_name where ...
也就是后面select子句中查询出来的列作为前面的值插入到表中,但是这个列的个数要和前面的字段个数一致。select子句就可以随便写了。
例如
insert into dept(deptno,dname,loc) select 11,dept.dname,dept.loc from dept where deptno=22;
顺便复习一下select,update,delete基础语法
select 子查询,用于选择满足条件的记录,也是经常用的查询语句
select 字段 from table_name where 条件 group by 分组字段 having分组条件 order by 排序字段 limit 0 分页偏移量;
关于聚合函数sum(),avg(),max(),min()等是不能放在where条件后面的,例如需要查询平均分大于80分的同学的信息,应该这样写sql语句select * from student group by score having avg(score)>80;
一般group by 都要和聚合函数一起连用。
update用于更新记录
update table_name set column=value where 条件;
delete 用于删除一条记录
delete from table_name where 条件;