最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

数据库原理实验报告(4)

来源:动视网 责编:小OO 时间:2025-09-27 22:00:04
文档

数据库原理实验报告(4)

南京晓庄学院《数据库原理与应用》课程实验报告实验四查询设计实验所在院(系):信息工程学院班级:13软件工程转本1班学号:13131151姓名:1.实验目的(1)了解查询的目的,掌握SELECT语句的基本语法和查询条件的表示方法。(2)掌握数据排序和数据联接查询的方法。(3)掌握SQLServer查询分析器的使用方法。2.实验要求(1)针对“TM”数据库,在SQLServer查询分析器中,用T-SQL语句实现以下单表查询操作,并将将调试成功的T-SQL命令,填入实验报告中。a)查询所有课程的
推荐度:
导读南京晓庄学院《数据库原理与应用》课程实验报告实验四查询设计实验所在院(系):信息工程学院班级:13软件工程转本1班学号:13131151姓名:1.实验目的(1)了解查询的目的,掌握SELECT语句的基本语法和查询条件的表示方法。(2)掌握数据排序和数据联接查询的方法。(3)掌握SQLServer查询分析器的使用方法。2.实验要求(1)针对“TM”数据库,在SQLServer查询分析器中,用T-SQL语句实现以下单表查询操作,并将将调试成功的T-SQL命令,填入实验报告中。a)查询所有课程的
南 京 晓 庄 学 院

《数据库原理与应用》

课程实验报告

实验四  查询设计实验

所在院(系):  信息工程学院

班级:          13软件工程转本1班    

学号:       13131151               

姓名:                               

1.实验目的

(1)了解查询的目的,掌握SELECT语句的基本语法和查询条件的表示方法。

(2)掌握数据排序和数据联接查询的方法。

(3)掌握SQL Server查询分析器的使用方法。

2.实验要求

(1)针对 “TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询操作,并将将调试成功的T-SQL命令,填入实验报告中。

a)查询所有课程的详细情况。

b)查询来自江苏或山东的学生学号和姓名,并以中文名称显示输出的列名。

c)查询选修了课程的学生学号(一人选了多门课程的话,学号只显示一次)。

d)查询选修课程号为07253001的学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

e)查询所有学生的学号、姓名和年龄。

f)查询选修课程号为07253001的成绩在85-95之间的学生学号和成绩,并将成绩乘以0.7输出。

g)查询数学与信息技术学院(DEPT_ID为07)或物理与电子工程学院(DEPT_ID为09)姓张的学生的信息。

h)查询所有核心课程(课程名中带*的)的情况。

i)查询缺少了成绩的学生的学号和课程号,查询结果按课程号升序排列。

(2)在SQL Server查询分析器中,用T-SQL语句实现下列数据联接查询操作:

a)查询每个学生的情况以及他(她)所选修的课程。

b)查询学生的学号、姓名、选修的课程名及成绩。

c)查询选修C语言程序设计且成绩为85分以上的学生学号、姓名及成绩。

d)查询和学生柏文楠是同一个民族的学生(用自身联接实现)。

e)分别用等值联接和内联接查询有授课记录的老师的姓名。

f)用外联接查询所有老师的授课情况,输出老师的工号、姓名、职称、院系、担任的课程号和授课的学期,结果按院系和职称升序排列。如果该老师没有授课历史,在课程号和授课的学期中显示空值

(3)在SQL Server Management Studio中新建查询,完成以上查询命令的同时,熟悉SQL编辑器工具栏中各快捷按钮的作用。

(4)按要求完成实验报告。

   

3.实验步骤、结果和总结实验步骤/结果

将调试成功的T-SQL语句写在下方(标明题号)。

一、针对 “TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询操作,并将将调试成功的T-SQL命令,填入实验报告中。

(a)查询所有课程的详细情况:

   select * from Course

(b)查询来自江苏或山东的学生学号和姓名,并以中文名称显示输出的列名。

SELECT  S_ID  as 学号,S_Name as 姓名

FROM  Student   

WHERE Birth_Place='江苏' or Birth_Place='山东'

(c)查询选修了课程的学生学号(一人选了多门课程的话,学号只显示一次)。

(d)查询选修课程号为07253001的学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

select S_ID,EXAM_Grade from sc

    where C_ID='07253001'

order by EXAM_Grade desc,S_ID asc

(e)查询所有学生的学号、姓名和年龄。

SELECT  S_ID,S_NAME, year(getdate())-year(Date_of_Birth) as 年龄 FROM Student

(f)查询选修课程号为07253001的成绩在85-95之间的学生学号和成绩,并将成绩乘以0.7输出。

Select  S_ID,EXAM_Grade*0.7 as  grade  from  SC

where C_ID='07253001'and EXAM_Grade between 85 and 95

(g)查询数学与信息技术学院(DEPT_ID为07)或物理与电子工程学院(DEPT_ID为09)姓张的学生的信息。

select *from Student  where DEPT_ID in ('07', '09') and S_Name like '张%'

(h)查询所有核心课程(课程名中带*的)的情况。

SELECT * FROM Course WHERE C_Name like '%*%'

