数据库实验(sqlServer)sql语句(实验2)

界面

1
2
3
4
//1. (选择表中的若干列)  求全体学生的学号、姓名、性别和年龄。
select sno,
sname,ssex,
sage from student;
1
2
3
//2.(不选择重复行)  求选修了课程的学生学号。 
select distinct sno
from score;
1
2
3
4
5
//3.(使用表达式)  求全体学生的学号、姓名和出生年份。
select sno,
sname,
year(getdate())-sage sbirth
from student;
1
2
3
4
//4.(使用列的别名)  求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。
select sno as 学号,
year(getdate())-sage as 出生年份
from student;
1
2
3
//5. (比较大小条件)  求年龄大于19岁的学生的姓名和年龄。 
select sname,sage from student
where sage>19;
1
2
3
4
//6.(确定范围条件)  求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。
select sno,
sage from student
where sage>19 and sage<=22;
1
2
3
4
//7.(确定集合条件)  求在下列各系的学生信息:数学系、计算机系。 
select * from student
where sdept='cs'
or sdept='ma';
1
2
3
4
//8.(匹配查询)  求姓名长度至少是三个汉字且倒数第三个汉字必须是“马”的学生。
select sname from student
where len(sname)>=3
and sname like '%马__';
1
2
3
4
5
//9.(涉及空值查询)  求缺少学习成绩的学生的学号和课程号。
select sno,
cno from
score
where score is null;
1
2
3
4
//10.(集函数)  求选修了课程的学生人数。
select count(*)
from (select distinct sno from score)
as A ;
1
2
3
4
//11.(分组查询)  求各门课程的平均成绩与总成绩
select sum(score) as 总成绩,
sum(score)/count(*) as 平均成绩
from score group by cno;
1
2
3
4
5
6
//12.(分组查询)  输入以下查询语句并执行,观察出现的其结果并分析其原因。
// SELECT SNAME,SDEPT,COUNT(*)FROM STUDENT
// WHERE SDEPT=’CS’ GROUP BY SDEPT;

'STUDENT.SNAME' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
在进行分组后,没有想要的学生信息。
1
2
3
4
5
6
7
8
//13.(自然连接查询)  求学生号以及其选修课程的课程号和成绩,但查询结果中只能有一个SNO字段。
select score.sno,
student.sname,
course.cname,score.
cno,score.score
from score,student,course
where score.sno=student.sno
and score.cno=course.cno;
1
2
3
4
5
//14.(连接查询与表的别名)  求选修了课程的学生的学生姓名、课程号和成绩。
select student.sname,
cno,score
from student,score
where student.sno=score.sno;
1
2
3
4
5
6
7
//15.(自身连接查询)  求年龄大于 ’李丽’ 的所有学生的姓名、系和年龄。
select s1.sname,
s1.sdept,
s1.sage
from Student s1,Student s2
where s1.sage>s2.sage
and s2.sname='李丽';
1
2
3
4
5
6
7
//16.(复合条件查询)  求选修了课程名为 ’数据结构’ 的学生的学号和姓名。 
select sno,sname
from student
where sno in (
select sno from score where cno=(
select cno from course where cname='数据结构')
)
1
2
3
4
5
6
7
//17.(排序)求选修了课程名为 ’数据结构’ 的学生的姓名和成绩,查询结果按成绩降序排序。
select sname,score
from student,score
where student.sno = score.sno
and score.cno =(select cno from
course where cname = '数据结构')
order by score desc;
1
2
3
4
5
6
//18.(集合查询)  列出所有教师和学生的姓名和性别。
select sname,ssex
from student
union
select tname,tsex
from teach;

实验二结束

咦~~~~ 这是嘛呀!!!
0%