实验3 数据查询
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三数据查询
●实验指导——简单查询和连接查询
一.实验目的
1.观察查询结果, 体会SELECT语句实际应用;
2.要求学生能够在查询分析器中使用SELECT语句进行简单查询。
3. 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
二.实验准备
1.完成实验四,成功建立了基本表。
2.了解简单SELECT语句的用法。
3.比较熟悉查询分析器中的SQL脚本运行环境。
三.实验要求
1.完成简单查询和连接查询操作,并验收实验结果提交实验报告
四.实验内容
CREATE TABLE student1
(
sno char(8)PRIMARY KEY,--学号(主键)
sname char(8)NOT NULL,--姓名
ssex char(2),--性别
sage char(2),--年龄
sdept char(6),--所在院系
)
CREATE TABLE course1
(
cno char(10)PRIMARY KEY,--课程编号(主键)
cname char(20)NOT NULL,--课程名称
cpno char(2),--先行课
credit tinyint--课程学分
)
CREATE TABLE sc
(
sno char(8),--学号(主键)
cno char(10),--课程编号(主键)
grade char(3),--成绩
primary key(sno,cno)
)
所有的查询全部用Transact-SQL语句实现
1.简单查询操作
此部分查询包括投影、选择条件表达、数据排序、使用临时表等。
对EDUC数据库实现以下查询:
①求计算机系的学生学号和姓名;
SELECT sno,sname
from student1
where sdept='CS';
②求选修了课程的学生学号;
SELECT distinct sno
from sc
where cno is not null;
③求选修C1 (数学)课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,
如果成绩相同则按学号的升序排列;
SELECT sno,grade
from course1,sc
where o=o and cname='数学'
order by grade desc,sno asc;
④求选修课程C1 (数学)且成绩在80-90(85)之间的学生学号和成绩,并将成绩
乘以系数0.75 输出;
SELECT sno,grade
from course1,sc
where o=o and cname='数学'and grade between80 and 85;
⑤求计算机系(CS)和数学系(IS)的姓张的学生的信息;
SELECT*
from student1
where sdept in('CS','IS')and sname like'张%';
⑥求缺少了成绩的学生的学号和课程号。
SELECT sc.sno,cno
from student1,sc
where student1.sno=sc.sno and grade is null;
⑦将2000以后的成绩大于90分的学生成绩存入永久成绩表;将2000年以前的成绩
存入临时成绩表中。
2.连接查询操作
对EDUC数据库实现以下查询:
①查询每个学生的情况以及他(她)所选修的课程;
SELECT student1.*,o
from student1,sc
where student1.sno=sc.sno;
②求学生的学号、姓名、选修的课程名及成绩;
SELECT student1.sno,student1.sname,ame,sc.grade
from student1,sc,course1
where student1.sno=sc.sno and o=o;
③求选修C1(数学) 课程且成绩在90 分以上的学生学号、姓名及成绩;
SELECT sc.sno,student1.sname,sc.grade
from student1,sc
where student1.sno=sc.sno and grade>90;
④查询每一门课的间接先行课。
SELECT o,c2.cpno
from course1 c1,course1 c2
where c1.cpno=o;
●实验指导——子查询
一.实验目的
1.掌握子查询的表示。
2.进一步掌握SQL Server 查询分析器的使用方法,加深对SQL 语言的嵌套查询语句的理解二.实验准备
1.掌握SQL语句的基本语法,并熟悉查询分析器的工作环境。
2.完成了实验二,创建了数据库EDUC及各个基本表。
3.了解子查询的表示方法,熟悉IN 比较符、ANY、EXISTS操作符的用法。
三.实验要求
1.在实验开始之前做好准备工作。
2.完成实验,并验收实验结果提交实验报告。
四.实验内容
1.在数据库EDUC中实现一下查询:
1)求选修了高等数学(数学)的学生学号和姓名;
select distinct sc.sno,student1.sname
from student1,sc
where sc.sno=student1.sno;
2)求C1 (数学)课程的成绩高于张三(李勇)的学生学号和成绩;
select sc.sno,sc.grade
from course1,sc
where grade>(select sc.grade
from student1,sc,course1
where student1.sno=sc.sno and o=o and sname='李勇'and cname='数学')
and o=o and cname='数学';
3)求其他系中比计算机系(CS)某一学生年龄小的学生信息(即求其它系中年龄小于计算机系年龄最大者的学生);
select student1.*
from student1
where sage from student1 where sdept='CS')