【学习笔记】DML语言(添加、修改、删除)

DML语言(添加、修改、删除)

 

添加

使用insert关键字

-- 插入一条数据,包含多个字段
INSERT INTO `student`(`name`,`age`,`gradeid`)
VALUES('张三',10,1001)
​
-- 可以省略字段名,但是后面的值要与表结构一一对应,否则会报错
INSERT INTO `student`
VALUES(2,'李四',20,1201)
​
-- 插入多条数据
INSERT INTO `student`(`name`,`age`,`gradeid`)
VALUES('王五',12,0023),('赵六',56,2323),('赵四',33,5644)

语法:INSERT INTO 表名([字段名1,字段名2,字段名3]) values(值1,值2,值3),(值1,值2,值3)

注意:

  • 字段之间使用英文逗号隔开

  • 字段可以省略,但是后面的值必须与表结构一一对应

 

修改

使用update关键字

-- 修改一条数据,带条件
UPDATE `student` SET `name`='你好' WHERE `id` = 1
​
-- 不带条件,会把所有的name都改为“你好”
UPDATE `student` SET `name`='你好' 
​
-- 修改多个属性,每个属性用英文逗号 , 隔开 
UPDATE `student` SET `name`='你好',`age`=99 WHERE `id`=2 
​
-- 设置

where 子句 中是运算符,运算符会返回boolean值,如下表

操作符 含义 范围 结果
= 等于 1=2 false
<>或!= 不等于 1<>2 true
> 大于 1>2 false
< 小于 1<2 true
>= 大于等于 1>=2 false
<= 小于等于 1<=2 true
BETWEEN...AND... 在某个范围 BETWEEN 2 AND 5 [2,5]
AND && 1>2 && 3>2 false
OR || 1>2 || 3>2 true
-- 通过多个条件定位数据,无上限
UPDATE `student` SET `name`='你好',`age`=99 WHERE `id`=2 AND `gradeid` = '1001'

语法:UPDATE 表名 SET 字段名1='值1',[字段名2='值2'] WHERE 条件1 [AND 条件2]

注意:

  • 表名和字段名带上 ``

  • 后面的条件是筛选的条件,如果没有指定,则会修改所有的列

  • value,是一个具体的值,也可以是一个变量 如时间:CURRENT_TIME

 

删除

 

DELETE 关键字

-- 会把表中的数据全部删除
DELETE FROM `student`
​
-- 删除指定的数据
DELETE FROM `student` WHERE `id`=5

 

TRUNCRTE 关键字

完全清空一张表

TRUNCATE TABLE `student`

 

DELETE 和 TRUNCRTE 的异同

  • 相同点是:都能删除数据,都不会删除表结构

  • 不同点:

    • TRUNCRTE 会重新设置自增列,删除数据后,计数器会归零,delete会接着自增

    • TRUNCRTE 不会影响事务

 

delete删除的问题:使用delete清空数据后,重启数据库,根据不同的引擎,有不同的现象

  • INNODB 自增列会从1开始,因为数据是存在内存中,断电即失

  • MYISAM 会继续在之前的自增,因为数据是存在文件中,不会丢失

posted @ 2022-09-29 10:14  GrowthRoad  阅读(46)  评论(0编辑  收藏  举报