hc学习平台

 找回密码
 立即注册
搜索
热搜: 活动 交友 javakc
 › 学习交流 › MySql › 关于学生表、课程表、成绩表的查询
查看: 712|回复: 1
打印 上一主题 下一主题

关于学生表、课程表、成绩表的查询

[复制链接]

2249

主题

0

帖子

0

博客

admin

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

跳转到指定楼层
楼主
发表于2015-08-06 14:39:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

学生表tbl_student:

学号:sid

姓名:sname

性别:sex

年龄:age

组织部门:dept







课程表tbl_course:

课程编号:cid

课程名称:cname




成绩表tbl_grade:

成绩编号:gid

学号:sid

课程编号:cid

成绩:grade






  1. 取出学生个数

  2. 计算每个学生的总成绩

  3. 查询选修了“计算机原理”的学生学号和姓名

  4. 查询“周星驰”同学选修了的课程名字

  5. 查询选修了五门课程的学生学号和姓名

  6. 查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩

  7. 如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序。

建表sql:

create table tbl_student(
 sid   number,
 sname varchar2(10),
 sex   varchar2(10),
 age   number,
 dept  number
);
create table tbl_course(
 cid   number,
 cname varchar2(10)
);
create table tbl_grade(
 gid   number,
 sid   number,
 cid   number,
 grade number
);
insert into tbl_student (sid,sname)values(1,'张三');
insert into tbl_student (sid,sname)values(2,'李四');
insert into tbl_student (sid,sname)values(3,'王五');
insert into tbl_student (sid,sname)values(4,'赵六');

insert into tbl_course (cid,cname)values(1,'英语');
insert into tbl_course (cid,cname)values(2,'语文');
insert into tbl_course (cid,cname)values(3,'数学');

insert into tbl_grade (gid,sid,cid,grade) values(1,1,1,78);
insert into tbl_grade (gid,sid,cid,grade) values(2,1,2,74);
insert into tbl_grade (gid,sid,cid,grade) values(3,1,3,88);
insert into tbl_grade (gid,sid,cid,grade) values(4,2,1,98);
insert into tbl_grade (gid,sid,cid,grade) values(5,2,2,56);
insert into tbl_grade (gid,sid,cid,grade) values(6,2,3,48);
insert into tbl_grade (gid,sid,cid,grade) values(7,3,1,74);
insert into tbl_grade (gid,sid,cid,grade) values(8,3,2,97);
insert into tbl_grade (gid,sid,cid,grade) values(9,4,1,28);
insert into tbl_grade (gid,sid,cid,grade) values(10,4,2,79);
insert into tbl_grade (gid,sid,cid,grade) values(11,4,3,76);
commit;

 

0

主题

1181

帖子

2

博客

yjz123456

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-08-23 09:07:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


    --取出学生个数
select count(1) from tbl_student;
    --计算每个学生的总成绩
select s.sname,sum(g.grade)from tbl_student s,tbl_grade g where s.sid=g.sid group by s.sname;
select s.sname,t.sg from tbl_student s,(select sid,sum(grade) from tbl_grade group by sid) t where s.sid=t.sid ;
    --查询选修了“计算机原理”的学生学号和姓名
select s.sid,s.same from tbl_student s,tbl_course c,tbl_grade g where s.sid=g.sid and g.cid=c.cid and c.cname='计算机原理';
    --查询“周星驰”同学选修了的课程名字
select c.cname from tbl_student s,tbl_course c,tbl_grade g where s.sid=g.sid and g.cid=c.cid and s.sname='周星驰'
    --查询选修了五门课程的学生学号和姓名
    select s.sid,s.sname from  tbl_student s,
(select sid from tbl_grade group by sid having count(1)=3) t where s.sid=t.sid;
    --查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩
select s.sid,s.sname,c.cname,t1.maxg
    from(select g.sid,t.cid,t.maxg from
        (select cid,max(grade) maxg from tbl_grade g group by cid) t,tbl_grade g where t.cid=g.cid and maxg=g.grade) t1,tbl_student s,tbl_course c where t1.cid=c.cid and t1.sid=s.sid;
    --如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序。
    
select s.sname,t.avg_g from
    (select sid ,avg(grade) avg_g from tbl_grade where grade>=60 group by sid) t,tbl_student s where t.sid=s.sid;

0

主题

1402

帖子

0

博客

马鹏磊

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-09 18:33:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

--创建学生表
 create table tbl_student(
 sid   number,
 sname varchar2(10),
 sex   varchar2(10),
 age   number,
 dept  number
);
--创建课程表
create table tbl_course(
 cid   number,
 cname varchar2(10)
);
--创建成绩表
create table tbl_grade(
 gid   number,
 sid   number,
 cid   number,
 grade number
);
insert into tbl_student (sid,sname)values(1,'张三');
insert into tbl_student (sid,sname)values(2,'李四');
insert into tbl_student (sid,sname)values(3,'王五');
insert into tbl_student (sid,sname)values(4,'赵六');

insert into tbl_course (cid,cname)values(1,'英语');
insert into tbl_course (cid,cname)values(2,'语文');
insert into tbl_course (cid,cname)values(3,'数学');

