【学习笔记】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 会继续在之前的自增,因为数据是存在文件中,不会丢失