1、数据库原理与应用课程实验报告开课实验室:信息管理与信息系统实验室 学院 学号 姓名 成绩 课程 名称 数据库原理 与应用 实验工程 名 称 SQL语言查询 指导教师 实验目的.观察查询结果,体会SELECT语句实际应用; 1 .要求学生能够在查询分析器中使用SELECT语句进行简单查询。 2 .熟练掌握简单表的数据查询、数据排序、数据连接查询和数据聚合的操作方法。 实验环境实验准备: 1 .完成实验准备,成功建立了数据库和表。 2 . 了解简单SELECT语句的用法。 3 .比拟熟悉查询分析器中的SQL脚本运行环境。 实验内容: 1
2、 .简单查询操作。 2 .连接查询操作。 3 .聚合查询操作。 1. 实验使用的表: 选课表: I DESKTOP-KMFB4NF.EDUC - 1 Sno Cno Grade ► 1 OO1 cl 91 1 OO1 c3 36 1 OO1 c4 67 1 002 c2 80 1003 cl 53 1 003 c2 48 1 004 c2 88 1005 cl NULL 1 005 c2 38 1005 c3 60 1
3、006 c2 89 1 007 c2 87 1 008 c2 59 1 OOB c5 58 NULL NULL NULL 2.学生表: Sno Sname Ssex Sbrith Shome Sdept ► Foo"H 王小虎 女 1992-2-01 南京 信管 1002 张小明 勇 1998-3-28 癖 信管 1003 列、僚 女 1997-6-1 上海 1004 张阿篮 男 1998-8-7 计篁机科学・・・ 1005 孙烦. 男
4、 1996-5-3 四川 1006 小奇 男 1998-6-19 癖 计篁腑学.・・ 1007 融 g 1999-9-9 苏 人工智能 1008 题忆 女 2000-3-14 ■ 信管 . NULL NULL NULL NULL NULL NULL 课程表: 3. 三.实验步骤及过程原始记录(数据、图表等) 具体操作及结果: 1 .简单查询操作: —n 查询信管系的学生学号和姓名e SELECT Sno,Sname FROM S WHERE Sdept 二‘信管’ 里结果&消,急Sno Sname 1 J 10
5、01 J王小虎 21002 张小明 31008 吴如忆 | —2)查画岁上有哪儿个姓E[SELECT DISTINCT SUBSTRINGISname,1,1) FirstName FROM S Rix*s 七Nam日 1 「.举 2 弥 3 王 4 昊 5 弓长 —3)查询姓名是2个字的同学姓名 e [SELECT Sname FROM S WHERE Sname LIKE 卬结果心消息 Sname 「其道; ' ~4) 查询计算机系和信管系的姓张的学生的信息 0SELECT * FROM S WHERE Sname LIKE '张沙 AND (S
6、dept | '计算机科学'OR Sdept | '信管') 口结果岛消息 Sno Sname Ssex Sbrith Shone Sdept 1 1 1002 • : |张小明 男 1998-3-28 北京 信管 2 1004 张阿阿 男 1998-8-7 武汉 计算机科学 |-5)查鲍C2课卷的学生学号和成乳并要求时查询结果按成翻降肥网如果成耕同那么按衿的升梆列 [SELECT Sno, Grade FROM SC WHERE Cno = 'c2' ORDER BY Grade DESC目结果心消息 1 Sno ( 1006
7、Grade 89 2 1004 88 3 1005 88 4 1007 87 5 1002 80 6 1008 59 7 1003 48 2.连接查询操作: 国结果以消息 Sno Grade 1 | 1006 | 89 2 1004 88 3 1005 88 4 1007 87 5 1002 80 6 1008 59 7 1003 48 口结果力消息 Sno Sname Cname Grade 1 1001 王小虎 数据结构 91 2 1001 王小虎 高数 36
8、 3 1001 王小虎 数据挖掘 67 4 1002 张小明 数据库 30 5 1003 李小、麻 数据结构 53 6 1003 李小、麻 数据库 48 7 1004 张阿篮 数据库 88 8 1005 孙大炮_ 数据结构 NULL 9 1005 孙大炮_ 数据库 88 10 1005 孙大炮_ 高数 60 11 1006 王大奇 数据库 89 12 1007 吴迪 数据库 87 13 1008 吴如忆 数据库 59 14 1008 吴如忆 英语 58 -2)查询选修C1课程
9、且成绩在90分以上的学生学号、姓名及成绩 日Select S.Sno,S Sname,SC Grade FROM SC,S WHERE SC. Sno 二 S. Sno AND SC.Cno = 'd' AND SC. Grade >= 90 卬结果里消息Sno Sname Grade 111001 |王小虎 91:z -3) 查包教据库课程成绩比“张小明”高的同学姓名 [SELECT S2, Sname FROM SC SC1,SC SC2,S S1,S S2 WHERE SCl.Cno SC2 Cno JD SC2,Cno 'c2' AND SC2.Grade < SC1
10、 GradeAND SC2 Sno S1 Sno AND S1 Sname LIKE '张小明'AND SC1 Sno - S2 Sno 里结果空消息 Sname 1 :熊而赤 2 杯天炮_ 3 王大奇 4 吴迪 二4:查询每一门课的直接先行课名称 sSELECT C1.Cname,C2. Cname CpoName FROM C C1,C C2 WHERE C2,Cno = C1.Cpno 团结果&消息 Cname CpoName i『薮奇结杨y高数 2 …薮搪毒 :数据结构 3 数据挖掘 数据库.聚合查询操作: —1)^查询班上的姓的个数□SELECT COUN
11、T (DISTINCT SUBSTRING (Sname,1 D) SumFname FROM S 司结果为消息 SumFname 1|5—21查询学生表中的部![件数 事ELECT COUNT (DISTINCT Sdept) NumSdepet FROM S 司结果为消息 NumSdepet 1| 4 —3)查逋每个姓的同学?数 (SELECT SUBSTRING (Sname 1 1 Fi rstName.COUNT (SUBSTRI NG Sname 1 1 FROM S GROUP BY SUBSTRING(Sname,1,1) r 目结果阿消息 Firs
12、tName NumFnanie 1 1李 | 1 2 孙 1 3 王 2 4 吴 2 5 张 2 —4)查询选课人数超过2的课程名称及其选课人数qELECT SC_C. Cname COUNT (SC_C.Cname) C_Num FROM ( SELECT SC.Sno,0. Cname FROM SC,C WHERE SC.Cno = C.Cno ) AS SC_C(Sno, Cname)GROUP BY SC_C. Cname HAVI NG COUNT (SC_C. Cname) > 2区结果隹消息 Cname C_Num]薮搪结构;3 1
13、 :…薮捻库……:7-5)查询两门及其以上]及格课程的同土的芝号,姓名及其营里 1-[SELECT F_Students, Sno F_Students Sname COUN,F Students. Sno NumF S, AVG Grade AVG G FROM (SELECT SC Sno.SC Cno.SC Grade S.SnameFROM SC. S WHERE SC Sno S Sno SC Grade 60 AS F_Students Sno Cno Grade Sname GROUP BY F Students Sno F Students Sname100% ▼ 国结果
14、为消息 Sno Sname NumF_S AVG_G 1 | 1001 |王小虎 1 36 2 ••••••••••••••••••••••• 1003 '李小'麻 2 50 3 1008 吴如忆 2 58 实验报告格式说明 1 .标题:二号宋体; 2 .表中内容: 1)标题:小四号,黑体; 2)正文:五号宋体,单倍行距; 3)图片:无缩进,居中显示; 4)图片编号:工程号+序号,即如果作实验工程2时,在实验步骤栏目中的图片,采用类似“2-1” 的形式,格式为小五黑体,无缩进居中显示; 3 .纸张:A4 4 .版面格式:上下边距:2. 5cm;左右边距:2. 5/2cm 5 .文档名称:实验序号++学号,例如,实验