insert into tbl_grade (gid,sid,cid,grade) values(1,1,1,78);
insert into tbl_grade (gid,sid,cid,grade) values(2,1,2,74);
insert into tbl_grade (gid,sid,cid,grade) values(3,1,3,88);
insert into tbl_grade (gid,sid,cid,grade) values(4,2,1,98);
insert into tbl_grade (gid,sid,cid,grade) values(5,2,2,56);
insert into tbl_grade (gid,sid,cid,grade) values(6,2,3,48);
insert into tbl_grade (gid,sid,cid,grade) values(7,3,1,74);
insert into tbl_grade (gid,sid,cid,grade) values(8,3,2,97);
insert into tbl_grade (gid,sid,cid,grade) values(9,4,1,28);
insert into tbl_grade (gid,sid,cid,grade) values(10,4,2,79);
insert into tbl_grade (gid,sid,cid,grade) values(11,4,3,76);
commit;

--取出学生个数
select count(1)
from tbl_student
--计算每个学生的总成绩
select ts.sname,sum(grade)
from tbl_student ts,tbl_grade tg,tbl_course tc
where ts.sid=tg.sid
and tc.cid=tg.cid
group by ts.sname
--查询选修了"计算机原理"的学生学号和姓名
select ts.sid,ts.sname
from tbl_student ts,tbl_course tc
where tc.cname='计算机原理'
--查询周星驰同学选修了的课程名字
select ts.sname,tc.cname
from tbl_student ts,tbl_course tc
where ts.sname='周星驰'
--查询选修了五门课程的学生学号和姓名
select ts.sid,ts.sname
from tbl_student ts,
     (select sid from tbl_grade group by sid having count(1)=5)tg
where ts.sid=tg.sid
--查询单科最高成绩的sql语句,查询的内容包括学生学号,学生姓名,课程编号,成绩


--先查询出课程编号和最高成绩 从成绩表中 想办法查出 学生学号和学生姓名
select cid,max(grade) from tbl_grade tg group by tg.cid
--先找学号??怎么着学号
select s.sid, s.sname, c.cname, t1.maxg
  from (select g.sid, t.cid, t.maxg
       
          from (select cid, max(grade)maxg from tbl_grade group by cid) t,
               tbl_grade g
         where t.cid = g.cid
           and maxg = g.grade) t1,tbl_student s,
       tbl_course c
 where t1.cid = c.cid
   and t1.sid = s.sid
 
--如果以60分为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序

--先查询及格的学生姓名
select sid,avg(grade)  from tbl_grade where grade>'60' group by sid
--删选
select s.sname, t.avg_g

  from (select sid, avg(grade) avg_g
          from tbl_grade
         where grade > '60'
         group by sid) t,
       tbl_student s
 where t.sid = s.sid


 

WR

0

主题

1674

帖子

0

博客

WR

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-06 17:55:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

      --关于学生表、课程表、成绩表的查询
       create table tbl_student(
       sid   number,
       sname varchar2(10),
       sex   varchar2(10),
       age   number,
       dept  number
      );
      create table tbl_course(
       cid   number,
       cname varchar2(10)
      );
      create table tbl_grade(
       gid   number,
       sid   number,
       cid   number,
       grade number
      );
      insert into tbl_student (sid,sname)values(1,'张三');
      insert into tbl_student (sid,sname)values(2,'李四');
      insert into tbl_student (sid,sname)values(3,'王五');
      insert into tbl_student (sid,sname)values(4,'赵六');
     
      insert into tbl_course (cid,cname)values(1,'英语');
      insert into tbl_course (cid,cname)values(2,'语文');
      insert into tbl_course (cid,cname)values(3,'数学');
     
      insert into tbl_grade (gid,sid,cid,grade) values(1,1,1,78);
      insert into tbl_grade (gid,sid,cid,grade) values(2,1,2,74);
      insert into tbl_grade (gid,sid,cid,grade) values(3,1,3,88);
      insert into tbl_grade (gid,sid,cid,grade) values(4,2,1,98);
      insert into tbl_grade (gid,sid,cid,grade) values(5,2,2,56);
      insert into tbl_grade (gid,sid,cid,grade) values(6,2,3,48);
      insert into tbl_grade (gid,sid,cid,grade) values(7,3,1,74);
      insert into tbl_grade (gid,sid,cid,grade) values(8,3,2,97);
      insert into tbl_grade (gid,sid,cid,grade) values(9,4,1,28);
      insert into tbl_grade (gid,sid,cid,grade) values(10,4,2,79);
      insert into tbl_grade (gid,sid,cid,grade) values(11,4,3,76);
      commit;

    --取出学生个数
    select count(1) from tbl_student
    --计算每个学生的总成绩
    select s.sname, sum(g.grade)
      from tbl_student s, tbl_grade g
     where s.sid = g.sid
     group by s.sname
     --4条记录:效率高
    select s.sname, t.sg
      from tbl_student s,
           (select sid, sum(grade) sg from tbl_grade group by sid) t
     where s.sid = t.sid
    --查询选修了“计算机原理”的学生学号和姓名
    select s.sid,s.sname
      from tbl_student s, tbl_grade g, tbl_course c
     where s.sid = g.sid
       and c.cid = g.cid
       and c.cname = '英语'
    --查询“周星驰”同学选修了的课程名字
   select c.cname
     from tbl_student s, tbl_grade g, tbl_course c
    where s.sid = g.sid
      and c.cid = g.cid
      and s.sname = '周星驰'
    --查询选修了五门课程的学生学号和姓名
    select s.sid, s.sname
      from tbl_student s,
           (select sid from tbl_grade group by sid having count(1) = 3) t
     where s.sid = t.sid
    --查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩
    select s.sid, s.sname, c.cname, t1.maxg
      from (select g.sid, t.cid, t.maxg
              from (select cid, max(grade) maxg from tbl_grade group by cid) t,
                   tbl_grade g
             where t.cid = g.cid
               and maxg = g.grade) t1,
           tbl_student s,
           tbl_course c
     where t1.cid = c.cid
       and t1.sid = s.sid
    --如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序。
   select s.sname, t.avg
     from (select sid, avg(grade) avg
             from tbl_grade
            where grade >= 60
            group by sid) t,
          tbl_student s
    where t.sid = s.sid

