有一个“学生课程”数据库,数据库中包括三个表:

有一个“学生课程”数据库,数据库中包括三个表:,第1张

CREATE

TABLE

学生

(学号

VARCHAR(12)

NOT

NULL,

姓名

VARCHAR(20)

NOT

NULL,

性别

VARCHAR(10)

NOT

NULL,

年龄

INT

CHECK(年龄>=0

AND

年龄<=120),

所在系

VARCHAR(20)

NOT

NULL,

PRIMARY

KEY

(学号)

)

CREATE

TABLE

课程

(课程

VARCHAR(12)

NOT

NULL,

课程名

VARCHAR(20)

NOT

NULL,

先修课号

VARCHAR(20)

NOT

NULL,

学分

INT

CHECK(学分>0

AND

学分<=20),

PRIMARY

KEY

(课程号)

)

CREATE

TABLE

成绩表

(学号

VARCHAR(12)

NOT

NULL,

课程号

VARCHAR(12)

NOT

NULL,

成绩

REAL

CHECK(成绩>=0

AND

成绩<=100),

PRIMARY

KEY

(学号,课程号),

FOREIGN

KEY

(学号)

REFERENCES

学生表

(学号),

FOREIGN

KEY

(课程号)

REFERENCES

课程表(课程号)

)

1

SELECT

FROM STUDENT

WHERE SDEPT='信息系' AND SSEX='女' AND SAGE<=21

2

SELECT SNAME

FROM STUDENT W

WHERE EXISTS(SELECT

FROM STUDENT

WHERE SNAME='wang' AND WSNO>SNO AND WSAGE<SAGE)

3

SELECT SNAME,SAGE

FROM STUDENT

WHERE SSEX='男'AND SAGE>(SELECT SAGE

FROM STUDENT

WHERE SSEX='女')

4

SELECT CNAME,COUNT()

FROM COURSE JOIN SCG ON COURSECNO=SCGCNO

GROUP BY CNAME

5

SELECT CNO,COUNT() 人数

FROM SCG

GROUP BY CNO

HAVING COUNT()>10

ORDER BY 2 DESC,1

6

DELETE FROM SCG WHERE SNO=(SELECT SNO FROM STUDENT WHERE SNAME='WANG')

7

INSERT INTO STUDENT VALUES('200200146','王飞','男',20,'信息系')

8

UPDATE SCG SET GRADE=GRADE105

WHERE CNO=3' AND GRADE<=75

9

SELECT

INTO Student_bak

FROM STUDENT

1.查询所有学生的学号、姓名、所在系

Select sno,sname,sdept

From student

2查询全体学生的学号、姓名、性别,年龄,系别的信息

Select

From student

3查询全体学生的姓名及其出生年份

Select sname,datadiff(year,sage,2010) as 出生年份

From student

4查询信息工程系全体学生的名单

Select sname

From student

Where sdept=’信息工程系’

5查询所有年龄在20岁以下的学生姓名以及年龄

Select sname,sage

From student

Where sage<20

6查询考试成绩不及格的学生的学号

Select sno

From score

Where grade<60

7查询年龄在20-25(包括20、25)之间的学生的姓名、系别和年龄

Select sname,sdept,sage

From student

Where sage>=20 and sage<=25

8查询不在软件系、网络系、也不在外语系学生的姓名和性别

select sname,sex

from student

where sdept <>'软件系、网络系、外语系'

9查询所有姓李且全名为三个汉字的学生的姓名、学号、和性别

select sname,sno,sex

from student

where sname like '李_ _'

10查询姓名中第二个字为'阳'字的学生的姓名

select sname

from student

where sname like '_阳%'

11查询信息工程系年龄在20岁以下的学生的姓名

select sname

from student

where sage<20 and sdept='信息工程系'

12查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列

select sno,grade

from score

where cno='3'

order by grade desc

13查询全体学生的学号、姓名等情况,结果按照所在系的升序排序,同一系的按年龄降序排列

select sno,sname

from student

order by sdept asc,sage desc

14统计学生总人数

select count() as 人数

from student

15查询选修课课程的学生人数

select count() as 人数