(i)查询缺少了成绩的学生的学号和课程号,查询结果按课程号升序排列。

   select S_ID,C_ID from SC where EXAM_Grade IS NULL

order by C_ID

2、二、在SQL Server查询分析器中,用T-SQL语句实现下列数据联接查询操作:

(a)查询每个学生的情况以及他(她)所选修的课程。

Select Student.S_ID, S_Name,Gender, Birth_Place,DEPT_ID, Class_ID,  Course.C_name  from Student  join SC on Student.S_ID=SC.S_ID join Course on Course.C_ID=SC.C_ID

(b)查询学生的学号、姓名、选修的课程名及成绩。

select Student.S_ID, S_Name,C_Name, EXAM_Grade 

from Student inner join SC on Student.S_ID=SC.S_ID inner join Course on   SC.C_ID=Course.C_ID

(c)查询选修C语言程序设计且成绩为85分以上的学生学号、姓名及成绩。

     Select Student.S_ID,S_NAME,EXAM_Grade  from Student,SC,Course

    where  Student.S_ID=SC.S_ID and Course.C_ID=SC.C_ID and C_Name='C语言程序设   计' and EXAM_Grade>=85

(d)查询和学生柏文楠是同一个民族的学生(用自身联接实现)。

    SELECT  S_Name from Student

where Nationality=(select Nationality from Student  where S_Name='柏文楠')

(e)分别用等值联接和内联接查询有授课记录的老师的姓名。

1. 等值联接

select DISTINCT T_Name from

 Teacher inner join TC on Teacher.T_ID=TC.T_ID

2.内联接

    select  DISTINCT  T_Name  from   Teacher,TC  where Teacher.T_ID=TC.T_ID

(f)用外联接查询所有老师的授课情况,输出老师的工号、姓名、职称、院系、担任的课程号和授课的学期,结果按院系和职称升序排列。如果该老师没有授课历史,在课程号和授课的学期中显示空值。

select Teacher.T_ID,Teacher.T_Name,Teacher.Academic_Title,Department.

  DEPT_Name,TC.C_ID,TC.Semester 

 from Teacher Right join TC on Teacher.T_ID=TC.T_ID join Department ON   Department.DEPT_ID=Teacher.DEPT_ID

order by Department.DEPT_Name , Teacher.Academic_Title

4.实验思考:

①联接查询中,输出列名时何时可以忽略列名前的表名,何时不能?

表名.列名

若选择的字段名在各个表中是唯一的,则可以省略字段名前的表名。

②联接查询中,INNER JOIN、 LEFT OUTER JOIN 、RIGHT OUTER JOIN、 FULL OUTER JOIN 的结果各有什么不同?

INNER JOIN :

    Inner join 产生的结果集中,是A和B的交集

SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name

LEFT OUTER JOIN:  

    (1)  Left outer join 产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。

 

SELECT * FROM TableA LEFT OUTER JOIN  TableB ON TableA.name = TableB.name

    (2)  产生在A表中有而在B表中没有的集合。

SELECT * FROM TableA LEFT OUTER JOIN  TableB ON TableA.name = TableB.name   

WHERE   TableB.id IS null

RIGHT [OUTER] JOIN

RIGHT OUTER JOIN 是后面的表为基础,与LEFT OUTER JOIN用法类似。

FULL [OUTER] JOIN   

    (1)  Full outer join 产生A和B的并集。但是需要注意的是,对于没有匹配的记录,则会以null做为值。可以使用IFNULL判断。

SELECT * FROM TableA FULL OUTER JOIN  TableB ON TableA.name = TableB.name 

 

    (2)  产生A表和B表没有交集的数据集。

SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name

WHERE TableA.id IS null OR TableB.id IS null

③LIKE匹配字符有几种?如果要检索的字符中包含匹配字符,该如何处理?

LIKE通配符及实例

通配符 

说明实例
%表示包含零个或多个字符的任意字符串。

where title like '%computer%' 将查找在书名中任意位置包含单词 "computer" 的所有书名。

_(下划线)

表示任何单个字符。

where au_fname like '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(dean、sean 等)。

[]指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。where au_lname like '[c-p]arsen' 将查找以 arsen 结尾并且以介于 c 与 p 之间的任何单个字符开始的作者姓氏,例如 carsen、larsen、karsen 等。

[^]不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。where au_lname like 'de[^l]%' 将查找以 de 开始并且其后的字母不为 l 的所有作者的姓氏。

文档

数据库原理实验报告(4)

南京晓庄学院《数据库原理与应用》课程实验报告实验四查询设计实验所在院(系):信息工程学院班级:13软件工程转本1班学号:13131151姓名:1.实验目的(1)了解查询的目的,掌握SELECT语句的基本语法和查询条件的表示方法。(2)掌握数据排序和数据联接查询的方法。(3)掌握SQLServer查询分析器的使用方法。2.实验要求(1)针对“TM”数据库,在SQLServer查询分析器中,用T-SQL语句实现以下单表查询操作,并将将调试成功的T-SQL命令,填入实验报告中。a)查询所有课程的
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top