# 添加、更新与删除数据

# 添加数据

  • 基本 insert 命令格式:
    INSERT|replace INTO 表名(字段名1,字段名2,……) VALUES(值1,值2,……), (值1,值2,……);
    alt
    PS:使用 insert 语句不能插入重复的 id 号,replace 等价于 replace or insert 意义,无则插入,有则替代

不按属性顺序插入数据 或 数据缺项 时需要写明所插入的属性
alt

按顺序插入且数据不缺项时,可以省略数据表字段
INSERT|replace INTO 表名 VALUES(值1,值2,……);
alt

insert | replace 语句还有一种语法格式,可以为表中指定的字段或者全部字段添加数据
INSERT|replace INTO 表名 SET 字段名1=值1[,字段名2=值2,……]
alt
其实就是将数据项和数据写成赋值关系

  • 多条数据同时插入
    INSERT|replace INTO 表名[(字段名1,字段名2,……) ] VALUES(值1,值2,……),(值1,值2,……),… … ,(值1,值2,……);
    其实就是在 values 后面接多组值,
    例如: insert into student(id, name) values(1,'a'), (2,'b'),(3,'c');
  • Mysql 还支持图片的存储,图片一般可以以路径的形式来存储,即插入图片采用直接插入图片的存储路径。
    PS:存放图片的字段要使用 blob 类型。Blob 是专门存储二进制文本的类型,有大小之分。而且不会检查 图片是否存在
    例如:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB 等,一般的图形文件使用 mediumblob 就足够了
    alt

# 更新数据

UPDATE 表名
SET 字段名1 =1[,字段名2 =2,……]
[WHERE 条件表达式]

更新表中的某一条或者某几条记录,需要使用 WHERE 子句来指定更新记录的条件。
如果没有使用 WHERE 子句,则会将表中所有记录的指定字段都进行更新

# 单独更新

alt

# 批量更新

alt

# 全表更新

alt

# 删除数据

DELETE  FROM  表名 [WHERE 条件表达式]

根据指定条件删除表中的某一条或者某几条记录,需要使用 WHERE 子句来指定删除记录的条件。
PS: 在 DELETE 语句中如果没有使用 WHERE 子句,则会将表中的所有记录都删除。(传说中的,删库跑路,这个比较温柔,至少表还在)

  • 这里由于没有 11 所以 等价于没执行
    alt

  • 删除 id > 5 的学生 (批量删除)
    alt

在 MySQL 数据库中,还有一种方式可以用来删除表中所有的记录,这种方式需要用到一个关键字 TRUNCATE

TRUNCATE [TABLE] 表名

TRUNCATE 的语法格式很简单,只需要通过 “表名” 指定要执行删除操作的表即可。
alt

PS:truncate 只支持 删除全表数据,且自增长字段归零,delete 删除全表自增长数据不归 0

学习不易,诸君共勉!