【技术专题】Mysql8 数据库 - Mysql8 数据库表基本操作 & 查询数据

0 阅读3分钟

大家好,我是锋哥。最近连载更新Mysql8,数据库开发技术专题。

mysql8-cover-16x9.jpg

本课程主要介绍和讲解 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;