SQL的常用数据更新操作

SQL的常用数据更新操作

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

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

b) 插入如下选课记录(95030,1)

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) 插入如下选课记录(95030,1)

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
);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值