from score

16计算1号课程的学生平均分数

select avg(grade) 均分

from score

where cno='1'

17查询选修了1号课程的学生最高分数

select max(grade) 最高分

from score

where cno='1'

18求各课程号及相应的选修课人数

select cno,distinct(sno)

from score

group by cno

19查询选修了3门以上课程的学生号

select sno

from score

group by sno

having count(cno)>3

20查询选修2学分的课程且该课程的成绩在90分以上的所有学生的姓名

select sname

from student,course,score

where studentsno=scoresno and coursecno=scorecno and ccredit=2 and grade>90

21查询每个学生的学号、姓名、选修的课程号和成绩

select studentsno,sname,cno,grade

from student,score,course

where studentsno=scoresno and scorecno=coursecno

22查询所有选修了1号课程的学生姓名

select sname

from student,score

where studentsno=scoresno and scorecno='1'

23查询选修了课程名为“计算机信息管理”的学生的学号和姓名

select sno,sname

from student,course,score

where studentsno=scoresno and coursecno=scorecno

and cname='计算机信息管理'

希望能给你帮助

您好,这样:

--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 ))

--4

题意不清楚。

SELECT语句的基本形式为

SELECT

[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>···]

FROM

<表名或视图名>[,<表名或视图名>···]

[WHERE

<条件表达式>]

语句的功能是根据WHERE子句中的条件表达式,从基本表(或视图)中找出满足条件的元组,按SELECT子句中的目标列,选出元组中的目标列形成结果表。

SQL语句对数据库的 *** 作十分灵活方便,原因在于SELECT语句中的成分丰富多样,有许多可选形式,尤其是目标列和目标表达式,下面用例子来详细说明,例子涉及的是"学生-课程"数据库,其关系模式集如下:

学生信息表Student(SNO,SNAME,SSEX,SBIRTHDAY

CLASS)

教师信息表Teacher(TNO,TNAME,TSEX,TBIRTHDAY,DEPART)

课程信息表Course(CNO,CNAME,TNO)

成绩表Grade(SNO,CNO,DEGREE)

例题:查询Student表所有学生信息。

SELECT

FROM

Student;/选择 *** 作/

例题:查询Student表中所有学生的学号和姓名。

SELECT

SNO,SNAME

FROM

Student;/投影 *** 作/

例题:查询Grade表中成绩在60到80之间的所有记录。

SELECT

FROM

Grade

WHERE

degree

BETWEEN

60

AND

80;/选择 *** 作/

例题:查询Grade表中成绩为85、86、88的记录。

SELECT

FROM

Grade

WHERE

degree

IN(85,86,88);/选择 *** 作/

例题:查询所有学生的SNAME,CNAME和DEGREE。

SELECT

StudentSNAME,CourseCNAME,GradeDEGREE

FROM

Student,Course,Grade

WHERE

StudentSNO

=

GradeSNO,GradeCNO

=

CourseCNO;/连接 *** 作/

例题:查询"张旭"教师任课的学生成绩。

SELECT

CNO,SNO,DEGREE

FROM

Grade

WHERE

CNO=(SELECT

CourseCNO

FROM

Course,Teacher

WHERE

CourseTNO=TeacherTNO

and

TeacherTNAME="张旭")

此查询 *** 作为嵌套查询。子查询在上一级查询处理之前求解,即嵌套查询是从里向外处理的,这样,外层查询可以利用内层查询的结果,在此例中首先执行子查询:

SELECT

CourseCNO

FROM

Course,Teacher

WHERE

CourseTNO=TeacherTNO

and

TeacherTNAME="张旭"

获得张旭老师讲授课程的课程号(801003),然后执行外查询:

SELECT

CNO,SNO,DEGREE

FROM

Grade

WHERE

CNO="801003"

获得"张旭"教师任课的学生成绩。

以上就是关于有一个“学生课程”数据库,数据库中包括三个表:全部的内容,包括:有一个“学生课程”数据库,数据库中包括三个表:、麻烦做一下sql题,直接写出sql就可以了,很简单的。、设有一个学生—课程数据库,其中包括三个表:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存