你确定自己已经完全掌握了MySQL的增删改查?

对于大部分程序员来说,对于数据库的理解,不外乎就是增删改查而已,但是就算这样,你确定已经完全掌握了MySQL的增删改查?下面我们就来聊聊几种特殊的情况,看看你是否平时都注意了。

INSERT语句

你确定自己已经完全掌握了MySQL的增删改查?

对于国际标准组织规定的SQL插入语法,都是很简单的,但是我们的MySQL对其进行了扩展,从MySQL官方手册我们能够看到,MySQL的插入语法支持低优先级、延迟插入、高优先级、忽略错误等等几个标识符,还支持当主键重复的时候做一些特殊操作,甚至还能够将select的结果直接插入,今天我们不说这么多的扩展特征,还是在基本的插入语法上进行讲解。

INSERT INTO table_name VALUES()和INSERT INTO table_name (表字段1,表字段2..) VALUES()的区别是什么?你知道吗?

对于第一种插入语法,我们没有指定字段,非常方便,可是这样的后果是什么你知道吗?后果是我们如果之后新增或者删除一个字段等等,那么就得修改每个这样的语句,因为这种插入方法,默认就是要提供所有的字段值,否则会报错。

而第二种插入语法,我们仅仅需要插入的字段就可以了,不管后面增加什么字段和这个都没有关系,我们只需要为增加的字段新增一个默认值就可以了,这样插入进去的数据在新增字段就用默认值提供。

LIMIT 1 未指定

你确定自己已经完全掌握了MySQL的增删改查?

修改数据或者删除数据是我们项目中经常做的事情,往往修改数据和删除数据都是仅仅针对一条数据表记录进行操作,但是我们的很多程序员,在对这样的需求时,往往没有指定LIMIT 1,导致每次修改和删除都要让MySQL做一些无用的查询,所以对于这种情况,我们可以明确指定LIMIT 1,这样既安全也能够减少无用的查询,为什么说相对安全呢?答案很简单,就是将影响的记录控制在最少。

超过2个表的链接查询

你确定自己已经完全掌握了MySQL的增删改查?

虽然在SQL优化里面,我们明确的知道,尽可能的减少表链接查询,因为表越多查询越慢,但是呢?对于一些后台管理系统,对性能要求不高,这个时候为了减少编程的时间,尽量让后台上线,还是可以用多表链接查询的,那么对于两个表的链接查询,很多程序员都是知道的,但是对于超过2个表的链接查询,估计很多程序员就开始有些懵了,下面是列举的几种多表查询DEMO。

SELECT * FROM t1 INNER JOIN t2 ON .. INNER JOIN t3 On...

SELECT * FROM t1 INNER JOIN (t2, t3) ON ()

希望本文对你有帮助,如果觉得文章还不错,可以转发给你的朋友,也可以给我一个点赞,以鼓励我前行,有什么问题,可以在评论中提出来,我会尽快回复你的。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: