C.3数据库单表查询
C.3.1实验目的和注意事项
实验目的,掌握单表查询SELECT、FROM、WHERE 的用达,特别安享握比较运算符、逻辑运算符的使用。
注意事项,子句WHERE<条件>表示元组筛选条件;子句HAVING<条件>表示元组选择条件;子句HAVING<条件>必须和 GROUP BY子句配合使用;注意输入SQL语句时均应使用对应操作符号。
C.3.2实验内容
(1)创建查询窗口,设置查询环境。
(2)单表查询。
C.3.3 实验步骤
(1)选择要查询的数据库,右击【新建查询】按钮,或者执行系统菜单中的【文件】|【新建】|【使用当前连接查询】命令,或者单击标准工具栏中的【新建查询】按钮,
即可新建一个奋询窗口。如果查询数据库不是StudentCourse,则可在可用数据库下拉列表中进行选择,或用USE语句调用。
(2)在查询窗口中输入SELECT 查询语句,对StudentCourse数据库进行查询操作。
①
查询计算机系全体学生的信息。
select * from student where Sdept = ‘计算机系’;
②
查询姓“李”的学生的学号和姓名。
select Sno,Sname from student where Sname like ‘李%’;
③
查询课程表中先行课为空的课程名。
select Cname from Course where PreCno = ’ ‘;
④
查询考试成绩有不及格的学生的学号。
select distinct Sno from SC where Grade < 60 ;
⑤
求选修了CO1课程或C02课程的学生的学号及成绩。
select Sno,Grade from SC where Cno = ‘C01’ or Cno = ‘C02’ ;
⑥
查询全体计算机系学生的姓名及其年龄.
select Sname 姓名,year(getdate())-year(Sbirthday) 年龄 from Student where Sdept = ‘计算机系’;
⑦
查询计算机系在1996—1997年之间出生的学生的姓名。
select Sname from student where Sdept = ‘计算机系’ and year(Sbirthday) between 1996 and 1997 ;
⑧
查询姓“李”的前两个学生的学号和姓名。
select top 2 Sno,Sname from student where Sname like ‘李%’ ;
⑨
查询选修了两门以上课程的学生学号与选课门数。
Select Sno,count(Cno) 选课数 from SC group by Sno having count(Cno)>2
⑩
查询选修课程数大于等于2的学生的学号、平均成绩和选课门数,并按平均成绩降序排列。
Select Sno,avg(Grade) 平均成绩,count(Cno) 选课数 from SC group by Sno having count(Cno)>2 order by avg(Grade) desc