数据库作业!!!根据下面的描述和ER图,写出下面的查询语句
假设学校学生会组织了多个俱乐部,比如足球俱乐部、文学俱乐部、篮球俱乐部等,同学们可以自由报名参加,一个同学也可参加多个俱乐部。提示,学生入会登记表是个关联实体,它将学生与...
假设学校学生会组织了多个俱乐部,比如足球俱乐部、文学俱乐部、篮球俱乐部等,同学们可以自由报名参加,一个同学也可参加多个俱乐部。提示,学生入会登记表是个关联实体,它将学生与俱乐部之间的多对多联系分解成了两个一对多联系。在学生入会登记表中如果一个学生参加了3个俱乐部,就会有3 条记录与之有关,在3 条记录中分别对应着3个不同的俱乐部编号。ER图如下:
题目如下:在上题建立的数据库里建立如下查询:
1. 显示所有俱乐部的编号、名称及成立的年数。
2. 查找07级的会员记录,显示他们的俱乐部编号、俱乐部名称、学号、姓名、所在系,结果按俱乐部编号、学号排序。(假设学号以“2007”打头表示是2007级的学生)
3. 求各系学生的平均入学年龄,列出所在系、人数。
4. 查询人数多于100 人的俱乐部的俱乐部名称、人数。
5. 用两种方法(连接/嵌套……)查询足球俱乐部的会员名单。
6. 建立足球俱乐部的查询视图(属性至少包括学号、姓名、入会日期等)。
7. 查询与“李丽”在同一个系的学生记录。
8. 查询计算机系与数学系同名的同学。
9. 将查询学生入会登记表的权限授予所有用户。
10. 插入单条记录。在学生表中插入一条新入学的学生记录,学号“070401011”,姓名“王冰冰”,男,16岁,计算机系。
11. 插入一批记录(子查询)。假设外语系的学生同时加入网络俱乐部,请将他们的记录插入到学生入会登记表中,入会日期填写当日系统日期。提示:注意子查询的字段列表应与学生入会登记表的字段顺序、数量、类型吻合。
12. 修改单个记录的数据。将学号为“050401004”的同学姓名更改为“钱小云”。
13. 修改表结构,再批量修改记录的数据。先使用命令ALTER TABLE在“俱乐部”表中增加“会费”一列,然后用UPDATE命令将该表中所有俱乐部会费置为10.00(表示10元)。
14. 删除单个记录。删除名为“王冰冰”的学生记录。
15. 删除一批记录。将所有02级的学生从学生入会登记表中删除。 展开
题目如下:在上题建立的数据库里建立如下查询:
1. 显示所有俱乐部的编号、名称及成立的年数。
2. 查找07级的会员记录,显示他们的俱乐部编号、俱乐部名称、学号、姓名、所在系,结果按俱乐部编号、学号排序。(假设学号以“2007”打头表示是2007级的学生)
3. 求各系学生的平均入学年龄,列出所在系、人数。
4. 查询人数多于100 人的俱乐部的俱乐部名称、人数。
5. 用两种方法(连接/嵌套……)查询足球俱乐部的会员名单。
6. 建立足球俱乐部的查询视图(属性至少包括学号、姓名、入会日期等)。
7. 查询与“李丽”在同一个系的学生记录。
8. 查询计算机系与数学系同名的同学。
9. 将查询学生入会登记表的权限授予所有用户。
10. 插入单条记录。在学生表中插入一条新入学的学生记录,学号“070401011”,姓名“王冰冰”,男,16岁,计算机系。
11. 插入一批记录(子查询)。假设外语系的学生同时加入网络俱乐部,请将他们的记录插入到学生入会登记表中,入会日期填写当日系统日期。提示:注意子查询的字段列表应与学生入会登记表的字段顺序、数量、类型吻合。
12. 修改单个记录的数据。将学号为“050401004”的同学姓名更改为“钱小云”。
13. 修改表结构,再批量修改记录的数据。先使用命令ALTER TABLE在“俱乐部”表中增加“会费”一列,然后用UPDATE命令将该表中所有俱乐部会费置为10.00(表示10元)。
14. 删除单个记录。删除名为“王冰冰”的学生记录。
15. 删除一批记录。将所有02级的学生从学生入会登记表中删除。 展开
4个回答
展开全部
1. 显示所有俱乐部的编号、名称及成立的年数。
SELECT 俱乐部编号,俱乐部名称,DATEDIFF(FROMDATE ,DEALDATE) FROM 俱乐部
查找07级的会员记录,显示他们的俱乐部编号、俱乐部名称、学号、姓名、所在系,结果按俱乐部编号、学号排序。(假设学号以“2007”打头表示是2007级的学生)
SELECT * FORM 俱乐部,学生表 WHERE 学号 LIKE ‘2007%’
俱乐部.姓名=学生.姓名
GROUP BY 俱乐部编号,学号
求各系学生的平均入学年龄,列出所在系、人数。
SELECT 系,sum(*) ,avg(l年龄)FORM 学生表 WHERE 系=‘*’
查询人数多于100 人的俱乐部的俱乐部名称、人数。
SELECT 名称,sum(俱乐部名称 )from 俱乐部 where sum(俱乐部0>100
5. 用两种方法(连接/嵌套……)查询足球俱乐部的会员名单。
这个时间原因,不写了,应该简单!
6. 建立足球俱乐部的查询视图(属性至少包括学号、姓名、入会日期等)。
CREATE VIEW football-view
AS
SELECT 足球俱乐部,学号 ,姓名,入会日期
FROM
学生入会登记
GROUP BY 学号
7. 查询与“李丽”在同一个系的学生记录。
SELECT 所在系 FROM 学生表
WHERE 所在系=(SELECT 所在写 FROM 学生表 WHERE name=李丽 )
8. 查询计算机系与数学系同名的同学。
我自己也糊涂这道!
将查询学生入会登记表的权限授予所有用户。
GRANT SELECT TO
USER
本题不能保证正确!
10. 插入单条记录。在学生表中插入一条新入学的学生记录,学号“070401011”,姓名“王冰冰”,男,16岁,计算机系。
INSERT INTO 学生表(学号,姓名,性别,入学年龄,所在系)
VALUES (070401011,王冰冰”,男,16岁,计算机系)
11. 插入一批记录(子查询)。假设外语系的学生同时加入网络俱乐部,请将他们的记录插入到学生入会登记表中,入会日期填写当日系统日期。提示:注意子查询的字段列表应与学生入会登记表的字段顺序、数量、类型吻合。
这道题我也脑袋糊了
12. 修改单个记录的数据。将学号为“050401004”的同学姓名更改为“钱小云”。
UPDATE 学生入会登记表 SET name= 钱小云
WHERE 学号= ‘050401004’
13. 修改表结构,再批量修改记录的数据。先使用命令ALTER TABLE在“俱乐部”表中增加“会费”一列,然后用UPDATE命令将该表中所有俱乐部会费置为10.00(表示10元)。
1 ALTER TABLE 俱乐部 ADD 会费;
2 UPDATE 俱乐部 SET 会费=10.00
14. 删除单个记录。删除名为“王冰冰”的学生记录。
DELETER FROM 学生表 WHERE name =‘王冰冰’
15. 删除一批记录。将所有02级的学生从学生入会登记表中删除。
DELETER FROM 学生入会登记表 WHERE 学号 LIKE '2002%'
声明:以上书写可能乱,个人才疏学浅,有几道也询问过同学.不能保证正确哦,上数据库的课老师也逮得严。实在的话是:这个大学还是没学到多少啊.我郁闷了一下午。加油。514886311qq,多多指教哦!
SELECT 俱乐部编号,俱乐部名称,DATEDIFF(FROMDATE ,DEALDATE) FROM 俱乐部
查找07级的会员记录,显示他们的俱乐部编号、俱乐部名称、学号、姓名、所在系,结果按俱乐部编号、学号排序。(假设学号以“2007”打头表示是2007级的学生)
SELECT * FORM 俱乐部,学生表 WHERE 学号 LIKE ‘2007%’
俱乐部.姓名=学生.姓名
GROUP BY 俱乐部编号,学号
求各系学生的平均入学年龄,列出所在系、人数。
SELECT 系,sum(*) ,avg(l年龄)FORM 学生表 WHERE 系=‘*’
查询人数多于100 人的俱乐部的俱乐部名称、人数。
SELECT 名称,sum(俱乐部名称 )from 俱乐部 where sum(俱乐部0>100
5. 用两种方法(连接/嵌套……)查询足球俱乐部的会员名单。
这个时间原因,不写了,应该简单!
6. 建立足球俱乐部的查询视图(属性至少包括学号、姓名、入会日期等)。
CREATE VIEW football-view
AS
SELECT 足球俱乐部,学号 ,姓名,入会日期
FROM
学生入会登记
GROUP BY 学号
7. 查询与“李丽”在同一个系的学生记录。
SELECT 所在系 FROM 学生表
WHERE 所在系=(SELECT 所在写 FROM 学生表 WHERE name=李丽 )
8. 查询计算机系与数学系同名的同学。
我自己也糊涂这道!
将查询学生入会登记表的权限授予所有用户。
GRANT SELECT TO
USER
本题不能保证正确!
10. 插入单条记录。在学生表中插入一条新入学的学生记录,学号“070401011”,姓名“王冰冰”,男,16岁,计算机系。
INSERT INTO 学生表(学号,姓名,性别,入学年龄,所在系)
VALUES (070401011,王冰冰”,男,16岁,计算机系)
11. 插入一批记录(子查询)。假设外语系的学生同时加入网络俱乐部,请将他们的记录插入到学生入会登记表中,入会日期填写当日系统日期。提示:注意子查询的字段列表应与学生入会登记表的字段顺序、数量、类型吻合。
这道题我也脑袋糊了
12. 修改单个记录的数据。将学号为“050401004”的同学姓名更改为“钱小云”。
UPDATE 学生入会登记表 SET name= 钱小云
WHERE 学号= ‘050401004’
13. 修改表结构,再批量修改记录的数据。先使用命令ALTER TABLE在“俱乐部”表中增加“会费”一列,然后用UPDATE命令将该表中所有俱乐部会费置为10.00(表示10元)。
1 ALTER TABLE 俱乐部 ADD 会费;
2 UPDATE 俱乐部 SET 会费=10.00
14. 删除单个记录。删除名为“王冰冰”的学生记录。
DELETER FROM 学生表 WHERE name =‘王冰冰’
15. 删除一批记录。将所有02级的学生从学生入会登记表中删除。
DELETER FROM 学生入会登记表 WHERE 学号 LIKE '2002%'
声明:以上书写可能乱,个人才疏学浅,有几道也询问过同学.不能保证正确哦,上数据库的课老师也逮得严。实在的话是:这个大学还是没学到多少啊.我郁闷了一下午。加油。514886311qq,多多指教哦!
展开全部
1. 显示所有俱乐部的编号、名称及成立的年数。
SELECT 俱乐部编号,名称,to_char(成立日期,'YYYY') AS 成立年份
FROM 俱乐部
;
2. 查找07级的会员记录,显示他们的俱乐部编号、俱乐部名称、学号、姓名、所在系,结果按俱乐部编号、学号排序。(假设学号以“2007”打头表示是2007级的学生)
SELECT C.俱乐部编号,C.俱乐部名称,B.学号,A.姓名,A.所在系
FROM 学生 A
,学生入会登记 B
,俱乐部 C
WHERE A.学号 = B.学号
AND B.俱乐部编号 = C.俱乐部编号
AND A.入学年龄 = '2007'
ORDER BY C.俱乐部编号,B.学号
3. 求各系学生的平均入学年龄,列出所在系、人数。
SELECT AVG(入学年龄),所在系,COUNT(学号) AS 人数
FROM 学生
GROUP BY 所在系
4. 查询人数多于100 人的俱乐部的俱乐部名称、人数。
SELECT COUNT(C.学号) AS 人数,A.俱乐部名称
FROM 俱乐部 A
,学生入会登记 B
,学生 C
WHERE A.俱乐部编号 = B.俱乐部编号
AND B.学号 = C.学号
GROUP BY A.俱乐部名称
HAVING COUNT(C.学号)>= 100
;
5. 用两种方法(连接/嵌套……)查询足球俱乐部的会员名单。
SELECT C.姓名
FROM 俱乐部 A
,学生入会登记 B
,学生 C
WHERE A.俱乐部编号 = B.俱乐部编号
AND B.学号 = C.学号
AND A.俱乐部名称 = '足球俱乐部'
;
SELECT C.姓名
FROM 俱乐部 A
,学生入会登记 B
,学生 C
WHERE A.俱乐部编号 = B.俱乐部编号
AND B.学号 = C.学号
AND A.俱乐部名称 = '足球俱乐部'
;
6. 建立足球俱乐部的查询视图(属性至少包括学号、姓名、入会日期等)。
CREATE VIEW 足球俱乐部
AS
SELECT C.学号,C.姓名,B.入会日期,C.所在系,A.俱乐部名称
FROM 俱乐部 A
,学生入会登记 B
,学生 C
WHERE A.俱乐部编号 = B.俱乐部编号
AND B.学号 = C.学号
AND A.俱乐部名称 = '足球俱乐部'
;
7. 查询与“李丽”在同一个系的学生记录。
SELECT A.姓名,A.学号,A.性别,A.入学年龄,A.所在系
FROM 学生 A
,学生 B
WHERE A.姓名 = B.姓名
AND A.所在系 = B.所在系
AND A.姓名 = '李丽'
8. 查询计算机系与数学系同名的同学。
SELECT A.姓名,A.学号,A.所在系,B.姓名,B.学号,B.所在系
FROM 学生 A
,学生 B
WHERE A.姓名 = B.姓名
AND A.所在系 = '计算机系'
AND B.所在系 = '数学系系'
9. 将查询学生入会登记表的权限授予所有用户。
GRANT SELECT ON 学生入会登记表 TO PUBLIC;
10. 插入单条记录。在学生表中插入一条新入学的学生记录,学号“070401011”,姓名“王冰冰”,男,16岁,计算机系。
INSERT INTO 学生 (学号,姓名,性别,入学年龄,所在系)
VALUES ('070401011','王冰冰',16,'计算机系')
11. 插入一批记录(子查询)。假设外语系的学生同时加入网络俱乐部,请将他们的记录插入到学生入会登记表中,入会日期填写当日系统日期。提示:注意子查询的字段列表应与学生入会登记表的字段顺序、数量、类型吻合。
INSERT INTO 学生入会登记表 (学号,俱乐部编号,入会日期)
SELECT 学号
,(SELECT 俱乐部编号 FROM 俱乐部 WHERE 俱乐部名称='网络俱乐部')
,SYSDATE
FROM 学生
WHERE 所在系 = '外语系'
;
12. 修改单个记录的数据。将学号为“050401004”的同学姓名更改为“钱小云”。
UPDATE 学生
SET 姓名 = '钱小云'
WHERE 学号 = '050401004'
;
13. 修改表结构,再批量修改记录的数据。先使用命令ALTER TABLE在“俱乐部”表中增加“会费”一列,然后用UPDATE命令将该表中所有俱乐部会费置为10.00(表示10元)。
ALTER TABLE 俱乐部 ADD 会费 NUMBER;
UPDATE 俱乐部
SET 会费 = 10.00;
14. 删除单个记录。删除名为“王冰冰”的学生记录。
DELETE FROM 学生 WHERE 姓名 = '王冰冰';
15. 删除一批记录。将所有02级的学生从学生入会登记表中删除。
DELETE FROM 学生入会登记
WHERE 学号 IN
(SELECT 学号
FROM 学生
WHERE 入学年龄 = '2002'
)
SELECT 俱乐部编号,名称,to_char(成立日期,'YYYY') AS 成立年份
FROM 俱乐部
;
2. 查找07级的会员记录,显示他们的俱乐部编号、俱乐部名称、学号、姓名、所在系,结果按俱乐部编号、学号排序。(假设学号以“2007”打头表示是2007级的学生)
SELECT C.俱乐部编号,C.俱乐部名称,B.学号,A.姓名,A.所在系
FROM 学生 A
,学生入会登记 B
,俱乐部 C
WHERE A.学号 = B.学号
AND B.俱乐部编号 = C.俱乐部编号
AND A.入学年龄 = '2007'
ORDER BY C.俱乐部编号,B.学号
3. 求各系学生的平均入学年龄,列出所在系、人数。
SELECT AVG(入学年龄),所在系,COUNT(学号) AS 人数
FROM 学生
GROUP BY 所在系
4. 查询人数多于100 人的俱乐部的俱乐部名称、人数。
SELECT COUNT(C.学号) AS 人数,A.俱乐部名称
FROM 俱乐部 A
,学生入会登记 B
,学生 C
WHERE A.俱乐部编号 = B.俱乐部编号
AND B.学号 = C.学号
GROUP BY A.俱乐部名称
HAVING COUNT(C.学号)>= 100
;
5. 用两种方法(连接/嵌套……)查询足球俱乐部的会员名单。
SELECT C.姓名
FROM 俱乐部 A
,学生入会登记 B
,学生 C
WHERE A.俱乐部编号 = B.俱乐部编号
AND B.学号 = C.学号
AND A.俱乐部名称 = '足球俱乐部'
;
SELECT C.姓名
FROM 俱乐部 A
,学生入会登记 B
,学生 C
WHERE A.俱乐部编号 = B.俱乐部编号
AND B.学号 = C.学号
AND A.俱乐部名称 = '足球俱乐部'
;
6. 建立足球俱乐部的查询视图(属性至少包括学号、姓名、入会日期等)。
CREATE VIEW 足球俱乐部
AS
SELECT C.学号,C.姓名,B.入会日期,C.所在系,A.俱乐部名称
FROM 俱乐部 A
,学生入会登记 B
,学生 C
WHERE A.俱乐部编号 = B.俱乐部编号
AND B.学号 = C.学号
AND A.俱乐部名称 = '足球俱乐部'
;
7. 查询与“李丽”在同一个系的学生记录。
SELECT A.姓名,A.学号,A.性别,A.入学年龄,A.所在系
FROM 学生 A
,学生 B
WHERE A.姓名 = B.姓名
AND A.所在系 = B.所在系
AND A.姓名 = '李丽'
8. 查询计算机系与数学系同名的同学。
SELECT A.姓名,A.学号,A.所在系,B.姓名,B.学号,B.所在系
FROM 学生 A
,学生 B
WHERE A.姓名 = B.姓名
AND A.所在系 = '计算机系'
AND B.所在系 = '数学系系'
9. 将查询学生入会登记表的权限授予所有用户。
GRANT SELECT ON 学生入会登记表 TO PUBLIC;
10. 插入单条记录。在学生表中插入一条新入学的学生记录,学号“070401011”,姓名“王冰冰”,男,16岁,计算机系。
INSERT INTO 学生 (学号,姓名,性别,入学年龄,所在系)
VALUES ('070401011','王冰冰',16,'计算机系')
11. 插入一批记录(子查询)。假设外语系的学生同时加入网络俱乐部,请将他们的记录插入到学生入会登记表中,入会日期填写当日系统日期。提示:注意子查询的字段列表应与学生入会登记表的字段顺序、数量、类型吻合。
INSERT INTO 学生入会登记表 (学号,俱乐部编号,入会日期)
SELECT 学号
,(SELECT 俱乐部编号 FROM 俱乐部 WHERE 俱乐部名称='网络俱乐部')
,SYSDATE
FROM 学生
WHERE 所在系 = '外语系'
;
12. 修改单个记录的数据。将学号为“050401004”的同学姓名更改为“钱小云”。
UPDATE 学生
SET 姓名 = '钱小云'
WHERE 学号 = '050401004'
;
13. 修改表结构,再批量修改记录的数据。先使用命令ALTER TABLE在“俱乐部”表中增加“会费”一列,然后用UPDATE命令将该表中所有俱乐部会费置为10.00(表示10元)。
ALTER TABLE 俱乐部 ADD 会费 NUMBER;
UPDATE 俱乐部
SET 会费 = 10.00;
14. 删除单个记录。删除名为“王冰冰”的学生记录。
DELETE FROM 学生 WHERE 姓名 = '王冰冰';
15. 删除一批记录。将所有02级的学生从学生入会登记表中删除。
DELETE FROM 学生入会登记
WHERE 学号 IN
(SELECT 学号
FROM 学生
WHERE 入学年龄 = '2002'
)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
安财的明天早上要交的access作业吧,我也选了这门坑爹的课,现在真愁着来~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据库是什么啊?oracle?mysql?。。。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询