第59天学习打卡(MySQL 修改 删除)
-- 修改学员名字,带了简介
UPDATE `student1` SET `name`='狂神' WHERE id =5;
-- 不指定条件的情况下,会改动所有的表!
UPDATE `student1` SET `name` = '长江七号'
-- 修改多个属性用逗号隔开
UPDATE `student1` SET `name`='狂神',`email` ='2473674@qq.com' WHERE id =1;
-- 语法
-- UPDATE 表名 SET colnum_name = value,[colnum_name = value...] WHERE[条件]
如果语句中执行没有出错,但是没有结果显示。且信息栏中显示共 0 行受到影响,说明表结构里面没有这个值
条件:where 子句运算符 id 等于某个值,大于某个值,在某个区间内修改...
操作符 | 含义 | 范围 | 结果 |
---|---|---|---|
= | 等于 | 如:5=6 | false |
<>或!= | 不等于 | 5<>6 | true |
> | 大于 | ||
< | 小于 | ||
<= | 小于等于 | ||
>= | 大于等于 | ||
BETWEEN...AND... | []闭区间 在某个范围内 | [2,5] | |
AND | 我和你&& | 5>1 and 1>2 | false |
OR | 我或你|| | 5>1 or 1>2 | true |
-- 通过多个条件定位数据
UPDATE `student1` SET `name`='长江七号'WHERE `name`='狂神44' AND sex = '女'
语法:-- UPDATE 表名 SET colnum_name = value,[colnum_name = value...] WHERE[条件]
注意:
colnum_name是数据库的列,尽量带上``
条件,筛选的条件,如果没有指定,则会修改所有的列
value,是一个具体的值,也可以是一个变量
多个设置的属性之间,使用英文逗号隔开。
UPDATE `student1` SET `birthday`=CURRENT_TIME WHERE `name`='狂神44' AND sex = '女'
3.5 删除
delete命令
语法delete from 表名[where 条件]
-- 删除数据(避免这样写,会全部删除)
DELETE FROM `student1`
-- 删除数据
DELETE FROM `student1` WHERE id = 5;
TRUNCATE命令
-- 清空student1 表
TRUNCATE `student1`
delete TRUNCATE区别
相同点:都能删除数据,都不会删除表结构
不同点:
TRUNCATE 重新设置 自增列计数器会归零
TRUNCATE不会影响事务
-- 测试delete 和TRUNCATE区别
CREATE TABLE `test`(
`id` INT(4) NOT NULL AUTO_INCREMENT,
`color` VARCHAR(20) NOT NULL,
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO `test`(`color`)VALUE('1'),('2'),('3')
DELETE FROM `test` -- 不会影响自增即它原本有三个数字 自增显示的是4 如果把这三个数字删除,自增也是显示4
TRUNCATE TABLE `test` -- 自增会归零
了解即可:DELETE删除的问题
。重启数据库,现象:
INNODB 自增列会从1开始(存在内存中,断电即失)、