实验3 SQL的简单查询功能
实验目的
学会使用MS SQL SERVER 2000的查询分析器完成SQL的简单查询功能,主要包括单表查询的选择、投影、排序、聚集函数、分组等。
知识点拨:
1. 2. 3. 4. 5. 6. 7. 1.
查询语句基本格式: 单表查询; 选择 投影 排序 聚集函数 分组查询
分组查询与选择的比较:
实验内容
1. 掌握SQL查询语句的一般格式;
2. 学会使用查询分析器进行包括选择、投影、排序、聚集函数、分组等的单表查询;
实验步骤
1. 选择数据库JX;
2. 以下查询操作使用查询分析器完成:
(1) 查询所有教师的教工号、姓名和电话号码信息,查询结果列项是中文名;
select Tno 教工号,Tname 姓名,Tphone 电话号码信息 from Teacher
(2) 查询‘计算机’系的所有副教授的基本信息;
select * from Teacher
where Tdept='计算机' and Tprof='副教授'
(3) 查询所有女同学的姓名及所在的系,显示结果不允许重复出现; select distinct Sname 姓名,Sdept 系别
from Student where Ssex='女'
(4) 查询各教师的姓名、教工号及工资按95%发放的信息,并将按95%发放
的工资列改名为‘预发95%工资’;
select Tno 教工号,Tname 姓名,95/100*Tpay '预发95%工资'
from Teacher
(5) 假设学号的5个数字中,前2位代表年级,后3位为序号,检索计算机
06级总学分在150~195的学生信息,并按学号降序排列;
注:取字符串的一个子串可以用函数SUBSTRING(串,开始位置,长度) select * from Student
where Sdept='计算机'and Sno='06%'and Total>=150and Total<=195 order by SUBSTRING(Sno,3,3) desc
(6) 查询修正后的学分(原学分-1)仍然大于3的课程的代号、名称、原先的
学分、修正后的学分;
Select Credit 修正后的学分,Credit+1 原先的学分,Cno 课程号,Cname 名称 From Course Where Credit>3
(7) 查询课程号不为‘1’、‘4’、或‘7’的课程的信息; select *
from Course
where Cno not in('1','4','7');
(8) 查询所有姓‘张’、或‘刘’或‘高’的学生信息; select * from Student
where Sname Like '张%'or Sname like '刘%'or Sname like '高%'
(9) 查询每个系有多少个同学; select Sdept, count( Sdept)
from Student group by Sdept;
(10)查询各课程的平均成绩并按成绩降序排列;
Select Cno, avg(Grade) from SC group by Cno
order by avg(Grade) desc;
(11)查询有两门课在90分以上的学生学号及90分以上课程数; select Sno,count(Cno)
from SC
where Grade>=90 group by Sno having count(Cno)>=2
(12)统计每门课程的选课人数、平均成绩、最高成绩、最低成绩;
select Cno, Count(Cno) 选课人数,avg(Grade) 平均成绩,max(Grade) 最
高成绩,min(Grade) 最低成绩 from SC group by Cno;
(13)列出课程表中有先行课的课程名。 select Cname from Course
where Cpno is not null;