数据库原理实验-sql查询操作(二)

练习一

题目:

在成绩管理数据库cjgl.accdb中,已经建立了三个表对象,具体结构如下:
Student(Sno,Sname,Ssex,Sage,Sdept)
Course(Cno,Cname,Cpno,Ccredit)
SC(Sno,Cno,Grade)。
以上三个表对应的表名和字段的中文含义分别为:
学生表(学号、姓名、性别、年龄、所在系)
课程表(课程号、课程名、先修课号、学分)
学生选课表(学号、课程号、成绩)

  • 查询姓名为三个汉字且姓名中间的字为“燕”的学生详细情况(student的所有字段)。

like通配符
%表示任数量字符,_表示一个字符

select *
from 学生表
where 姓名 like '_燕子_'
  • 查询所有不姓“刘”的学生的姓名。
select 姓名
from 学生表
where 姓名 not like '刘%'
  • 求各个课程号及相应的最高分、最低分、平均分、选课人数。
select max(成绩),min(成绩),avg(成绩),count(*)
from 学生选课表
group by 课程号
  • 查询选修了三门以上课程的学生学号、选课门数。
select 学号,count(*) 选课门数
from 学生选课表
group by 学号
having count(*) >3

练习二

题目:

在数据库"物流管理.accdb"中,已经建立了四个表对象,具体结构如下:
仓库(仓库号、城市、面积)
职工(职工号、仓库号、工资)
订购单(职工号、供应商号、订购单号、订购日期,总金额)
供应商(供应商号、供应商名、地址)
将2008年的订购单记录全部追加到表“订购单_bak”中(订购单_bak和订购单表结构相同)。

  1. 将订购单中所有的订购日期更改为两年后(增加两年)
update 订购单 
set 订购日期=订购日期+2
  1. 将北京的仓库面积增加100。
update 仓库
set 面积=面积+100
  1. 给所有低于平均工资的职工工资增加10%。
update 职工
set 工资=工资*110%
where 职工号 in{
	select 职工号
	from 职工
	where 工资<avg(工资)
}
  1. 删除郑州的供应商记录。
delete from 供应商
where 地址='郑州'
  1. 删除“职工”表中没有订购记录的职工(指在订购单表中没有该职工的职工号)。
delete from 职工
where 职工号 in{
	select 职工.职工号
	from 职工 left join 订购单 where 职工.职工号=订购单.职工号
	where 订购单.职工号 is null
}

这一部分是接着上一部分的sql查询操作(一)来的,相对上一部分难度稍低
练习二涉及了一部分的更新和删除的操作
码字不易,给个赞再走吧!如有错误请及时指正!
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值