数据库实验二0001.docx

上传人:b****5 文档编号:6751441 上传时间:2023-01-10 格式:DOCX 页数:23 大小:921.33KB
下载 相关 举报
数据库实验二0001.docx_第1页
第1页 / 共23页
数据库实验二0001.docx_第2页
第2页 / 共23页
数据库实验二0001.docx_第3页
第3页 / 共23页
数据库实验二0001.docx_第4页
第4页 / 共23页
数据库实验二0001.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

数据库实验二0001.docx

《数据库实验二0001.docx》由会员分享,可在线阅读,更多相关《数据库实验二0001.docx(23页珍藏版)》请在冰豆网上搜索。

数据库实验二0001.docx

数据库实验二0001

数据库实验二

任课教师:

《数据库原理及应用》

学号:

姓名:

班级:

实验二数据库的简单查询和高级查询

一、实验目的:

本实验的目的是使学生掌握SQLServer查询分析器的使用方法,加深对SQL和SQL语言的查询语句的理解。

熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法,加深SQL语言的嵌套查询语句的理解,熟练掌握数据查询中的分组、统计、计算和集合的操作方法。

二、实验内容

(一)简单查询操作。

该实验包括投影、选择条件表达,数据排序,使用临时表等。

具体完成以下题目,将它们转换为SQL语句表示,在学生选课数据库中实现其数据查询操作。

1.求数学系学生的学号和姓名

2.求选修了课程的学生学号

3.求选修课程号为‘1’的学生号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学号的升序排列。

4.求选修课程号为‘1’且成绩在80~90之间的学生学号和成绩,并将成绩乘以0.8输出。

5.求数学系或计算机系姓张的学生的信息。

6.求缺少了成绩的学生的学号和课程号

(二)连接查询操作。

该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。

1.查询每个学生的情况以及他所选修的课程

2.求学生的学号、姓名、选修的课程及成绩

3.求选修课程号为‘1’且成绩在90以上的学生学号、姓名和成绩

4.查询每一门课程的间接先行课(即先行课的先行课)

(三)嵌套查询操作:

在SQLServer查询分析器中使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。

具体完成以下各题。

将它们用SQL语句表示,在学生选课中实现其数据嵌套查询操作。

1.求选修了高等数学的学号和姓名

2.求‘1’课程的成绩高于刘晨的学生学号和成绩

3.求其他系中比计算机系某一学生年龄小的学生(即年龄小于计算机系年龄最大者的学生)

4.求其他系中比计算机系学生年龄都小的学生

5.求选修了‘2’课程的学生姓名

6.求没有选修‘2’课程的学生姓名

7.查询选修了全部课程的学生姓名

8.求至少选修了学号为“95002”的学生所选修全部课程的学生学号和姓名

(四)集合查询和统计查询:

1)分组查询实验。

该实验包括分组条件表达、选择组条件表达的方法。

2)使用函数查询的实验。

该实验包括统计函数和分组统计函数的使用方法。

3)集合查询实验。

该实验并操作UNION、交操作INTERSECT和差操作MINUS的实现方法。

具体完成以下例题,将它们用SQL语句表示,在学生选课中实现其数据查询操作。

1.求学生的总人数

2.求选修了课程的学生人数

3.求课程和选修了该课程的学生人数

4.求选修超过3门课的学生学号

5.查询计算机科学系的学生及年龄不大于19岁的学生

6.查询计算机科学系的学生与年龄不大于19岁的学生的交集

7.查询计算机科学系的学生与年龄不大于19岁的学生的差集

8.查询选修课程‘1’的学生集合与选修课程‘2’的学生集合的交集

9.查询选修课程‘1’的学生集合与选修课程‘2’的学生集合的差集

三、实验方法

将查询需求用SQL语言表示;在SQLServer查询分析器的输入区中输入SQL查询语句;设置查询分析器的结果区为StandardExecute(标准执行)或ExecutetoGrid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。

所使用的学生管理库中的三张表为:

(1)STUDENT(学生信息表)

SNO(学号)

SNAME(姓名)

SEX(性别)

SAGE(年龄)

SDEPT(所在系)

95001

李勇

20

CS

95002

刘晨

19

IS

95003

王名

18

MA

95004

张立

19

IS

95005

李明

22

CS

95006

张小梅

23

IS

95007

封晓文

20

MA

(2)COURSE(课程表)

CNO(课程号)

CNAME(课程名)

CPNO(先行课)

CCREDIT(学分)

1

数据库

5

4

2

数学

2

3

信息系统

1

4

4

操作系统

6

3

5

数据结构

7

4

6

数据处理

2

7

PASCAL语言

6

4

(3)SC(选修表)

SNO(学号)

CNO(课程号)

Grade(成绩)

95001

1

92

95001

2

85

95001

3

88

95002

2

90

95002

3

80

95003

1

78

95003

2

80

95004

1

90

95004

4

60

95005

1

80

95005

3

89

95006

3

80

95007

4

65

四、实验结果与分析(SQL代码及查询结果截图)

源代码:

1.1

SELECTSNO,SNAME

FROMSTUDENT

WHERESDEPT='MA';

1.2

SELECTDISTINCTSNO

FROMSC;

1.3

SELECTSNO,Grade

FROMSC

WHERECNO='1'

ORDERBYGradeDESC,SNO;

1.4

SELECTSNO,Grade*0.8

FROMSC

WHERECNO='1'ANDGradeBETWEEN80AND90

1.5

SELECT*

FROMSTUDENT

WHERESDEPTIN('CS','MA')ANDSNAMELIKE'张%';

1.6

SELECTSNO,CNO

FROMSC

WHEREGradeISNULL;

2.1

SELECTSTUDENT.*,SC.*

FROMSTUDENT,SC

WHERESTUDENT.SNO=SC.SNO;

2.2

SELECTSTUDENT.SNO,SNAME,SC.CNO,Grade

FROMSTUDENT,SC

WHERESTUDENT.SNO=SC.SNO;

2.3

SELECTSTUDENT.SNO,SNAME,Grade

FROMSTUDENT,SC

WHERESTUDENT.SNO=SC.SNOAND

SC.CNO='1'ANDSC.Grade>90;

2.4

SELECTFIRST.CNO,SECOND.CPNO

FROMCOURSEFIRST,COURSESECOND

WHEREFIRST.CPNO=SECOND.CNO;

3.1

SELECTSTUDENT.SNO,SNAME

FROMSTUDENT,SC,COURSE

WHERESTUDENT.SNO=SC.SNOAND

SC.CNO=COURSE.CNOAND

COURSE.CNAME='数学';

3.3

SELECTSNAME,SAGE

FROMSTUDENT

WHERESAGE

FROMSTUDENT

WHERESDEPT='CS')

ANDSDEPT<>'CS';

3.4

SELECTSNAME,SAGE

FROMSTUDENT

WHERESAGE

FROMSTUDENT

WHERESDEPT='CS')

ANDSDEPT<>'CS';

3.5

SELECTSNAME

FROMSTUDENT

WHEREEXISTS

(SELECT*

FROMSC

WHERESNO=STUDENT.SNOANDCNO=2);

3.6

SELECTSNAME

FROMSTUDENT

WHERENOTEXISTS

(SELECT*

FROMSC

WHERESNO=STUDENT.SNOANDCNO=2);

3.7

SELECTSNAME

FROMSTUDENT

WHERENOTEXISTS

(SELECT*

FROMCOURSE

WHERENOTEXISTS

(SELECT*

FROMSC

WHERESNO=STUDENT.SNO

ANDCNO=COURSE.CNO));

截图:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1