假设学校学生会组织了多个俱乐部,比如足球俱乐部、文学俱乐部、篮球俱乐部等,同学们可以自由报名参加,一个同学也可参加多个俱乐部。erd图如下:
1. 显示所有俱乐部的编号、名称及成立的年数。
select 俱乐部编号,俱乐部名称,year(getdate())year(成立日期) 成立年数。
from 俱乐部
2. 查找07级的会员记录,显示他们的俱乐部编号、俱乐部名称、学号、姓名、所在系,结果按俱乐部编号、学号排序。(假设学号以“2007”打头表示是2007级的学生)
select 俱乐部。俱乐部编号,俱乐部名称,学生。学号,姓名,所在系。
from 俱乐部,学生入会登记, 学生。
where 俱乐部。俱乐部编号=学生入会登记。俱乐部编号 and 学生。学号=学生入会登记。学号。
and 学号like '2007%'
order by 俱乐部。俱乐部编号,学生。学号。
3. 查询人数多于100 人的俱乐部的俱乐部名称、人数。
select 俱乐部。俱乐部名称,count(学生入会登记。学号)
from 俱乐部,学生入会登记。
where 俱乐部。俱乐部编号=学生入会登记。俱乐部编号。
group by 俱乐部。俱乐部名称。
h**ing count(学生入会登记。学号)>100
4. 列出所有同学的学号、姓名、俱乐部编号,非会员的同学只列出学号姓名、俱乐部编号一列为空。
select 学生。学号,姓名,俱乐部编号。
from 学生left outer join 学生入会登记on (学生。学号=学生入会登记。学号)
5. 用两种方法(连接/嵌套……)查询足球俱乐部的会员名单。
--第一种方法(嵌套查询)
select 姓名。
from 学生。
where 学号 in (
select 学号。
from 学生入会登记。
where 俱乐部编号 in (
select 俱乐部编号。
from 俱乐部。
where 俱乐部名称='足球俱乐部'))
第二种方法(连接查询)
select distinct 姓名。
from 学生,学生入会登记,俱乐部。
where 俱乐部。俱乐部编号=学生入会登记。俱乐部编号 and 学生。学号=学生入会登记。学号。
and 俱乐部名称='足球俱乐部'
6. 建立足球俱乐部的查询视图(属性至少包括学号、姓名、入会日期等)。
create view 足球俱乐部。
asselect 学生。学号,姓名,入会日期。
from 学生,学生入会登记,俱乐部
where 俱乐部。俱乐部编号=学生入会登记。俱乐部编号 and 学生。学号=学生入会登记。学号。
and 俱乐部名称='足球俱乐部'
7. 查询与“李丽”在同一个系的学生记录。
select *
from 学生。
where 所在系 in (select 所在系。
from 学生。
where 姓名='李丽')
8. 查询至少参加了学号为“070201007”的同学所参加的所有俱乐部的学生学号。
select distinct 学号。
from 学生入会登记 s1
where not exists(
select *
from 学生入会登记 s2
where 学号='070201007' and not exists(
select *
from 学生入会登记 s3
where s1.学号=s3.学号and s2.俱乐部编号=s3.俱乐部编号))
9. 插入一批记录(子查询)。假设外语系的学生同时加入网络俱乐部,请将他们的记录插入到学生入会登记表中,入会日期填写当日系统日期。
insert into 学生入会登记。
select 学生。学号,( select 俱乐部编号from 俱乐部where 俱乐部名称='网络俱乐部'),getdate()
from 学生 where 所在系='外语'
10. 修改单个记录的数据。将学号为“050401004”的同学姓名更改为“李小炎”。
update 学生。
set 姓名='李小炎'
where 学号='050401004'
11. 修改表结构,再批量修改记录的数据。先使用命令alter table在“俱乐部”表中增加“会费”一列,然后用update命令将该表中所有俱乐部会费置为10.00。
alter table 俱乐部 add 会费 money;
update 俱乐部。
set 会费=10.00
12. 删除一批记录。将所有02级的已毕业学生从学生入会登记表中删除。
delete
from 学生入会登记。
where 学号like '2002%'
SQL分类查询 作业
sql分类查询测试题。班级序号姓名。现有数据库 成绩管理。dbc 数据表文件 学生。dbf 学号 c 6 姓名 c 8 性别 c 2 年龄 n 2 党员否 l 院系号 c 8 备注 m 以学号建立了主索引,以院系建立了普通索引 成绩。dbf 学号 c 6 课程号 c 2 成绩 n 2 学号和课程号分...
sql查询举例 含答案
查询练习。一 简单查询 无条件查询 1 查询 学生档案 表中所有的记录。select form 学生档案。2 查询 学生档案 表中全体学生的姓名 学号 家庭地址。select 姓名,学号,家庭地址 from 学生档案。二 有条件查询。1 查询 成绩管理 表中语文成绩在80分以下的学生的学号。sele...
sql语句作业2 高级查询附答案
sql作业2 高级查询。一 连接查询。例1.37 查询每个学生及其选修课程的情况。select students.reports.from students,reports where 例1.38 查询每个学生的学号 sno 姓名 sname 选修的课程名 cname 及成绩 grade selec...