0

主题

1700

帖子

0

博客

song

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-07 17:23:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

取出学生个数

select count (sid)

from tbl_student


计算每个学生的总成绩

select sname ,sum(grade)
from tbl_student,tbl_grade
where tbl_student.sid=tbl_grade.sid
group by sname


查询选修了“计算机原理”的学生学号和姓名

select sname,tbl_student.sid
from tbl_student,tbl_course,tbl_grade
where tbl_student.sid=tbl_grade.sid  and tbl_grade.cid=tbl_course.cid
   and cname='计算机原理'

查询“周星驰”同学选修了的课程名字
select cname
from tbl_student,tbl_course,tbl_grade
where tbl_student.sid=tbl_grade.sid  and tbl_grade.cid=tbl_course.cid
   and sname='周星驰'


查询选修了五门课程的学生学号和姓名

select sname,tbl_student.sid
from tbl_student,
    (select sid from tbl_grade group by sid having count(1)=5) t
  where tbl_student.sid=t.sid

 

查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩

select s.sid ,s.sname, c.cname,t1.maxg
from ( select g.sid,t.cid,t.maxg
       from (select cid,max(grade) maxg from tbl_grade group by cid) t,
        tbl_grade g
       where t.cid=g.cid
       and maxg=g.grade) t1,
tbl_student s,
tbl_course c
where t1.cid=c.cid
and t1.sid=s.sid
   
如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序
select sname, avg(grade)
from tbl_student,tbl_grade
where tbl_student.sid=tbl_grade.sid and grade>60
group by sname
order by avg(grade)
沙发
发表于2016-09-07 18:23:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1,取出学生个数
select count(*)
from student
2, 计算每个学生的总成绩
select sname,sum(grade)
from tbl_student s,tbl_grade g
where s.sid=g.sid
group by s.sname
3,查询选修了“计算机原理”的学生学号和姓名
select distinct s.sid, sname
  from tbl_student s,
       (select sid
          from tbl_grade g, tbl_course c
         where cname = '计算机原理'
           and g.cid = c.cid) sc
 where s.sid = sc.sid;
4,查询“周星驰”同学选修了的课程名字
select cname
  from tbl_student s, tbl_grade g, tbl_course c
 where g.cid = c.cid
   and s.sid = g.sid
   and sname = '周星驰';
5,查询选修了五门课程的学生学号和姓名
select s.sid, sname
  from tbl_student s,
       (select sid
          from tbl_grade g
         group by sid
        having count(1)= 5) sc
 where s.sid = sc.sid;
6,查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩
select s.sid, sname, c.cid, cname, t1.maxg
  from (select g.sid, sc.cid, sc.maxg
          from (select cid, max(grade) maxg from tbl_grade group by cid) sc,
               tbl_grade g
         where sc.cid = g.cid
           and maxg = g.grade) t1,
       tbl_student s,
       tbl_course c
 where t1.cid = c.cid
   and t1.sid = s.sid;
7,如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序。
select sname, t.avgg
  from (select sid, avg(grade) avgg
          from tbl_grade g
         where grade >=60
         group by sid) t,
       tbl_student s
 where t.sid = s.sid
order by t.avgg

0

主题

1510

帖子

0

博客

zhangjialong

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-08 19:31:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
--创建学生表
create table tbl_student(
 sid   number not null primary key,
 sname varchar2(10),
 sex   varchar2(10),
 age   number,
 dept  number
);
--创建课程表
create table tbl_course(
 cid   number not null primary key,
 cname varchar2(10)
);
--创建成绩表
create table tbl_grade(
 gid   number not null primary key,
 sid   number,
 cid   number,
 grade number,
 foreign key(sid) references tbl_student(sid),
 foreign key(cid) references tbl_course(cid)
);

--录入数据
insert into tbl_student (sid,sname)values(1,'张三');
insert into tbl_student (sid,sname)values(2,'李四');
insert into tbl_student (sid,sname)values(3,'王五');
insert into tbl_student (sid,sname)values(4,'赵六');

insert into tbl_course (cid,cname)values(1,'英语');
insert into tbl_course (cid,cname)values(2,'语文');
insert into tbl_course (cid,cname)values(3,'数学');

