SQL的常用数据更新操作

1) 应用INSERT,UPDATE,DELETE语句进行更新操作;

a) 插入如下学生记录(学号:95030,姓名:李莉,年龄:18

b) 插入如下选课记录(950301

c) 计算机系学生年龄改成20

d) 数学系所有学生成绩改成0

e) 把低于总平均成绩的女同学成绩提高5

f) 修改2号课程的成绩,若成绩小于75分提高5%,成绩大于75时提高

4%(两个语句实现,注意顺序)

g) 删除95030学生信息

h) 删除SC表中无成绩的记录

i) 删除张娜的选课记录

j) 删除数学系所有学生选课记录

k) 删除不及格的学生选课记录

l) 查询每一门课程成绩都大于等于80分的学生学号、姓名和性别,把值送往另一个已经存在的基本表STU(SNO,SNAME,SSEX)

m) 把所有学生学号和课程号连接追加到新表中

n) 所有学生年龄增1

o) 统计3门以上课程不及格的学生把相应的学生姓名、系别追加到另外一个表中


答案:

a) 插入如下学生记录(学号:95030,姓名:李莉,年龄:18

Insert into student(sno,sname,sage)

Values(95030,李莉,18);

b) 插入如下选课记录(950301

insert into sc(sno,cno)
values('95030','001');

c) 计算机系学生年龄改成20

update student
set sage=20
where sdept='cs';

d) 数学系所有学生成绩改成0

update sc
set grade=0
where 
sno in (select sno from student where sdept='ma');

e) 把低于总平均成绩的女同学成绩提高5

update sc
set grade=grade+5
where sno in
(
select sno
from student
where ssex=''  and grade<(select avg(grade)  from sc)
 ;


f) 修改2号课程的成绩,若成绩小于75分提高5%,成绩大于75时提高

4%(两个语句实现,注意顺序)

update sc
set grade=grade*(1+0.05)
where  cno='002' and grade<75;


update sc
set grade=grade*(1+0.04)
where  cno='002' and grade>75


g) 删除95030学生信息

delete 
from student
where sno='95030';

h) 删除SC表中无成绩的记录

delete 
from sc
where grade is null;

i) 删除张娜的选课记录

delete 
from sc
where sno in
(
select sno 
from student
where sname='张那'
);

j) 删除数学系所有学生选课记录

delete 
from sc
where sno in
(
select sno 
from student
where sdept='ma'
);

k) 删除不及格的学生选课记录

delete 
from sc
where grade<60;

l) 查询每一门课程成绩都大于等于80分的学生学号、姓名和性别,把值送往另一个已经存在的基本表STU(SNO,SNAME,SSEX)

create table stu
(sno char(8),
sname char(8) ,
ssex char(2)
);
insert into stu(Sno,Sname,Ssex)
select sno,sname,ssex 
from student 
where sno in 
(select sno 
from sc 
group by sno 
having min(grade)>80);

m) 把所有学生学号和课程号连接追加到新表中

create table stu1
(
sno char(8),
cno char(3)
);
insert into stu1(sno,cno)
select sno,cno
from sc;

n) 所有学生年龄增1

update student
set sage=sage+1;

o) 统计3门以上课程不及格的学生把相应的学生姓名、系别追加到另外一个表中

create table stu2
(
sname char(8),
sdept char(20)
);
insert into stu2(sname,sdept)
select sname,sdept
from student
where sno in
(
select distinct sno
from sc
where grade<60
group by sno
having count(grade)>=3
);


  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值