数据库系统实验二课案Word文档格式.docx
- 文档编号:15012989
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:15
- 大小:395.16KB
数据库系统实验二课案Word文档格式.docx
《数据库系统实验二课案Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库系统实验二课案Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
要求用SELECT完成以下查询,
1、对实验一建立的数据库表进行查询
简单查询:
(1)、查询全部学生的学号、姓名、性别和出身年月日。
实现代码及查询结果截图:
格式如下
查询分析器执行情况:
SQL语句及执行结果显示
SELECTs_no,sname,sex,sbirthday
FROMstudent_3113006393
查询结果截图显示
(2)、查询全体学生的学号、姓名和年龄
SELECTs_no,sname,2015-YEAR(sbirthday)
(3)、查询院系编号为‘510000’(计算机学院)的全部学生的学号、姓名、性别和出身年月日。
WHEREdno='
510000'
(4)、查询“计算机科学与技术”专业(专业代码为‘080605’)并且班级代码为‘0307’的学生的学号、姓名和出生日期。
SELECTs_no,sname,sbirthday
WHEREspno='
080605'
ANDclass_no='
0307'
(5)、查询在‘1983/01/10’以后出生的计算机学院(院系编号为‘510000’)学生的学号、姓名、性别和出身年月日。
WHEREsbirthday>
=1983/01/10
(6)、查询全部学生的学号、姓名、性别和出身日期结果按照出生日期的升序排列。
ORDERBYsbirthdayASC
连接查询:
(1)、查询全部学生的学号、姓名、性别、所在院系名称和专业名称
SELECTs_no,sname,sex,dept_name,spname
FROMstudent_3113006393,department_3113006393,speciality_3113006393
WHEREstudent_3113006393.dno=department_3113006393.dno
andstudent_3113006393.spno=speciality_3113006393.spno
(2)、查询选修了课程2(上课编号)的学生的学号、姓名、专业名称和这门课的成绩
SELECTstudent_3113006393.s_no,sname,spname,score
FROMstudent_3113006393,speciality_3113006393,student_course_3113006393
WHEREstudent_course_3113006393.tcid='
2'
andstudent_3113006393.spno=speciality_3113006393.spno
andstudent_3113006393.s_no=student_course_3113006393.s_no
(3)、查询学生不及格的情况列出不及格学生的学号、姓名和不及格的课程名称。
SELECTstudent_3113006393.s_no,sname,cname
FROMstudent_3113006393,student_course_3113006393,Course_3113006393,teacher_course_3113006393
WHEREstudent_course_3113006393.score<
60
andstudent_course_3113006393.tcid=teacher_course_3113006393.tcid
andteacher_course_o=Course_o
嵌套查询:
(1)、查询没有选修了课程1的学生,列出学生的学号和姓名。
SELECTs_no,sname
WHEREs_noIN
(SELECTs_no
FROMstudent_course_3113006393
WHEREtcid!
='
1'
)
(2)、查询每门课都是80分以上的学生的学号与姓名。
WHEREEXISTS
(SELECT*
WHEREstudent_3113006393.s_no
=student_course_3113006393.s_no
ANDscore>
80)
2、选用Northwind数据库进行查询
(1)、对NothWind.Products表进行简单查询;
在查询分析器在窗口下用SELECT语句
完成单表查询:
查询所有Products的详细记录;
SELECT*FROMProducts;
查询单价(UnitPrice)小于20的Products;
SELECT*FROMProducts
WHEREUnitPrice<
20;
查询Products中最高单价(UnitPrice)是多少;
SELECTMAX(UnitPrice)ASmax_UnitPriceFROMProducts;
(2)、在查询分析器在窗口下用SELECT语句完成连接(嵌套)查询:
查询所有被订购过得Products的ProductsID和ProductName;
SELECTProductName,ProductNameFROMProducts
WHEREProductIDIN
(SELECTDISTINCTProductID
FROM[OrderDetails]);
查询所有被CustomerID为AROUT客和订购过的ProductsID和ProductName;
SELECTProductName,ProductName
FROMProducts
WHEREProductIDIN(
SELECTProductIDFROM[OrderDetails]
WHEREOrderIDIN
(SELECTOrderIDFROMOrders
WHERECustomerID='
AROUT'
));
查询所有被CustomerID为AROUT客和订购过,且单价在20以上的ProductsID
和ProductName;
WHEREProductIDIN
(SELECTProductIDFROM[OrderDetails]
))
ANDUnitPrice>
查询Products中单价(UnitPrice)最高的Products的资料;
WHEREUnitPrice=
(SELECTMAX(UnitPrice)ASmax_UnitPriceFROMProducts);
五、实验中出现的问题及解决方案
问题:
2012SQLserver不支持附加2000版本mfd文件
解决:
利用2008版本中转导出至2012版本
连接查询不成功,存在着主键与外键约束
解决方案:
明确表与表之间存在主键外键约束的表才能进行连接
六、思考题
1连接查询分哪几类?
各有什么特点?
答:
连接查询可分为內连接和外连接,內连接包括自然连接,等值连接,不等连接;
外连接包括左外连接,右外连接,全外连接。
1)自然连接:
表关系的笛卡尔积中,首先根据表关系中相同名称的字段自动进行记录匹配,然后去除掉重复的字段。
2)等值连接:
表关系的笛卡尔积中,选择所匹配字段值相等的数据记录。
3)不等连接:
表关系的笛卡尔积中,选择所匹配字段值不相等的数据记录。
4)左外连接:
表关系的笛卡尔积中,除了选择相匹配的数据记录,还包含关联左边表中不匹配的数据记录。
5)右外连接:
表关系的笛卡尔积中,除了选择相匹配(相等)的数据记录,还包含关联右边表中不匹配的数据记录。
6)全外连接:
表关系的笛卡尔积中,除了选择相匹配的数据记录,还包含关联左右两边表中不匹配的数据记录。
2进行连接查询时应注意哪些问题?
1)根据问题判断这个查询最少需要几张表,(要查询的字段要筛选的条件是进行判断的主要条件)
2)判断要连接的表之间是否存在公共字段,如果有就可以连接,如果没有那么就要考虑需要一个中间表了
3)实施连接,要明确2表关联的公共字段是哪个字段
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 实验 二课案