1.查询SC表(学生选课表)中的全部数据。
select * from sc
2.查询计算机系学生的姓名和年龄。
select sname, sage from student where sdept = '计算机系'
3.查询成绩在70~80分的学生的学号、课程号和成绩。
select sno, cno,grade from sc where grade between 70 and 80
4.查询计算机系年龄在18~20岁之间并且性别为“男”的学生的姓名和年龄。
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 =数据结构’)
- 查询没有选修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,其结构为(COL1,COL2,COL 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 null,coL3 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