insert into tbl_grade (gid,sid,cid,grade) values(1,1,1,78);
insert into tbl_grade (gid,sid,cid,grade) values(2,1,2,74);
insert into tbl_grade (gid,sid,cid,grade) values(3,1,3,88);
insert into tbl_grade (gid,sid,cid,grade) values(4,2,1,98);
insert into tbl_grade (gid,sid,cid,grade) values(5,2,2,56);
insert into tbl_grade (gid,sid,cid,grade) values(6,2,3,48);
insert into tbl_grade (gid,sid,cid,grade) values(7,3,1,74);
insert into tbl_grade (gid,sid,cid,grade) values(8,3,2,97);
insert into tbl_grade (gid,sid,cid,grade) values(9,4,1,28);
insert into tbl_grade (gid,sid,cid,grade) values(10,4,2,79);
insert into tbl_grade (gid,sid,cid,grade) values(11,4,3,76);
commit;

--1.取出学生个数
select count(sname)
from tbl_student

--2.计算每个学生的总成绩
select sname,sum(grade)
from tbl_student s,tbl_grade g
where s.sid=g.sid
group by sname

--3.查询选修了“计算机原理”的学生学号和姓名
select s.sid,s.sname
from tbl_student s,tbl_course c,tbl_grade g
where s.sid=g.sid and c.cid=g.cid and c.cname='计算机原理'

--4.查询“周星驰”同学选修了的课程名字
select sname,c.cname
from tbl_student s,tbl_course c,tbl_grade g
where s.sid=g.sid and c.cid=g.cid and s.sname='周星驰'

--5.查询选修了五门课程的学生学号和姓名
select sname, s.sid
  from tbl_student s,
       (select sid from tbl_grade group by sid having count(1) = 5) t
 where s.sid = t.sid

--6.查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩
select s.sid, s.sname, c.cid, t1.maxg
  from (select g.sid, t.cid, t.maxg
          from (select cid, max(grade) maxg from tbl_grade group by cid) t,
               tbl_grade g
         where t.cid = g.cid
           and maxg = g.grade) t1,
       tbl_student s,
       tbl_course c
 where t1.cid = c.cid
   and t1.sid = s.sid

--7.如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序。
select sname,avg(grade)
from tbl_student s,tbl_grade g
where s.sid=g.sid and g.grade>60
group by sname
order by avg(grade)

0

主题

1518

帖子

0

博客

Cracia

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-07 15:51:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
取出学生个数
select count(1) from tbl_student
 计算每个学生的总成绩
select sum(grade) from tbl_grade group by sid
 查询选修了“计算机原理”的学生学号和姓名
select tbl_student.sname,tbl_student.sid from tbl_student,tbl_course where tbl_course.cname='英语'
 查询“周星驰”同学选修了的课程名字
select tbl_course.cname
  from tbl_student, tbl_course
 where tbl_student.sname = '张三'
 查询选修了五门课程的学生学号和姓名
select s.sid, s.sname
  from tbl_student s,
       (select sid from tbl_grade group by sid having count(1) = 3) t
 where s.sid = t.sid
 查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩
select s.sid, s.sname, c.cname, t1.maxg
  from tbl_student s,
       tbl_course  c,(select g.sid,
                             t.cid,
                             t.maxg from (select cid, max(grade) maxg
                                       from tbl_grade
                                      group by cid)    t,
                             tbl_grade g where t.cid = g.cid and maxg = g.grade)  t1
 where s.sid = t1.sid
   and t1.cid = c.cid
 如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序。
select s.sname,t.avgg from tbl_student s,
(select sid,avg(grade) avgg from tbl_grade where grade>=60 group by sid) t
where s.sid=t.sid

0

主题

1576

帖子

0

博客

liufangyuan

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-08 13:57:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


--取出学生个数
select count(1)学生个数 from tbl_student

--计算每个学生的总成绩
--1
select sname, t.sg
  from tbl_student s,
       (select sid, sum(grade) sg from tbl_grade group by sid) t
 where s.sid = t.sid

--2
select sname, sum(grade) 总成绩
  from tbl_student s, tbl_grade g
 where s.sid = g.sid

 group by s.sname


--查询选修了“英语”的学生学号和姓名
select s.sid, s.sname
  from tbl_student s, tbl_grade g, tbl_course c
 where s.sid = g.sid
   and c.cid = g.cid
   and cname = '英语'

--查询“王五”同学选修了的课程名字
select cname
  from tbl_student s, tbl_grade g, tbl_course c
 where s.sid = g.sid
   and s.sname = '王五' group by cname

--查询选修了三门课程的学生学号和姓名
select t.sid, sname
  from tbl_student s,
       (select sid from tbl_grade group by sid having count(1) = 3) t
 where s.sid = t.sid

--查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩
select s.sid, s.sname, m.cid, m.max
  from (select g.sid, t.cid, t.maxg max
          from (select cid, max(grade) maxg from tbl_grade group by cid) t,
               tbl_grade g
         where g.cid = t.cid
           and maxg = g.grade) m,
       tbl_student s
 where m.sid = s.sid


--如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序。
select sname, t.avgg
  from (select sid, avg(grade) avgg
          from tbl_grade g
         where grade > 60
         group by sid
         order by avgg) t,
       tbl_student s
 where s.sid = t.sid

0

主题

1721

帖子

0

博客

XIAOC

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-09 14:11:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

select count(0) from tbl_student;

select t.sname,(select sum(g.grade) from tbl_grade g where g.sid=t.sid) "sun(grade)" from tbl_student t;

