数据库多表查询,学生表,课程表,成绩表

数据库多表查询,学生表,课程表,成绩表,第1张

直接将三表关联查询就可以了

select b姓名,c课程,a成绩

from 成绩表 a,学生表 b,课程表 c

where a学生学号 = b学号 and a课程编号 = c编号 and a成绩 < 60

select aSno as 学号,Sname as 姓名,avg(Score) as 平均分

from 学生表 a inner join 选课表 b on aSno=bSno

inner join 课程表 c on bCno=cCno

group by aSno,Sname

having avg(Score) > 70 and count(cCno) > 2

order by 平均分

create table student(S_no char(9), S_name char(20), S_sex char(2), S_age int, S_department char(20))

create table course (C_no char(10), C_name char(20), C_teacher char(20) )

create table choice(S_no char(9), C_no char(10), S_score int)

insert into student(S_no, S_name, S_sex, S_age, S_department)

values('001', '李志强', '男', 20, '计算机系' )

insert into student(S_no, S_name, S_sex, S_age, S_department)

values('002', '张 亮', '男', 21 '建筑工程系' )

insert into student(S_no, S_name, S_sex, S_age, S_department)

values('003', '李 平', '女', 19 '计算机系' )

insert into course(C_no, C_name, C_teacher )

values('C001', 'C语言', '王雅新' )

insert into course(C_no, C_name, C_teacher )

values('C002', '数据结构', '和海莲' )

insert into course(C_no, C_name, C_teacher )

values('C003', 'SQL Server2000', '陈 红' )

insert into choice(S_no, C_no, S_score)

values('001', 'C001', 83)

insert into choice(S_no, C_no, S_score)

values('001', 'C002', 80 )

insert into choice(S_no, C_no, S_score)

values('002', 'C001', 75)

insert into choice(S_no, C_no, S_score)

values('002', 'C004', 85)

insert into choice(S_no, C_no, S_score)

values('003', 'C002', 88)

insert into choice(S_no, C_no, S_score)

values('003', 'C003', 86)

1、首先在电脑上打开数据库软件。然后附加有学生表和成绩表的数据库。

2、然后选中数据库,右键选择新建查询。在右边的空白框,输入命令select 学生表学号,avg(成绩) as 平均分。

3、将学生表和成绩表关联起来。命令为from 学生表 join 成绩表 on 学生表学号=成绩表学号。

4、用group by 命令对学生表中的学号进行分组。命令为group by 学生表学号。

5、用having命令。输出平均分大于80分的条件。

6、然后在表中没有平均分一项。所以要用as命令进行附加。

第三个表学生成绩表Score,三个字段课程id(les_id),学生id(stu_id)和课程得分(les_score)Create Table [dbo]Score(les_

您好,您这样:

--1

select Sname,Sage from Student where Sage<(select Sage from Student where Sno='某一学生') and Sdept='数学系'

--2

select Sname from Student where Sno in (select Sno from SC)

--3

select Sname from Student where Sno in (select Sno from SC group by Sno having count()=(select count() from Course ))

1IF EXISTS (SELECT FROM sysobjects WHERE

name = 'view_stuInfo')

DROP VIEW view_stuInfo

GO

CREATE VIEW view_stuInfo

AS

SELECT a学号,a姓名,b课程号,c成绩 from 学生表 a,课程表 b,学生成绩表 c

where a学号=c学号 and b课程号=c课程号

GO

2insert into 学生表 values(21,‘王玲’,女,20,‘计算机’)

3select count() from 学生表

1、SELECT

课程号,

课程名,

课程学分

FROM

课程

WHERE

课程号

IN(SELECT

课程号

FROM

选课

GROUP

BY

课程号

HAVING

COUNT(学生号)

BETWEEN

2

AND

4

)

2、SELECT

MAX(成绩)

-

MIN(成绩)

AS

分数之差

FROM

选课

倘若要每门课程相差

SELECT

课程,

MAX(成绩)

-

MIN(成绩)

AS

分数之差

FROM

选课

GROUP

BY

课程

以上就是关于数据库多表查询,学生表,课程表,成绩表全部的内容,包括:数据库多表查询,学生表,课程表,成绩表、数据库中有如下三个表:学生表(Sno、SName……),选课表(Sno、Cno、Score、……),课程表(Cno、、1.在学生数据库中有三张数据表,即学生表、课程表和选课表,三张表的表数据如下,写出创建学生表、课程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9318415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存