数据查询实验实验讲解学习.docx
- 文档编号:6551835
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:11
- 大小:107.78KB
数据查询实验实验讲解学习.docx
《数据查询实验实验讲解学习.docx》由会员分享,可在线阅读,更多相关《数据查询实验实验讲解学习.docx(11页珍藏版)》请在冰豆网上搜索。
数据查询实验实验讲解学习
数据查询实验实验
1.实验三数据查询实验实验
1.1实验目的
通过对实验二中建立的学生数据库关系表和视图的各种查询的操作,加深对SQL查询语言的了解,掌握相关查询语句的语法和使用方法。
1.2实验内容
1.2.1数据库关系表查询
(1)简单的查询操作,包括单表的查询、选择条件、结果排序等的练习;
(2)多表的连接查询,包括等值连接、自然连接等;
(3)复杂的查询操作,包括使用分组函数等库函数的查询操作;
(4)练习带有IN、比较符的嵌套查询。
1.2.2视图查询
对实验二建立的视图进行相关的查询操作,如:
查询选修了课程编号为“C01”的学生的学号和成绩;
查询所有学生的学号、姓名、选修的课程名称和成绩;
查询选修了数据库原理的学生的学号和姓名。
1.3实验要求
(1)用SQL语句完成以上操作
(2)要求学生独立完成以上内容。
(3)实验完成后完成要求的实验报告内容。
1.4实验环境
Windows8pc机
Mysql配置的环境
Mysql命令行工具
Workbench可视化工具
1.5实验步骤及结果分析
1.5.1数据库关系表查询
1.5.1.1简单查询
具体内容包括:
在简单查询实验中,在sql语句完成以下查询操作:
1.查询“数据库原理”课程的学分:
Mysql语言:
selectcreditfromcoursewherecname='数据库原理';
2.查询选修了课程编号为“C01”的学生的学号和成绩,并将成绩按降序输出:
Mysql语言:
selectsno,grade
fromsc
wherecno='C01'
orderbygradedesc;
3.查询学号为“31401”的学生选修的课程编号和成绩:
Mysql语言:
selectcno,grade
fromsc
wheresno=31401;
4.查询选修了课程编号为“C01”且成绩高于85分的学生的学号和成绩:
Mysql语言:
selectsno,grade
fromsc
wherecno='C01'andgrade>85;
查询“数据库原理”课程的学分查询选修了课程编号为“C01”的学生的学号和
成绩,将成绩按降序输出
查询学号为“31401”的学生选修的课程编号和成绩查询选修了课程编号为“C01”且成绩高于85分
的学生的学号和成绩
1.5.1.2连接查询
在多表连接的查询实验中,在SQL SERVER提供的交互式语言环境下用TransactSQL语句完成以下查询操作:
1.查询选修了课程编号为“C01”且成绩高于85分的学生的学号、姓名和成绩:
Mysql语言:
selectsno,sname,grade
fromstudentnaturaljoinsc
wherecno='C01'andgrade>85;
2.查询所有学生的学号、姓名、选修的课程名称和成绩
Mysql语言:
selectsno,sname,cname,grade
fromstudentnaturaljoinscnaturaljoincourse;
查询选修了课程编号为“C01”且成绩高于85分的学生的学号、姓名和成绩
查询所有学生的学号、姓名、选修的课程名称和成绩
1.5.1.3复杂查询
在复杂查询实验中,用SQL语句完成以下查询操作:
1.查询至少选修了三门课程的学生的学号和姓名:
Mysql语言:
selectsno,sname,count(cno)
fromstudentnaturaljoinsc
groupbysno
havingcount(cno)>=3;
2.查询所有学生的学号和他选修课程的最高成绩,要求他的选修课程中没有成绩为空的。
Mysql语言:
selectsno,max(grade)
fromsc
wheresnonotin(selectdistinctsnofromscwheregradeisnull)
groupbysno;
查询至少选修了三门课程的学生的学号和姓名
查询所有学生的学号和他选修课程的最高成绩,要求他的选修课程中没有成绩为空的
1.5.1.4嵌套查询
在嵌套查询实验中,在kingbase提供的交互式语言环境下用iSQL语句完成以下查询操作,要求写嵌套查询语句:
1.查询选修了数据库原理的学生的学号和姓名:
Mysql语言:
selectsno,sname
from(selectsno,sname,cname
fromstudentnaturaljoinscnaturaljoincourse
)asa
wherecname='数据库原理';
2.查询没有选修数据库原理的学生的学号和姓名:
Mysql语言:
selectdistinct(sno),sname
from(selectsno,sname,cname
fromstudentnaturaljoinscnaturaljoincourse
)asa
wherecname<>'数据库原理';
3.查询至少选修了学号为“31401”的学生所选修的所有课程的学生的学号和姓名:
Mysql语言:
selectsno,sname
fromstudent
wherenotexists(select*from(selectcnofromscwheresno=31401)asS
wherenotexists(select*fromscwherecno=S.cnoandsno=student.sno));
查询选修了数据库原理的学生的学号和姓名
查询没有选修数据库原理的学生的学号和姓名
查询至少选修了学号为“31401”的学生所选修的所有课程的学生的学号和姓名
1.5.2视图查询
对实验二建立的视图进行相关的查询操作,如:
1.查询选修了课程编号为“C01”的学生的学号和成绩:
Mysql语言:
selectsno,gradefromnew_viewwherecno='C01';
2.查询所有学生的学号、姓名、选修的课程名称和成绩:
Mysql语言:
selectsno,sname,cname,gradefromnew_view;
3.查询选修了数据库原理的学生的学号和姓名:
Mysql语言:
selectsno,snamefromnew_viewwherecname='数据库原理';
查询选修了课程编号为“C01”的学生的学号和成绩查询所有学生的学号、姓名、选修的课程名称和成绩
查询选修了数据库原理的学生的学号和姓名
1.6实验总结
本次实验我们进行了多种多样的mysql查询操作,在多次的进行查书,查网络资料后,我完成了本次的实验。
首先,我感觉本次实验最重要的便是本次实验的结构性,针对简单查询、连接查询、复杂查询、嵌套查询分块操作,毫无疑问让我对查询有了更深一步的了解,不同的查询方式对应着不同的特点,不同的语句。
同时,实验中,我遇到了各种语句的不熟悉等问题,在资料查询过程中,让我对各种语句有了更深一步的了解,同时在使用过程中有了更多的熟练性。
尤其是最后一个嵌套查询,我查阅了很多网络资料和例子,让我对exists和notexists语句有了更深一步的了解,同时再看解释时也让我对数据库查询的内部过程有了一定的了解,即采用相当于高级语言的循环操作方式类似。
毫无疑问,本次实验让我对理论的应用有了一定程度的适应,也大大增加了对实验过程的兴趣。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 查询 实验 讲解 学习