数据库原理与应用TSQL实验之数据库的简单查询和连接查询

一、实验目的

熟悉 SQL 的数据查询语言,能够使用 SQL 语句对数据库进行单表查询、连接查询,加深

对 T-SQL 语言的查询语句的理解。

二、实验内容及过程

1.实验内容

1)简单查询操作。包括投影、选择条件表达、数据排序等。

2)连接查询操作。包括笛卡儿积、等值连接、自然连接、复合条件连接、多表连接、外连

接和自连接等。

2.实验过程及结果

 

  1. 用到的4张表

SnoCnoGrade 课程表2

3613e23592ef4979bd608c5e82582352.jpeg55c492fd6e134e18bbade7828c256e3c.jpeg

SC 选课表

8c5546ca1f974da7825c4dd4f63b0661.jpeg

Course 课程表

c681d2d1aea64aeda1acfd483c084946.jpeg

Student 学生表

7550937872e5466c8c828baf7e11bd83.jpeg

1、简单查询

在学生选课数据库中实现其数据查询操作。

1) 查询数计学院学生的学号和姓名。

GO

  select sno,sname from Student

  where sdept='数计学院'

  GO

  SELECT sno

  from SC

 GO

2) 查询选修了课程的学生学号。

 SELECT sno

  from SC

3) 查询选修 C1 课程的学生学号和成绩,结果按成绩降序排列,如果成绩相同按学号升序排

序。

 SELECT sno,grade

 from SC

 where  cno='c101' 

 OrDer by grade DESC,sno asc

4) 查询选修 C1 课程,成绩在 80~90 之间的学生学号和成绩,并将成绩乘以 0.8 输出。

select SNO,GRADE*0.8

 from SC

 WHERE grade between 80 and 90  and cno='c102'

5) 查询生工学院或数计学院系姓张的学生的信息。

 SELECT *

 from Student

 WHERE sdept in ('生工学院' ,'数计学院' )and

 sname like '张%' 

6) 查询缺少了成绩的学生的学号和课程号。

select sno ,cno

 from SC

 where grade IS NULL

2、连接查询

在学生选课库中实现其数据连接查询操作。

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

 select Student.sno,sname,cname,grade from 

 (Student INNER JOIN SC ON Student.sno=SC.sno)

 INNER JOIN Course on SC.cno=Course.cno

2) 查询数计学院学生选修的课程学分大于 2 的课程详细信息。

 SELECT *

 FROM SnoCnoGrade

 where cnum>2

3) 查询所有学生的信息以及他(她)所选课的学生学号和成绩(要求查询结果也显示出没有

选修课程的学生信息)。

 SELECT *,grade

 FROM Student

Student left join SC ON SC.sno=Student.sno

4) 查询选修课程号为 C1 且成绩在 90 分以上的学生学号、姓名及成绩。

 SELECT Student.sno,sname,grade

 FROM SC INNER JOIN Student on Sc.sno=Student.sno and

 grade>90 AND cno='c101'

5) 查询每一门课的间接先行课(即先行课的先行课)。

select first.cno,second.cpno

  from Course first,  Course second

  where  first.cpno=second.cname

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值