MySQL——数据更新操作(数据的录入、插入、修改更新及删除)

实验环境

1、 操作系统:window10
2、 MySQL 5.7

实验内容与完成情况:

  1. 在教学管理数据库jxgl中,使用MySQL Workbench在表中录入新数据:
insert into student values
	('2005010','赵清江',18,'男','Cs'),
    ('2005011','张丽萍',19,'女','Ch'),
    ('2005012','陈景欢',20,'男','Is'),
    ('2005013','陈婷婷',16,'女','Ph'),
	('2005014','李军',16,'女','Ph');

在这里插入图片描述

insert into sc values
	('2005010','1',87),
    ('2005010','2',null),
    ('2005010','3',80),
    ('2005010','4',87),
    ('2005010','6',85),
    ('2005011','1',52),
    ('2005011','2',47),
    ('2005011','3',53),
    ('2005011','5',45),
    ('2005012','1',84),
    ('2005012','3',null),
    ('2005012','4',67),
	('2005012','5',81);

在这里插入图片描述
在这里插入图片描述

  1. 使用SQL语句进行以下更新操作。
    2.1 给IS系的学生开设7号课程,建立相应的选课记录,成绩为空:
insert into sc 
	select sno,'7',null
    from student
    where sdept='Is';

在这里插入图片描述
2.2在表student中检索每门课程均不及格的学生学号、姓名、年龄、性别及所在系信息,并把检索到的信息存入新表ts中:

create table ts(
	sno char(7) primary key,
    sname char(10),
    sage int,
    ssex char(4),
    sdept char(2)
)
insert into ts
	select * 
    from student
    where sno in(select sno from sc 
					group by sno having max(grade)<60);

在这里插入图片描述
2.3将学号为2005001的学生姓名改为“刘华”,年龄增加1岁:

update student set 
sname='刘华', sage=sage+1
where sno='2005001';

在这里插入图片描述
2.4把选修了“数据库系统”课程而成绩不及格的学生的成绩全部改为空值:

SET SQL_SAFE_UPDATES = 0;
update sc set grade=null
where cno in(select cno from course where cname='数据库系统') and grade<60;
SET SQL_SAFE_UPDATES = 1;

注:SET SQL_SAFE_UPDATES = 0;语句关闭了安全模式,使得更新数据时的where语句中不包含primary key的列也可以进行更新。SQL_SAFE_UPDATES的值默认为1,即保持安全模式打开,安全模式是为了防止在更新数据时忘了加where语句对要更新的数据进行限制而一次修改了全部数据。一般修改结束后要记得重新打开安全模式。
在这里插入图片描述
2.5 学生王林在3号课程考试作弊,该课程成绩改为空值:
为了使查询有结果,我们对表sc的内容进行修改:
在这里插入图片描述

update sc
set grade=null
where cno='3' and sno in(select sno from student where sname='王林');

在这里插入图片描述
2.6 把成绩低于总平均成绩的女同学成绩提高5%:

set sql_safe_updates=0;
update sc
set grade=grade*1.05
where grade<(select avg_grade from(select avg(grade) as avg_grade from sc) as t) and sno in(select sno from student where ssex='女');
set sql_safe_updates=1;

2.7 在基本表sc中修改课程号为“2”号课程的成绩,成绩小于等于80分时降低2%,成绩大于80分时降低1%:

update sc set grade=grade*0.98 where grade<=80 and cno='2';
update sc set grade=grade*0.99 where grade>80 and cno='2';

2.8 把“钱横”的选课记录全部删去:

set sql_safe_updates=0;
delete from sc
where sno in (select sno from student where sname='钱横');
set sql_safe_updates=1;

在这里插入图片描述

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值