大家好,我是锋哥。最近连载更新Mysql8,数据库开发技术专题。
本课程主要介绍和讲解 Mysql8简介,安装以及配置,客户端sqlyog安装以及配置,数据库基本操作,数据库表基本操作,查询数据,添加,修改,删除数据,索引,视图,触发器,常用函数,存储过程和函数。同时也配套视频教程 《一天学会 Mysql8 数据库 视频教程》
Mysql8 添加,更新,删除数据
1,插入数据 (INSERT)
1.1 给表的所有字段插入数据
格式: INSERT INTO 表名 VALUES(值1, 值2, 值3, ..., 值n);
示例: (由于主键 id 设置了 AUTO_INCREMENT,全字段插入时通常使用 NULL 或 DEFAULT 占位,由数据库自动生成)
INSERT INTO t_bookType VALUES(NULL, '计算机科学', '计算机编程与理论相关书籍');
1.2 给表的指定字段插入数据
格式: INSERT INTO 表名(属性1, 属性2, ..., 属性n) VALUES(值1, 值2, 值3, ..., 值n);
示例:
INSERT INTO t_bookType(bookTypeName, bookTypeDesc)
VALUES('文学小说', '经典文学作品与当代小说');
1.3 同时插入多条记录
格式:
INSERT INTO 表名 [(属性列表)]
VALUES(取值列表1),
(取值列表2),
...,
(取值列表n);
示例:
INSERT INTO t_book(bookName, author, price, bookTypeId)
VALUES
('MySQL基础教程', '张三', 59.90, 1),
('Java编程思想', '李四', 108.00, 1);
💡 提示(外键约束) :向
t_book插入数据时,bookTypeId的值必须在t_bookType表中已存在,否则会触发外键约束报错。
2,更新数据 (UPDATE)
格式:
UPDATE 表名
SET 属性名1=取值1, 属性名2=取值2,
...,
属性名n=取值n
WHERE 条件表达式;
2.1 更新特定记录(单列)
UPDATE t_book
SET price = 65.00
WHERE bookName = 'MySQL基础教程';
2.2 更新特定记录(多列)
UPDATE t_book
SET price = 50.00, author = '余华'
WHERE id = 3;
⚠️ 警告:
UPDATE语句必须带有WHERE条件表达式,否则将更新表中所有记录的对应字段! 💡 提示:如果更新的是外键列(如bookTypeId),更新后的值同样必须在父表t_bookType中存在。
3 删除数据 (DELETE)
格式:
DELETE FROM 表名 [WHERE 条件表达式];
3.1 删除特定记录
DELETE FROM t_book
WHERE id = 2;
3.2 删除所有记录(清空表)
DELETE FROM t_book;
💡 提示:使用
DELETE FROM 表名;清空表后,自增主键(AUTO_INCREMENT)的计数器不会重置。如果需要重置自增计数器且清空表,可以使用TRUNCATE TABLE 表名;。
3.3 带有外键约束的删除注意事项
由于 t_book 表通过外键 fk 依赖于 t_bookType 表,如果直接删除父表(t_bookType)中已被子表引用的数据,MySQL 会拒绝执行并报错。
错误示例: (假设 id=1 的类别已被图书引用)
DELETE FROM t_bookType WHERE id = 1; -- 报错:Cannot delete or update a parent row: a foreign key constraint fails
正确做法: 必须先删除子表(t_book)中依赖该类别数据的记录,然后再删除父表(t_bookType)中的记录。
-- 1. 先删除对应的图书
DELETE FROM t_book WHERE bookTypeId = 1;
-- 2. 再删除图书类别
DELETE FROM t_bookType WHERE id = 1;