select s.sid,s.sname from tbl_student s,tbl_course c,tbl_grade g where s.sid=g.sid and c.cid=g.cid and c.cname='语文';

select c.cname from tbl_student s,tbl_course c,tbl_grade g where s.sid=g.sid and c.cid=g.cid and s.sname='张三';

select (select max(g.grade) from tbl_grade g where g.sid=c.scd) from tbl_course c;


select s.sname,dd.sid,dd.cid,dd.grade from (select g.sid,g.cid,g.grade from (select cid,max(grade) xgrade from tbl_grade group by cid) d,tbl_grade g where d.cid=g.cid and d.xgrade=g.grade) dd,tbl_student s where s.sid=dd.sid;


0

主题

1450

帖子

0

博客

Sarbr

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-08 13:55:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   -- 取出学生个数
   select count(1) 学生个数 from tbl_stu
   -- 计算每个学生的总成绩
   select s.sname, t.sg
     from tbl_stu s ,(select sid, sum(grade) sg from tbl_grade group by sid) t
    where t.sid = s.sid
   -- 查询选修了“英语”的学生学号和姓名
   select *
   from tbl_grade g, tbl_stu s, tbl_course c
   where g.sid=s.sid
   and g.cid = c.cid
   and c.cname='英语'  
   --查询“张三”同学选修了的课程名字
   select s.sname,c.cname
   from tbl_grade g, tbl_stu s, tbl_course c
   where g.sid=s.sid
   and g.cid = c.cid
   and s.sname='张三'
   -- 查询选修了三门课程的学生学号和姓名
   select s.sname 姓名, t.sg 选修三门,s.sid 学生学号
     from tbl_stu s ,(select sid, count(cid) sg from tbl_grade group by sid having count(3)>=3) t
    where t.sid = s.sid
   --查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩
   select  g.sid 学生学号,t.cid 课程编号,t.maxg 最高成绩,s.sname 学生姓名
   from (select cid,max(grade) maxg
  from tbl_grade
  group by cid)t,tbl_grade g , tbl_stu s
  where t.cid=g.cid
  and maxg=g.grade
  and s.sid=g.sid

    --如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序。
    select s.sname 学生姓名, t.sg 总成绩, t.ac 平均成绩
      from tbl_stu s,
           (select sid, sum(grade) sg, avg(grade) ac
              from tbl_grade
             where grade >=60
             group by sid) t
     where t.sid = s.sid
     order by t.ac desc
     
    
    
    
    

0

主题

1636

帖子

0

博客

renmihe

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-08 10:07:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
--取出学生个数
select count(sid)
  from tbl_student
  --计算每个学生的总成绩
  select sum(g.grade)
  from tbl_student s,tbl_grade g
  where s.sid=g.sid
  group by s.sid
 
--查询选修了“计算机原理”的学生学号和姓名
select s.sid,s.sname
from tbl_student s,tbl_course c,tbl_grade g
where s.sid=g.sid and c.cid=g.cid and c.cname='计算机原理'

--查询“周星驰”同学选修了的课程名字
select c.cname
from tbl_student s,tbl_course c,tbl_grade g
where s.sid=g.sid and c.cid=g.cid and s.sname='周星驰'
--查询选修了五门课程的学生学号和姓名
select s.sid,s.sname
from tbl_student s,
(select sid from tbl_grade group by sid having count(1)=5) t
where s.sid=t.sid
--查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩
select s.sid, s.sname, c.cname, t1.maxg
  from (select g.sid, t.cid, t.maxg
          from (select cid, max(grade) maxg from tbl_grade group by cid) t,
               tbl_grade g
         where t.cid = g.cid
           and maxg = g.grade) t1,
       tbl_student s,
       tbl_course c
 where t1.cid = c.cid
   and t1.sid = s.sid
--如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序。
select s.sname, t.avg_g
  from (select sid, avg(grade) avg_g
          from tbl_grade
         where grade >= 60
         group by sid) t,
       tbl_student s
 where t.sid = s.sid

0

主题

1451

帖子

0

博客

gaoye

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-08 13:56:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   --1、取出学生个数
   select count(sid)
   from tbl_student
   
    --2、计算每个学生的总成绩
    select tbl_student.sname,t.s
    from tbl_student,(select sid,sum(tbl_grade.grade)s from tbl_grade group by tbl_grade.sid)t
    where tbl_student.sid=t.sid

    --3、查询选修了“英语”的学生学号和姓名
    select tbl_student.sid,tbl_student.sname
    from tbl_student,tbl_course,tbl_grade
    where tbl_grade.cid=(select cid from tbl_course where cname='英语')
      and tbl_grade.cid=tbl_course.cid
      and tbl_grade.sid=tbl_student.sid

    --4、查询“王五”同学选修了的课程名字
    select tbl_course.cname
      from tbl_student,tbl_course,tbl_grade
     where tbl_grade.sid=(select sid from tbl_student where sname='王五')
       and tbl_grade.cid=tbl_course.cid
       and tbl_grade.sid=tbl_student.sid

    --5、查询选修了三门课程的学生学号和姓名
    select t.sid,sname
    from tbl_student,(select sid,count(sid) s from tbl_grade group by sid having count(3)=3)t
    where tbl_student.sid=t.sid
    
    --6、查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩
    select tbl_grade.sid,sname,t.cid,t.m
    from tbl_student,(select cid,max(grade)m from tbl_grade group by cid)t,tbl_grade
    where t.m=tbl_grade.grade
      and tbl_grade.sid=tbl_student.sid

    --7、如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序。
    select sname,t.a
    from tbl_student,(select sid,avg(grade)a from tbl_grade where grade>=60 group by sid)t
    where tbl_student.sid=t.sid
    order by t.a desc

