在平常的工作中,我们经常会更新表的数据。常见的表关联更新数据例如用where条件进行表关联,或者用join进行表的连接更新表的数据。
1:创建测试表:
CREATE TABLE `student` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`student_no` bigint NOT NULL COMMENT '学号',
`name` varchar(20) DEFAULT NULL COMMENT '名字',
`address` varchar(100) DEFAULT NULL COMMENT '地址',
PRIMARY KEY (`id`),
KEY `student_no` (`student_no`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `student_info` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`student_no` bigint NOT NULL COMMENT '学号',
`hobbies` varchar(200) DEFAULT NULL COMMENT '兴趣爱好',
KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
2:将名字为“阿杜”同学的兴趣爱好改为跳舞:
通过where条件连接:
update student_info sto,student st
set sto.hobbies = '跳舞'
where sto.student_no = st.student_no
and st.name = '阿杜';
通过join连接:
update student_info sto inner join student st
on sto.student_no = st.student_no
and st.name = '阿杜'
set sto.hobbies = '跳舞';
3:如果表数据量比较大,可以查询需要关联的字段,这样可以提高效率,如:
update student_info sto inner join
(select student_no,name from student ss) st
on sto.student_no = st.student_no
and st.name = '阿杜'
set sto.hobbies = '跳舞';
4:单表进行更新数据:
update student
set address = '陕西宝鸡'
where name = '阿杜';
温故而知新。加油,美好的风景一直在路上!
版权归原作者 忘忧人生 所有, 如有侵权,请联系我们删除。