mysql笔记(10)-数据的插入和更新(insertupdatecase)

mysql笔记(10)-数据的插入和更新(insertupdatecase),第1张

常见的插入方式有以下几种:

这种方式每次只能插入一行

且set从句内的values不能全部为空

这种方式可以一次性插入多行

不同行之间的数据 用逗号进行分隔

这种方式用于替换表中的某一行

若新插入记录的主码已经存在于表中,则用新记录替换旧记录

若新插入记录的主码不在表中,则直接插入新记录

普通的update语句写法如下:

例如:在instructor(教师信息)表中

我们想更新 ID为10101的教师的工资为70000

对于更复杂的数据更新 我们可以添加 case-when从句

从而实现对数据的分类更新

例如:在instructor(教师信息)表中 对所有教师进行涨薪

对工资小于等于100000的涨薪5%,其他人涨薪3%

格式:update 表名称 set 字段名称 = 字段名称 + 1  [ where语句]

比如说数据库中有一张student表,要想把id为1的学生成绩(score)加1则

update student set score=score+1 where id = 1

mysql *** 作时的防止重复插入数据的有效方法

如果表中包含有一个自动递增字段AUTO_INCREMENT,并用 INSERT ... UPDATE 插入一行,函数 LAST_INSERT_ID()会返回AUTO_INCREMENT的值,如果这个语句更新某一行, LAST_INSERT_ID() 就没有意义了。但是,你可以通过用 LAST_INSERT_ID(expr)使它变得有意义,假如id字段是自动递增栏的话,使 LAST_INSERT_ID() 对更新语句有意义的方法如下:

INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3

ON DUPLICATE KEY UPDATE命令语句,那么在唯一索引或者主索引的作用下将不插入与数据库教程记录重复的内容,但同时会更新数据库中的旧记录。例如,字段a被声明为唯一索引并且里面只包含有值为1的记录


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8419118.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存