0

主题

529

帖子

0

博客

刘瑞

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-09 15:44:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


  1. 取出学生个数

  2. select count(1) from tbl_student
  3. 计算每个学生的总成绩
  4. select s.name,sum(g.grade) from tbl_student s,tbl_grade g where s.sid=g.sid group by s.sname.
  5. 查询选修了“计算机原理”的学生学号和姓名
  6. select s.sid ,s.sname from  tbl_student s,tbl_grade g,tbl_course c where s.sid=g.sid and c.cid=g.sid and c.cname="计算机原理"
  7. 查询“周星驰”同学选修了的课程名字
  8. select s.sid ,s.sname from  tbl_student s,tbl_grade g,tbl_course c where s.sid=g.sid and c.cid=g.sid and s.sname="周星驰"
  9. 查询选修了五门课程的学生学号和姓名
  10. (select sid from tbl_grade groug by sid having count(1)=5) t select s.sid , s.sname from tbl_students, where s,sid=t.sid
  11. 查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩
  12. (select sid from tbl_grade groug by sid having count(1)=5) t select s.sid , s.sname from tbl_students, where s,sid=t.sid
  13. 如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序
  14. (select sid from tbl_grade groug by sid having count(1)=5) t select s.sid , s.sname from tbl_students, where s,sid=t.sid

Yc

0

主题

847

帖子

0

博客

Yc

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-21 19:33:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

1取出学生个数

select count(*) from tbl_student;

2计算每个学生的总成绩

select sname, sum(grade)from tbl_student s,tbl_grade g where s.sid=g.cid group by sname;

3查询选修了“计算机原理”的学生学号和姓名

select sid,sname from tbl_student s,tbl_course c where s.sid=c.cid and c.cname='计算机原理';

4查询“周星驰”同学选修了的课程名字

select cname from tbl_student s,tbl_course c where s.sid=c.cid and s.sname='周星驰';

5查询选修了五门课程的学生学号和姓名

select sid,sname from tbl_student where sid in (select sid from tbl_grade group by sid having count(*)=5);

6查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩

SQL> select s.sid,s.sname,c.cname,t1.maxg(select g.sid,t.cid,t.maxg from (select cid , max(grade)from tbl_grade group by cid) t tbl_grade g where t.cid=g.cid and maxg=g.grade) t1,tbl_student g,tbl_course c where t1.cid=c.cid and t1.sid=s.sid ;

如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序。

select s.sname,t.avg_g from(select sid,avg(grade) avg_g from tbl_grade where grade>=60 group by sid) t, tbl_student s where t.sid=s.sid



0

主题

1902

帖子

0

博客

王之神判

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-08-19 12:42:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
select count(sid) from tbl_student;


select s.sname,sum(g.grade)
from tbl_student s,tbl_grade g
where s.sid=g.sid
group by s.sid,s.sname;


select s.sid,s.sname
from tbl_student s,tbl_grade g,tbl_course c
where s.sid=g.sid and g.cid=c.cid and c.cname='计算机原理';


select c.cname
from tbl_student s,tbl_grade g,tbl_course c
where s.sid=g.sid and g.cid=c.cid and s.sname='周星驰';


select s.sid,s.sname,count(1)
from tbl_student s,tbl_grade g,tbl_course c
where s.sid=g.sid and g.cid=c.cid
group by s.sid,s.sname
having count(1)=5;


select s.sid,s.sname,c.cid,g.grade
from tbl_student s,tbl_grade g,tbl_course c
where s.sid=g.sid and g.cid=c.cid and g.grade in(
select max(g.grade)
from tbl_student s,tbl_grade g,tbl_course c
where s.sid=g.sid and g.cid=c.cid
group by c.cid);


select s.sname,avg(g.grade)
from tbl_student s,tbl_grade g,tbl_course c
where s.sid=g.sid and g.cid=c.cid
group by s.sid,s.sname
having min(g.grade)>=60
order by avg(g.grade);

0

主题

1932

帖子

0

博客

740317431

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-08-19 15:10:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

取出学生个数

select count(1)
from tbl_student s
;

 

计算每个学生的总成绩

select s.sname,sum(g.grade)
from tbl_student s,tbl_grade g
where s.sid=g.sid
group by s.sid,s.sname
;

 

查询选修了“计算机原理”的学生学号和姓名

select stu.sname,stu.sid
from tbl_student stu,tbl_grade g
where stu.sid=g.sid
and g.cid=(select cid from  tbl_course where cname='计算机原理');

 

查询“周星驰”同学选修了的课程名字

