mysql中有条件的插入语句

今天在参加笔试的过程中,看到一道题,大概意思就是说,当满足了条件就执行插入语句,当时就蒙了,之前从来都没有考虑过满足条件才插入的情况,所以一直都是这样写的
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 条件;

原文地址:https://www.cnblogs.com/jasonboren/p/11575077.html

时间: 2024-09-30 00:27:28

mysql中有条件的插入语句的相关文章

MySQL建表、插入语句等

不定时更新MySQL的一些基础语句以及出现过的问题 5.10 建表语句 CREATE TABLE `policy_landvalue` ( `id` int(20) NOT NULL AUTO_INCREMENT, `article_title` varchar(255) NOT NULL COMMENT '文章标题', `resource_url` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '来源网站URL:0.http://www.hz

sqlserver根据条件生成插入语句--单表

CREATE proc [dbo].[proc_insert] (@tablename varchar(256),@where varchar(max)) as begin set nocount on declare @sqlstr varchar(MAX) declare @sqlstr1 varchar(MAX) declare @sqlstr2 varchar(MAX) select @sqlstr='select ''INSERT '[email protected] select @

MySQL插入语句解析

1.INSERT INTO 最常用简单的插入语句,可以有以下两种用法 1>  INSERT INTO tb_user(id, name, age) VALUES (100022, 'Tom', 25); // 只给指定的列赋值 2>  INSERT INTO tb_user VALUES (100022, 'Tom', 25); // 必须 给所有列赋值 注: INTO关键字可以省略 2. INSERT INTO  ... SELECT 可以将查询结果插入表中 insert into t2sa

Mysql 升级到 5.6 后插入语句时间字段报错:Incorrect datetime value: '' for column 'createtime'

今天部署服务器项目运行,当遇见有时间数据对象的插入和更新操作的时候,就报错,如下: Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '' for column 'createtime' at row 1 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2868) at com.mysql.jdbc.My

[lua, mysql] 将多条记录数据组合成一条sql插入语句(for mysql)

-- 演示将多条记录数据组合成一条sql插入语句(for mysql) function getTpl0(tname) -- 获取表各个字段 local t = { tpl_pack = {"packId","itemId","`group`","num","rate","rateType"}, } for k, v in pairs(t) do if tname == k then r

mysql 数据库插入语句之insert into,replace into ,insert ignore

最近才发现mysql的插入语句居然有如此多的用法,这里拿来分享一下. ①关于insert into : insert into table_name values(); insert into table_name (column) values (); insert into table_name values(select (column) from table_name2); 这里的插入只需要注意一点的就是: 如果发生主键冲突,(也就是插入的主键已经在表中存在时),系统报错. ②repla

Mysql存储过程 一次插入一批数据 或成千条数据 mysql循环语句

Mysql使用存储过程,插入一批数据,可以插入上千条数据,只要使用循环语句,就行了. Mysql(5.0以上版本)在SQLyog(版本是8.32)里如何建立存储过程: 1,          打开SQLyog工具. 2,          建立表procedurehuihui. CREATE TABLE `procedurehuihui` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT, `code` VARCHAR(50) DEFAULT NULL, `na

mysql 插入语句

什么时候用单引号,什么时候不用? 1.先创建一个表 create table user(username varchar(255),age int,marry boolean,birthday date); [注意,最后一个括号前面不能有逗号,否则出错] 2.插入语句 insert into user values('bluewelkin',20,1,1985-10-10); 失败..因为最后一个日期没有加引号 insert into user(username,age,marry) value

Springboot接口简单实现生成MySQL插入语句

Springboot接口简单实现调用接口生成MySQL插入语句 在实际测试中,有这样一个需求场景,比如:在性能压力测试中,可能需要我们事先插入数据库中一些相关联的数据. 我们在实际测试中,遇到问题,需要事先在数据库中创建10000家门店,存在shop表中.关键字段(门店的编号6位数). 分析:两种具体实现方案. 一.利用MySQL函数功能随机生成<SELECT FLOOR(+ RAND() * 1000000)>,最后编写insert语句.但是效率低下. 二.使用springboot编写接口实