logo资料库

实 验 二 SQL 数据查询.docx

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
实 验 二 SQL 数据查询
1 无条件查询
2 条件查询
3 查询结果排序
4 集函数的使用
5 查询结果分组
B、连接查询
1 不同表之间的连接查询
2 自身连接
3 外连接
C、嵌套查询
1 带谓词IN的嵌套查询
2 带有比较运算符的嵌套查询
3 带谓词ANY或ALL的嵌套查询
4 带谓词EXISTS的嵌套查询
D、集合查询
实 验 二 SQL 数据查询 一、实验目的: 熟练掌握表中数据的各种查询功能,为后继学习作准备。 二、实验属性(验证性) 1.了解并掌握 SQL 管理控制器的使用; 2.掌握基本表的数据查询。 三、实验仪器设备及器材 1.每人一台计算机。 2.计算机安装有 SQL SERVER2008。 四、实验要求(预习、实验前、实验中、实验后等要求) 1.预习教材第三章,熟悉 SQL 查询语句。 2. 掌握单表查询语句的一般格式。; 3.掌握单表无条件、有条件查询及查询结果排序与分组。 4、掌握多表的连接查询以及嵌套查询。 五、实验原理 SQL 语言应用。 六、实验步骤: (1) 启动 SQL 查询分析器; (2) 选择“学生管理数据库”; (3) 运算以下题目: A、单表查询
1 无条件查询 2.1 查询全体学生的详细记录。 SELECT * FROM Student; 2.2 查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。 SELECT Sname,Sno,Sdept FROM Student; 2.3 查询全体学生的姓名(Sname)、出生年份及学号(Sno)。 SELECT Sname,Sno,YEAR(GETDATE())-Sage 出 生 年 月 FROM Student; 2.4 查询全体学生的姓名、出生年份和学号,要求用小写字母表示姓
名中的字母。 SELECT LOWER(Sname) Sname,Sno,YEAR(GETDATE())-Sage 出 生 年 月 FROM Student; 2.5 查询选修了课程的学生学号。 SELECT DISTINCT Sno FROM SC; 2 条件查询 2.6 查询数学系全体学生的学号(Sno)和姓名 (Sname)。 SELECT Sname,Sno FROM Student WHERE Sdept='MA'; 2.7 查询所有年龄在 18~22 岁(包括 18 岁和 22 岁)之间的学生姓名 (Sname)及年龄(Sage)。
SELECT Sname,Sage FROM Student WHERE Sage BETWEEN 18 AND 22; 2.8 查询年龄不在 18-22 岁之间的学生姓名(Sname)及年龄(Sage)。 SELECT Sname,Sage FROM Student WHERE Sage NOT BETWEEN 18 AND 22; 2.9 查询自动化系、数学和计算机系学生的学号(Sno)、姓名(Sname) 和性别(Ssex)。 SELECT Sno,Sname,Ssex FROM Student WHERE Sdept IN ('MA','IS','CS'); 2.10 查询既不是信息系、数学系、也不是计算机系的学生的姓名 (Sname)和性别(Ssex)。 SELECT Sno,Sname,Ssex FROM Student WHERE Sdept
NOT IN ('MA','IS','CS'); 2.11 查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)。 SELECT Sno,Sname,Ssex FROM Student WHERE Sname like '刘%'; 2.12 查询姓“刘”且全名为 4 个汉字的学生的姓名(Sname)和所在 系(Sdept)。 SELECT Sname,Sdept FROM Student WHERE Sname like '刘___'; 2.13 查询所有不姓刘的学生姓名(Sname)和年龄(Sage)。 SELECT Sname,Sage FROM Student WHERE Sname NOT like '刘%';
2.14 查询课程名为“DB_设计”的课程号(Cno)和学分(Credit)。 SELECT Cno,Credits FROM Course WHERE Cname='DB_ 设计'; 2.15 查询以"DB_"开头,且倒数第 2 个汉字字符为“设”的课程的 详细情况。 SELECT* FROM Course WHERE Cname LIKE 'DB%设_'; 2.16 假设某些学生选修课程后没有参加考试,所以有选课记录,但 没有考试成绩。试查询缺少成绩的学生的学号(Sno)和相应的课程号 (Cno)。 SELECT Sno,Cno FROM SC WHERE Grade IS NULL; 2.17 查询所有有成绩的学生学号(Sno)和课程号(Cno)。其命令为:
SELECT Sno,Cno FROM SC WHERE Grade IS NOT NULL; 3 查询结果排序 2.18 查询选修了 C03 号课程的学生的学号(Sno)和成绩(Grade),并 按成绩降序排列。 SELECT Sno,Grade FROM SC WHERE Cno='3' ORDER BY Grade DESC; 2.19 查询全体学生情况,查询结果按所在系的系名(Sdpet)升序排列, 同一系中的学生按年龄(Sage)降序排列。 SELECT *FROM Student ORDER BY Sdept, Sage DESC;
4 集函数的使用 2.20 查询学生总人数。 SELECT COUNT(Sno) 学生人数 FROM Student; 2.21 查询选修了课程的学生人数。 SELECT COUNT(distinct Sno) 选课人数 FROM SC; 2.22 计算选修 C01 号课程的学生平均成绩。 SELECT AVG(Grade) FROM SC WHERE Cno='1'; 2.23 查询选修 C01 号课程的学生最高分数。 SELECT MAX(Grade) 最高成绩 FROM SC WHERE Cno='1'; 5 查询结果分组 2.24 求各个课程号(Cno)及相应的选课人数。 SELECT Cno,COUNT(Cno) 人数 FROM SC GROUP BY Cno;
分享到:
收藏