《数据库参考》

R10-1 添加一条学生记录

本题目要求编写 Insert语句,在stu表中添加一条学生记录:

学号:S012,姓名:周强,性别:1,其它属性为NULL.

insert into stu values('S012','周强','1',null,null,null)

R10-2 添加学生成绩记录

在sc表中,为学号为S012的学生添加以下学生选课成绩记录。

选修C001课程,成绩为90。

选修C002课程,成绩为空。

注意:每条inser语句应以";"结束。

insert into sc

values('S012','C001',90);

insert into sc

values('S012','C002',null);

R10-3 批量插入学生记录

本题目要求编写Insert语句,

将stu表中的软件工程专业(专业号mno为'02')的学生记录批量插入到一个学生简表softstu表中。

insert into softstu(sno,sname)

select stu.sno,stu.sname

from stu

where mno='02';

R10-4 检索部分教师并插入新表

本题目要求编写 Insert语句,

检索所授每门课程平均成绩均大于70分的教师姓名,并将检索的值插入一个新的教师表faculty表中

insert into faculty

select distinct teacher

from cou

where teacher not in (

select teacher

from (select cno ,avg(grade) avg_grade from sc group by sc.cno) a innerjoin cou on cou.cno=a.cno

where avg_grade<=70

)

and teacher in (

select teacher

from sc inner join cou on cou.cno=sc.cno)

R10-5 插入学生总学分表

本题目要求编写Insert语句,

计算每位同学获得的总学分,并将所有学生的总学分按学号升序排序后一起插入到totalcredit表中。

注意:

1)当某门课程成绩在60分以上时才能合计计入总学分

2)如果某学生尚未选修任何课程时,总学分计为0,并插入到totalcredit表中。

insert into totalcredit

select sno,sum(credit)

from(

selectstu.sno sno,case when sc.grade>=60 then credit else 0 end credit

fromstu left outer join sc on stu.sno=sc.sno left outer join cou on sc.cno=cou.cno

groupby stu.sno,credit,grade) a

group by sno

R10-6 修改女生成绩

本题目要求编写UPDATE语句,

把所有低于75分的女生成绩提高5%;

update sc,stu set grade=grade*1.05

where

stu.sno=sc.sno

and sc.grade < 75

and stu.sex=0

R10-7 修改学生选课成绩

本题目要求编写UPDATE语句,

在SC表中修改‘C001’课程的成绩,若成绩小于70分则提高5%,若成绩在70分以上(含70分)则提高4%

UPDATE

sc

SET

grade = case

WHEN sc.grade < 70 THEN grade* 1.05

WHEN sc.grade >= 70 THEN grade * 1.04

ELSE grade

END

WHERE

cno = 'C001';

R10-8 添加成绩等级rank字段

本题目要求编写UPDATE语句,

填写SC表中的成绩等级rank字段,按60分以下为E,60-69为D,70-79为C,80-89为B,90及以上为A,其它情况为NULL。

UPDATE

sc

SET

rank = case

WHEN sc.grade < 60 THEN 'E'

WHEN sc.grade >= 60 and sc.grade < 70 THEN 'D'

WHEN sc.grade >= 70 and sc.grade < 80 THEN 'C'

WHEN sc.grade >= 80 and sc.grade < 90 THEN 'B'

WHEN sc.grade >= 90 THEN 'A'

ELSE NULL

END

R10-9 计算并填写学生获得的总学分

本题目要求编写UPDATE语句,

计算每位学生已获得的总学分并填写在stu表中的totalcredit字段。

其中,总学分为每个学生通过的选修课程的学分数总和,注意:只有在60分以上的选课成绩才能获得该门课程的学分数,每门课程的学分数在cou表中credit字段。

UPDATE stu,(select sno,sum(credit) SUM

from(

selectstu.sno sno,case when sc.grade>=60 then credit else NULL end credit

fromstu left outer join sc on stu.sno=sc.sno left outer join cou on sc.cno=cou.cno

groupby stu.sno,credit,grade) a

group by sno) B

SET stu.totalcredit = B.SUM

where stu.sno = B.sno

R10-10 删除成绩为空的学生选课记录

本题目要求编写DELETE语句,

在SC表中删除成绩为NULL的学生选课记录。

delete from sc

where grade is null;

R10-11 C1-1新增一个区域

在区域表(region)中添加一条记录:区域编号(RegionID)为5,区域描述(RegionDescription)为Center

提示:请使用INSERT语句作答。

INSERT INTO region

VALUES (5,'Center');

R10-12 C1-2新增订单统计信息

统计订单表(orders)中顾客的订单数量,并插入results表中

提示:请使用INSERT语句作答。

insert into results

selectorders.CustomerID,count(orders.CustomerID) OrderCount

from orders

group by CustomerID

R10-13 C2-1修改订单运费

修改订单表(orders)中的运费,将每单运费(Freight)增加50%

提示:请使用UPDATE语句作答。

UPDATE

orders

SET

Freight =Freight * 1.5;

R10-14 C2-2修改特定职工的订单运费

修改订单表(orders)中员工编号(EmployeeID)为3和4的员工的订单,将每单运费(Freight)减少5%

提示:请使用UPDATE语句作答。

UPDATE

orders

SET

Freight = Freight * 0.95

WHERE

EmployeeID = 3OR EmployeeID = 4;

R10-15 C2-3根据运费调整订单单价

对于运费(Freight)超过30.00的订单,将其相关的订单详情表(orderdetails)中产品的单价(UnitPrice)提高15%

提示:请使用UPDATE语句作答。

update orderdetails set UnitPrice=UnitPrice*1.15

where OrderID in (select OrderID fromorders

where Freight >30.00

)

R10-16 C2-4修改订货数量最少的产品单价

对于订单详情表(orderdetails)中订货数量最少的产品,将其单价下调1元

提示:请使用UPDATE语句作答。

Warning:本题可能涉及mysql中有关You can't specify target table for update in FROM clause的错误,需要适当调整语句写法

update orderdetails set UnitPrice=UnitPrice-1

order by Quantity asc

limit 1

R10-17 C3-1删除特定城市的顾客信息

删除顾客表(customers)中城市(City)为London的顾客信息

提示:请使用DELETE语句作答。

delete

from customers

where City='London'

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值