“21天好习惯”第一期-2

本文详细介绍了数据库中的连接查询,包括等值连接查询和外连接查询。通过具体的SQL查询语句示例,展示了如何列出选修特定课程的学生信息,以及计算学生已修学分的方法。此外,还提供了左外连接、右外连接和全外连接查询的SQL语法,并给出了创建相关数据库表的代码。这些查询对于理解和操作关系数据库至关重要。
摘要由CSDN通过智能技术生成

一、数据库数据查询——连接查询

        若一个查询同时涉及两个以上的表,则称之为连接查询。连接查询是关系数据库中最主要的查询,包括等值连接查询、外连接查询等等。


1.等值连接查询:即连接运算符为=时

例题:

(1).列出选修了‘数学’或者‘数据库’的学生学号、姓名、所在院系、选修课程号及成绩

select student. sno, sname, sdept,sc.cno, grade
from student, sc, course
where (cname=’数学’or cname='数据库')
and sc.cno=course.cno and student.sno=sc.sno;

(2).按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。其中已修学分为考试已经及格的课程学分之和;

select
student.sno学号, sname姓名, sdept院系,
已修学分=(SUM(case when grade>60 then ccredit else 0 end))
from student, sc, course
where student.sno =Sc.sno
and sc.cno =course .cno
group by student.sno,sname,sdept

2.外连接查询:左外连接查询,右外连接查询,全外连接查询

例题:

分别使用左外连接、右外连接、全外连接查询student表和sc表中学生的姓名,课程号和成绩

--左外连接查询
select sname, cno, grade
from student left outer join sc on (student.sno=sc.sno) ;
--右外连接查询
select sname, cno, grade
from sc right outer join student on (student.sno=sc. sno);
--全外连接查询
select sname, cno, grade
from student full outer join sc on (student. sno=sc.sno) ;


创建表的代码:

--创建studnet表
create table student
(sno char(9) primary key,
 sname char(20) unique,
 ssex char(2) check(ssex in('男','女')),
 sage smallint,
 sdept char(20))
 go
 
 --创建courset表
 create table course 
 (cno char(4) primary key,
  cname char(40),
  cpno char(4),
  ccredit smallint
 )
 go

--创建sc表 
create table sc
(sno char(9),
 cno char(4),
 grade smallint check(grade between 0 and 100),
 primary key(sno,cno),
 foreign key(sno) references student(sno),
 foreign key(cno) references course(cno),
)
go

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值