大家好,这次给大家带来的是我的新的专栏:数据库,数据库相对来说难度不是那么高,大家只要勤加练习、熟记语法,我相信学好数据库不是什么问题,博主会从0剖析,逐步讲解数据库的知识点,并且会举很多实例。最重要的是,博主不会采用软件,使用最原始的方式 -> 命令行来讲解,这样讲解的好处是逐个语句进行书写,不会造成读者思路跟不上的问题!
👀QQ:162196770
👀微信:PRIDE_Xu_
👀Gitee:https://gitee.com/jialebihaitao
4、修改操作
4.1 语法
update 表名 set 列名1 = 值,列名2 = 值 where 条件;
-- 针对哪个表,里面的哪些行,里面的哪些列,改成啥样的值
4.2 注意事项
-
set
关键字不能省略 -
where
条件指的是针对哪些列进行修改,符合条件的才去修改,不符合条件的就不去修改。 -
如果
where
条件省略了,即修改所有记录 -
除了
where
,order by
、limit
同样还可以使用 -
update
操作的是服务器上存储的数据,而不是临时表了!即修改数据的话,修改的数据就是原始数据! -
其实这个条件也很危险,甚至不亚于删除操作!
假如你误删除了表,可以把备份的找回。但是你修改出错了, 不该修改的你修改了,该修改的你没修改,这就完了。如果更改错误,而且你还第一时间没发现,哪你就会接着去执行其他操作,等到出问题的时候才发现
BBQ
了,但是你还无从改起,要是把备份的表还原一下,你还是需要去重复之前的操作,需要消耗很大精力的!所以对于数据这一块,嗷嗷重要,不可忽视也不可儿戏!
举几个栗子吧~
栗子1:将孙悟空同学的数学成绩变更为 80 分
栗子2:将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分
栗子3:将总成绩倒数前三的 3 位同学的数学成绩加上 30 分
这里就需要先按照总成绩排序,同时limit
倒数前三名
再去执行+30
操作
但是发生了Out of range
,这是咋回事?
其实我们之前把各科成绩都设成了
decimal(3,1)
,这代表了有效数字有3位,小数点之后1位。那么我们拿富察贵人举例,44.6+80=124.6
明显超出我们规定的decimal(3,1)
的范围了,是会报错的。
那么我们就加20吧。
但是我们还发现最下面:
Rows matched:3 Changed:2
这又是咋回事?
我们看安陵容的成绩,都是
null
,我们之前说过null
是不参与运算的。所以改变的只有两个值,并没有全改变。所以才会发现:Rows matched:3 Changed:2
栗子4:将所有同学的语文成绩更新为原来的 2 倍(不写where
默认全部翻倍)
我们可以看见,又超出范围了。我们之前设定的范围是decimal(3,1)
,将语文成绩*2之后,会超出3位有效数字的范围。
那么我们将语文成绩更新到之前的一半吧。
5、删除操作
5.1 语法
delete from 表名 where 条件;
5.2 注意事项
-
一旦
where 条件
里面的条件写错了,那么可能影响的范围就会不可控。如果不写条件,就会把整个表里面的数据删除掉。 -
delete
操作是删除表里面的数据,drop
是直接就把表给删除掉了
我们以后进入公司之后,面对危险性很高的操作,你还怕出错,最好的办法就是拉上一个人,你们俩一起操作,错误的可能性就大大降低了。那么你可以叫你的师傅来(你刚开始进公司,公司会派给你一个比你早进公司的人帮助你快速适应,当你成长起来之后,你也会成为别人的师傅)。