select cname from tbl_course where cid in(select cid from tbl_grade
 where sid=(select sid from tbl_student where sname='周星驰));

 

查询选修了五门课程的学生学号和姓名

select sid ,sname from tbl_student where
sid in(select sid from tbl_grade group by sid having count(1)=5);

 

查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩

 select s.sid,s.sname, c.cname, t1.maxg
  from (select g.sid, t.cid, t.maxg
          from (select cid, max(grade) maxg from tbl_grade group by cid) t,
               tbl_grade g
         where t.cid = g.cid
           and maxg = g.grade) t1,
       tbl_student s,
       tbl_course c
 where t1.cid = c.cid
   and t1.sid = s.sid
  

 

如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序
select s.sname, t.avg_g from
(select sid,avg(grade) avg_g from tbl_grade where grade>=60 group by sid) t,
tbl_student s where t.sid=s.sid

 

 

 

 

 

 

 

 

0

主题

1694

帖子

0

博客

wulinan

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-08-25 19:41:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
--1.取出学生个数 
select count(1)
from tbl_student
--2.计算每个学生的总成绩 
select s.sname,sum(grade)
from tbl_student s,tbl_grade g
where s.sid=g.sid
group by g.sid,s.sname
--3.查询选修了“计算机原理”的学生学号和姓名 

select s.sid , s.sname
from tbl_student s,tbl_grade g,tbl_course c
where s.sid=g.sid and c.cid=g.cid and c.cname='计算机原理'
--4.查询“周星驰”同学选修了的课程名字 
select c.cname
from tbl_student s,tbl_grade g,tbl_course c
where s.sid=g.sid and c.cid=g.cid and  s.sname='周星驰'

--5.查询选修了五门课程的学生学号和姓名
select c.cid,count(1)
from tbl_student s,tbl_grade g,tbl_course c
where s.sid=g.sid and c.cid=g.cid 
group by c.cid
having count(s.sid)>5
--6.查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩 
select t1.*, s.sname
  from (select g.sid, t.cid, t.maxg
          from (select cid, max(grade) Maxg from tbl_grade group by cid) t,
               tbl_grade g
         where t.cid = g.cid
           and maxg = g.grade) t1,
       tbl_student s,tbl_course c
 where t1.sid = s.sid and t1.cid=c.cid 



--7.如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序。
select s.sname,t.avg_g
from (select sid ,avg( grade) avg_g
from tbl_grade where grade>=60
group by sid)t, tbl_student s
where t.sid=s.sid

0

主题

997

帖子

0

博客

lijiaxing

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-10-19 18:35:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
--1.取出学生个数
select count(1) 学生个数  from tbl_student;
--2.计算每个学生的总成绩
select max(s.sname),sum(g.grade) from tbl_student s,tbl_course c,tbl_grade g where s.sid=g.sid and c.cid=g.cid group by s.sid;
--3.查询选修了“计算机原理”的学生学号和姓名
select s.sid,s.sname from tbl_student s,tbl_course c,tbl_grade g where s.sid=g.sid and c.cid=g.cid and c.cname='计算机原理';
--4.查询“周星驰”同学选修了的课程名字
select c.cid,c.cname from tbl_student s,tbl_course c,tbl_grade g where s.sid=g.sid and c.cid=g.cid and s.sname='周星驰';
--5.查询选修了五门课程的学生学号和姓名
select sid,sname from tbl_student where sid in(select s.sid from tbl_student s,tbl_course c,tbl_grade g where s.sid=g.sid and c.cid=g.cid group by s.sid having count(1)=3);
--6.查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩
select s.sid,s.sname,c.cid,g.grade from tbl_student s,tbl_course c,tbl_grade g where s.sid=g.sid and c.cid=g.cid and g.gid in
(select gid from tbl_grade where grade in(select max(g.grade) from tbl_student s,tbl_course c,tbl_grade g where s.sid=g.sid and c.cid=g.cid group by c.cid))
--7.如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序。
select max(s.sname),avg(g.grade) agrade from tbl_student s,tbl_course c,tbl_grade g where s.sid=g.sid and c.cid=g.cid and g.grade>60 group by s.sid order by agrade

0

主题

183

帖子

0

博客

javaxiaozi

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-10-31 13:21:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  • 取出学生个数

  • select count(1) from tbl_student

  • 计算每个学生的总成绩

  • selects.sid,s.sg from tbl_student s, (select from sid,sum(grade) sg tbl_grade group by sid)t where s.sid=t.sid

  • 查询选修了“计算机原理”的学生学号和姓名

  • select * from tbl_student s,tbl_course c,tbl_grade g where s.sid=g.sid and c.cid=g.cid and c.cname='计算机原理'

  • 查询“周星驰”同学选修了的课程名字

  • select c.cname from tbl_student s,tbl_course c,tbl_grade g where s.sid=g.sid and c.cid=g.cid and s.sname='周星驰'
  • 查询选修了五门课程的学生学号和姓名

  • selects.sid,s.sname from tbl_student s(select sid from tbl_grade group by sid having count(1)=5)t where s.sid=t.sid

  • 查询单科最高成绩的sql语句,查询内容包括学生学号,学生姓名,课程编号,成绩

  • select s.sid,s.sname,c.cname,t1.maxg from tbl_student s(select g.sid,t.cid,t.maxg from (select cid,max(grade) maxg from tbl_grade group by cid)t,tbl_grade g where t.cid=c.vid and maxg=g.grade)t1,tbl_student s,tbl_course c where t1.sid=s.sid and c.cid=t1.cid 

  • 如果以60为及格线,统计成绩及格的学生姓名及平均分,并按平均成绩排序

  • select s.sname,t.avg_g from (select sid,avg(grade) avg_g from tbl_grade group by sid) t,tbl_student s where t.sid=s.sid

  • 0

    主题

    1213

    帖子

    0

    博客

    yanghao

    Rank: 9 Rank: 9 Rank: 9

    积分

    IP 编辑 禁止 帖子 清理

    沙发
    发表于2018-09-02 15:33:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    SELECT COUNT(1) FROM tbl_student;

    SELECT SNAME,SUM(GRADE) FROM tbl_grade TG,tbl_student TS WHERE TG.SID=TS.SID GROUP BY SNAME; 

    SELECT SNAME ,SID FROM TBL_STUDENT TS , tbl_course TC,tbl_grade TG WHERE TC.CID=TG.CID AND TG.SID=TS.SID AND CNAME='JSJYL';

    SELECT CNAME  FROM TBL_STUDENT TS , tbl_course TC,tbl_grade TG WHERE TC.CID=TG.CID AND TG.SID=TS.SID AND SNAME='ZXC';


    SELLECT SID,SNAME FROM

    (SELECT COUNT(CID) C,SNAME FROM TBL_STUDENT TS,tbl_grade TG  WHERE TG.SID=TS.SID GROUP BY SNAME)T

    WHERE T.C>=5;


    SELECT MAX(GRADE),CID  FROM tbl_grade GROUP BY CID;


    SELECT SANME,AVG(GRADE) FROM tbl_grade TG,tbl_student TS WHERE GRADE>60  AND TG.SID=TS.SID GROUP BY SNAME;

    0

    主题

    445

    帖子

    0

    博客

    wangxiaoqing

    Rank: 9 Rank: 9 Rank: 9

    积分

    IP 编辑 禁止 帖子 清理

    沙发
    发表于2018-09-14 20:46:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    select count(*) from tbl_student;


    select sid,sum(grade)
    from tbl_grade
    group by sid;

    select tbl_student.sname,tbl_course.cname
    from tbl_student,tbl_course,tbl_grade
    where tbl_student.sid=tbl_grade.sid and
      tbl_grade.cid=tbl_course.cid and
      tbl_course.cname='数学';

    select tbl_course.cname
    from tbl_student,tbl_course,tbl_grade
    where tbl_student.sid=tbl_grade.sid and
      tbl_grade.cid=tbl_course.cid and
      tbl_student.sname='李四';


    select a.sid,tbl_student.sname
    from
    (select sid,count(*)
    from tbl_grade
    group by tbl_grade.sid
    having count(*)>2) a,tbl_student
    where a.sid=tbl_student.sid


    select distinct(tbl_student.sid),tbl_student.sname,a.grade
    from tbl_student,tbl_course,tbl_grade,(select sid,max(grade) grade from tbl_grade group by sid)a
    where tbl_student.sid=tbl_grade.sid and
          a.sid=tbl_student.sid


    select sid,avg(grade)
    from tbl_grade
    where grade >60
    group by sid


    jxx

    0

    主题

    61

    帖子

    0

    博客

    jxx

    Rank: 9 Rank: 9 Rank: 9

    积分

    IP 编辑 禁止 帖子 清理

    沙发
    发表于2019-01-28 17:47:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    1.select count(1) from tbl_student

    2.select tbl_student.sname, sum(tbl_grade.grade)
      from tbl_student, tbl_grade
     where tbl_grade.sid = tbl_student.sid
     group by tbl_student.sname

    3.select tbl_student.sid, tbl_student.sname
      from tbl_student, tbl_course, tbl_grade
     where tbl_grade.sid = tbl_student.sid
       and tbl_grade.cid = tbl_course.cid
       and tbl_course.cname = '计算机原理'
    4.select tbl_course.cname
      from tbl_student, tbl_course, tbl_grade
     where tbl_grade.sid = tbl_student.sid
       and tbl_grade.cid = tbl_course.cid
       and tbl_student.sname = '周星驰'
    5. select s.sid, s.sname
        from (select tbl_student.sid, tbl_student.sname, count(1) c
                from tbl_grade, tbl_course, tbl_student
               where tbl_grade.cid = tbl_course.cid
                 and tbl_grade.sid = tbl_student.sid
               group by tbl_student.sid, tbl_student.sname
               order by tbl_student.sid) s
       where c = 5

    6.select tbl_student.sid, tbl_student.sname, m.cid, m.max
      from tbl_student,
           tbl_grade,
           (select tbl_grade.cid, max(tbl_grade.grade) max
              from tbl_student
              left join tbl_grade
                on tbl_student.sid = tbl_grade.sid
             group by tbl_grade.cid) m
     where m.max = tbl_grade.grade
       and tbl_grade.sid = tbl_student.sid
    7.select tbl_student.sname, avg(grade) a
      from tbl_student, tbl_grade
     where tbl_grade.grade >= 60
       and tbl_grade.sid = tbl_student.sid
     group by tbl_student.sname
     order by a


    

    站点统计|举报|Archiver|手机版|小黑屋|Comsenz Inc.

    GMT+8, , Processed in 0.195171 second(s), 9 queries .

    Powered by javakc! X1.0

    © 2004-2014 javakc

    f1208.com 备案号:京ICP备14030918号-1

    返回顶部