实验3 数据查询

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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')

相关文档
最新文档