资源描述
计算机与通信工程学院实验报告(软件实验用)课程名称数据库原理与技术实验项目名称数据查询年级 大三 班级 信计学号姓名_同组姓名实验日期指导教师签字、实验目的:熟悉和掌握对数据表中数据的查询操作和SQL命令的使用,学会灵活熟练地使 用SQL语句的各种形式;二、实验内容:1、简单查询操作(1) 列出所有教授的姓名和工资:SELECT姓名,工资FROM教工WHERE职称二教授(2) 列出教授的所有信息。SELECT *FROM教工WHERE职称二教授(3) 列出教工表中的系编号并消除重复的元组。SELECT DISTINCT 系编号FROM 教工(4) 已知学分二学时/17,计算每一门课程的学分数。SELECT课程名称,学时/17 AS学分FROM课程(5) 显示教授的工资和提高10%的工资额。SELECT姓名,工资,工资* 1.1 AS 工资* 1.1FROM 教工WHERE职称=教授(6) 显示田平平同学出生100天的日期。SELECT 姓名,出生年月+100 AS 出生年月+100FROM 学生WHERE 姓名二田平平(7) 列出教工表中工资在3000元以上的名单。SELECT姓名FROM 教工WHERE 工资 =3ooo(8) 列出学生表中1980年1月1日之后出生的学生名单。SELECT姓名FROM 学生WHERE 出生年月=1980-1-1(9) 列出学生表中在1980年1月1日之后出生的男同学名单。SELECT姓名FROM 学生WHERE 出生年月=1980-1-1 AND 性别二男(10) 列出教工表中教授或副教授中工资低于3000元的名单。SELECT姓名FROM 教工WHERE (职称二教授OR职称二副教授)AND工资3000(11) 显示男学生的姓名和所在的系名称。SELECT姓名,系名称FROM学生,系WHERE学生.系编号二系.系编号AND性别二男 或SELECT姓名,系名称FROM学生R,系SWHERE R.系编号二S.系编号AND性别二男(12) 列出教工中比姜立伟工资低的姓名和工资。SELECT R.姓名,R.工资FROM 教工R,教工SWHERE R.工资S.工资AND S.姓名二姜立伟(13) 查出所有不是教授的教工姓名。SELECT姓名FROM 教工WHERE 职称 NOT LIKE 教授(14) 检索工资在1000元到2000元范围内的职工信息。SELECT * FROM 职工WHERE 工资 BETWEEN 1000 AND 2000等价于SELECT * FROM 职工WHERE 工资=1000 AND 工资=2000(15) 按学号的升序,显示系编号等于101的学生信息:SELECT *FROM 学生WHERE 系编号=101ORDER BY 学号(16) 求教工表中教授工资的平均值。SELECT AVG (工资)AS平均工资FROM 教工WHERE职称二教授(17)求所有教工的工资总和。SELECT SUM (工资)AS工资总和FROM 教工(18)找出教工中最高工资和最低工资。SELECT MAX(工资),MIN(工资)FROM 教工(19)显示学生中最早和最晚的出生日期。SELECT MIN (出生日期),MAX (出生日期)FROM 学生(20)查询学生的总人数。SELECT COUNT(*)AS 人数FROM 学生2、复杂查询(21)如果要统计成绩表中所有选课的学生人数,即不管一名学生选了几门 课程,都只计算一次SELECT COUNT (DISTINCT (学号)AS 人数FROM成绩(22)统计学生表中男生和女生的人数。SELECT 性别,COUNT (*)FROM 学生GROUP BY 性别(23)统计成绩表中,每一门课程的平均成绩。SELECT课程编号,AVG (分数)FROM成绩GROUP BY课程编号(24)查询教工表中每一种职称的最高工资和最低工资。SELECT职称,MAX (工资),MIN (工资)FROM 教工GROUP BY 职称(25)统计成绩表中选修人数超过2以上的课程编号和人数。SELECT 课程编号,COUNT (*)FROM成绩GROUP BY课程编号HAVING COUNT(*)2(26)列出成绩表中分数在60以上、选课数大于2且平均分超过70的学号、 选课数目和平均分。SELECT学号,COUNT(课程编号),AVG (分数)FROM成绩WHERE 分数=60GROUP BY 学号HAVING COUNT(课程编号)2 AND AVG(分数)70(27) 统计“ CS ”系学生的人数;(28) 统计各系学生的人数,结果按升序排列;(29) 按系统计各系学生的平均年龄,结果按降序排列;(30) 查询每门课程的课程名;(31) 查询无先修课的课程的课程名和学时数;(32) 统计无先修课的课程的学时总数;(33) 统计每位学生选修课程的门数、学分及其平均成绩;(34) 统计选修每门课程的学生人数及各门课程的平均成绩;(35) 找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排 列;(36) 查询选修了 “1”或“2”号课程的学生学号和姓名;(37) 查询选修了 “1”和“2”号课程的学生学号和姓名;(38) 查询选修了课程名为“数据库系统”且成绩在60分以下的学生的学号、姓 名和成绩;(39) 查询每位学生选修了课程的学生信息(显示:学号,姓名,课程号,课程 名,成绩);(40) 查询没有选修课程的学生的基本信息;(41) 查询选修了 3门以上课程的学生学号;(42) 查询选修课程成绩至少有一门在80分以上的学生学号;(43) 查询选修课程成绩均在80分以上的学生学号;(44) 查询选修课程平均成绩在80分以上的学生学号;三、实验平台:Microsoft SQL Sever 四、设计流程:1、进入查询分析器,参见进入查询分析器演示。在查询分析器的命令编辑窗口输入SQL语句,点击执行键,将执行SQL 语句。参见执行SQL语句的演示。2、在调试程序过程中,可以用鼠标选择某些要执行的SQL语句,再点击执 行键,执行选择的语句。参见执行SQL语句的演示。3、注意:在各个表中插入数据的顺序,首先在父表中插入数据,然后在子 表中插入数据。另外,由于表的定义中包含完整性约束的定义,所以, 当主码重复,或者外码不是被参照表的有效值时,系统将拒绝插入的数 据。4、保存调试通过的SQL程序。五、程序清单:六、调试和测试结果:七、教师评语与成绩评定:
展开阅读全文