数据库作业四


1.查询SC(学生选课表)中的全部数据。

select * from sc

2.查询计算机系学生的姓名和年龄。

select sname, sage from student where sdept = '计算机系'

3.查询成绩在7080分的学生的学号、课程号和成绩。

select sno, cno,grade from sc where grade between 70 and 80

4.查询计算机系年龄在1820之间并且性别为男”的学生的姓名和年龄。

select sname, sage from student

where sdept = '计算机系' and sage between 18 and 20

5.查询课程号为“c001”的课程的最高的分数。。

select max( grade) from sc where cno = 'c001'

6.查询计算机系学生的最大年龄和最小年龄。

select max(sage)最大年龄,min (sage)最小年龄from student

where sdept=’计算机系’

7.统计每个系的学生人数。

select sdept, count (*)人数from student 

Group by sdept

8.统计每门课程的选课人数和考试最高分。

select cno, count(*)选课人数,max (grade)最高分from sc 

Group by cno

9.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。

select sno, count (*)选课门数,sum (grade) from sc

Group by sno order by count(*) asc

10.查询总成绩超过200分的学生,要求列出学号、总成绩。

select sno, sum (grade)总成绩from sc

Group by sno having sum (grade) >200

11.查询选修“C02”号课程的学生的姓名和所在系。

select sname, sdept from student s join sc on s.sno=sc.sno

where cno = 'c02'

12.查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果。

select sname , cno ,grade

From student s join sc on s.sno = sc.sno

where grade > 80

order by grade desc

13.查询哪些学生没有选修,要求列出学号、姓名和所在系。

select c.cno, cname sdept from course c left join sc on c.cno = sc.cno

where sc.cno is null

14.查询与Java在同一学期开设的课程的课程名和开课学期。

select c1.cname,c1.s emester from course cl

join course c2 on c1.semester = c2.semester

where c2.cname = 'Java' and cl.cn ame != 'Java'

15.查询与李勇年龄相同的学生的姓名、所在系和年龄。

select sl.sname,s1.sdept,s1.sage from student s1

join student s2 on s1.sage = s2.sage

where s2.sname ='李勇’ and s1.sname !='李勇'

16.用子查询实现如下查询:

(1)查询选修了“C001”号课程的学生的姓名和所在系。

select sname, sdept from student

Where sno in (select sno from sc where cno = 'co01)

(2)查询数学系成绩80分以上的学生的学号、姓名、课程号和成绩。

Select sno, sname , cno, grade from student s

Join sc on s.sno = sc.sno

where sdept =数学系' and sno in (select sno from sc where grade > 80)

( 3)查询计算机系考试成绩最高的学生的姓名。

select sname from student s join sc on s.sno = sc.snowhere sdept ='计算机系’ and grade = (

Select max (grade) from sc join student s on s.sno=sc.sno

where sdept ='计算机系')

(4)查询数据结构考试成绩最高的学生的姓名、所在系、性别和成绩。

select sname , sdept ,ssex, grade from student s

Join sc on s.sno = sc.sno

Join course c on c.cno = sc.cnowhere cname ='数据结构'

And grade in (

Select max (grade) from sc join course c on c.cno=sc.cno

whe re cn ame =数据结构’)

  1. 查询没有选修Java课程的学生的姓名和所在系。

select sname, sdept from student

where sno not in (

select sno from sc join course c on c.cno = sc.cno

whe reenameAJavaoOCIn.com

18.查询计算机系没有选课的学生的姓名和性别。

select sname, ssex from student

where sdept ='计算机系'

And sno not in (

select sno from sc )

19.创建一个新表,表名为test_t,其结构为(COL1COL2COL 3),其中,

COL1:整型,允许空值。

COL2:字符型,长度为10,不允许空值。

COL3:字符型,长度为10,允许空值。

试写出按行插入如下数据的语句(空白处表示空值)

COL1

COL2

COL3

 

B1

 

1

B2

C2

2

B3

 

 

Create table test_t (cOL1 int,

CoL2 char (10) not nullcoL3 char (10) )

Insert into test_t (COL2) values (' B1')

Insert into test_t (COL1 ,COL2) values (1 ,'B2)

Insert into test_t values ( 2,'B3,NULL)

20.删除考试成绩低于50分的学生的选课记录。

Delete from sc where grade < 50

21.删除没人选的课程的基本信息。

Delete from course where cno not in (select cno from course)

22.删除计算机系Java成绩不及格学生的Java选课记录。

Delete from sc

From sc join student s on s.sno = sc.snoJoin course c on c.cno = sc.cno

where cname = 'Java' and grade < 60and sdept ='计算机系'

23.将第2学期开设的所有课程的学分增加2分。

Update Course set credit = credit +2

where semester = 2

24.Java课程的学分改为3分。

Update course set credit = 3where cname = 'Java'

25.将计算机系学生的年龄增加1岁。

Update student set sage = sage + 1where sdept ='计算机系'

26.将信息系学生的“计算机文化学”课程的考试成绩加5分。

Update sc set grade = grade + 5

From student s join sc on s.sno =sc.snoJoin course c on c.cno = sc.cno

where sdept ='信息系’ and cname ='计算机文化学

27.查询每个系年龄大于等于20的学生人数,并将结果保存到一个新永久表Dept_Age 中。select sdept, count (*)人数into Dept_Age from student

where sage >=20

Group by sdept

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM