SQL Server 连接查询和子查询

这篇具有很好参考价值的文章主要介绍了SQL Server 连接查询和子查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示: 利用单表简单查询和多表高级查询技能,并且根据查询要求灵活使用内连接查询、外连接查询或子查询等。同时还利用内连接查询的两种格式、三种外连接查询语法格式和子查询的语法格式。


前言

内连接查询(不同表之间查询)

1.查询所有学生的学号、姓名、选修课程号和成绩

方法一

USE XSCJ
GO
SELECT student.sno,sname,cno,grade from student,sc
where student.sno=sc.sno

SQL Server 连接查询和子查询

方法二

USE XSCJ
GO
SELECT student.sno,sname,cno,grade 
from student join sc on student.sno=sc.sno

SQL Server 连接查询和子查询

2.查询选修了课程名称为“数据库原理与应用”的学生的学号和姓名

方法一

USE XSCJ
select student.sno,sname from student,sc,course
where student.sno=sc.sno and sc.cno=course.cno and cname='数据库原理与应用'

SQL Server 连接查询和子查询

方法二

select student.sno,sname from student join sc 
on student.sno=sc.sno join course on sc.cno=course.cno
where cname='数据库原理与应用'

SQL Server 连接查询和子查询

3.使用别名实现查询所有学生的学号、姓名、选修课程号和成绩

select x.sno,sname,cno,grade
from student x,sc y
where x.sno=y.sno

SQL Server 连接查询和子查询
自身连接查询

4.查询所有年龄比张文宝大的学生的姓名、性别和年龄

select A.sname,A.ssex,A.sage
from student A,student B
where B.sname='张文宝' and A.sage>B.sage

SQL Server 连接查询和子查询
使用第二种格式实现内连接查询(JOIN ON)

5.用格式二实现查询所有学生的学号、姓名、选修课程号和成绩

SELECT student.sno,sname,cno,grade
from student join sc
on student.sno=sc.sno

SQL Server 连接查询和子查询
外连接(左外连接)

6.查询所有学生的学号、姓名及对应选课的信息,如果该学生没有选课,也需要显示该生的学号和姓名

SELECT student.sno,sname,cno,grade
from student left outer join sc
on student.sno=sc.sno

SQL Server 连接查询和子查询
右外连接

7.查询选课学生的基本信息(若实际上有外键约束,这种情况是不存在的)

select sc.sno,sname,cno,grade
from sc right outer join student
on student.sno=sc.sno

SQL Server 连接查询和子查询

8.采用右外连接查询学生的学号、选修的课程号、课程名及学分,同时也列出无学生选修的课程信息

select sc.sno,course.cno,cname,credit
from sc right outer join course
on course.cno=sc.cno

SQL Server 连接查询和子查询
全外连接

9.student和sc表实现全外连接

select *
from sc full outer join student 
on student.sno=sc.sno

SQL Server 连接查询和子查询
UNION联合查询

10.从student表中查询年龄为‘19’和‘20’的学生的系部,不包括重复行

select sdept from student where sage='19'
union
select sdept from student where sage='20'

SQL Server 连接查询和子查询

11.从student表中查询年龄为‘19’和‘20’的学生的系部,包括重复行

select sdept from student where sage='19'
union all
select sdept from student where sage='20'

SQL Server 连接查询和子查询
使用IN或NOT IN 的子查询

12.查询所有选修课程的学生的学号和姓名

select sno,sname
from student
where sno in
(select sno from sc)

SQL Server 连接查询和子查询

改为连接查询实现

select distinct student.sno,sname
from student join sc
on student.sno=sc.sno

SQL Server 连接查询和子查询
使用比较运算符的子查询

13.查询年龄高于平均年龄的学生的学号、姓名和年龄

select sno,sname,sage
from student 
where sage>
(select AVG(sage) from student)

SQL Server 连接查询和子查询
使用ANY或ALL的子查询

14.查询比CS系的任一学生年龄都大的学生姓名和年龄

select sname,sage
from student
where sage>any
	(select sage from student where sdept='CS')
	AND sdept!='CS'
select * from student

SQL Server 连接查询和子查询
使用EXISTS的子查询

15.查询已有学生选修的课程信息

select *
from course
where exists
(select * from sc where course.cno=sc.cno)

SQL Server 连接查询和子查询

16.查询尚没有学生选修的课程信息

select *
from course
where not exists
(select * from sc where course.cno=sc.cno)

SQL Server 连接查询和子查询
查看course表
SQL Server 连接查询和子查询
抽取数据到另一个表

17.查询CS系学生的信息,生成一个新表temp

select *
into temp
from student 
where sdept='CS'
select * from temp

SQL Server 连接查询和子查询
INSERT语句中的子查询

18.将所有的学号和课程号信息生成一个新表SCL

INSERT INTO SCL(sno,cno)
select sno,cno
from student,course

SQL Server 连接查询和子查询
SQL Server 连接查询和子查询
UPDATE 语句中的子查询

19.将选修了“前台页面设计”课程的学生成绩增加5分

UPDATE sc
set grade=grade+5
where cno=
(select cno from course
 where sc.cno=course.cno and cname='前台页面设计')

SQL Server 连接查询和子查询
删除语句中的子查询

20.删除选修了“前台页面设计”课程的选课信息

delete from sc
 where cno=
 (select cno from course
 where sc.cno=course.cno and cname='前台页面设计')

SQL Server 连接查询和子查询


总结

今天的学习内容就分享到这里啦,如果对友友们有帮助的话,记得点赞收藏博客,关注后续的SQL Server内容哦~👻👻👻SQL Server 连接查询和子查询文章来源地址https://www.toymoban.com/news/detail-411151.html

到了这里,关于SQL Server 连接查询和子查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL Server查询优化方法

    SQL Server查询优化方法(查询速度慢的原因很多,常见如下几种) 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采

    2024年01月21日
    浏览(52)
  • SQL Server 数据查询

    KC表数据: XS表数据: XS_KC表数据: (1)在KC表中查询学分低于三分的课程信息,并按课程号升序排列 (2)在XS_KC表中按学号分组汇总学生的平均分,并按平均分的降序排列 (3)在XS_KC表中查询至少选修了2门课程的学生学号和姓名 (4)查询成绩不及格的学生的基本信息 方法1 方法2(子

    2023年04月19日
    浏览(50)
  • SQL Server:分页查询

    ❓ 需求描述:客户端查询数据库数据并显示在表格中。在数据库中进行一次查询,查询结果有1050条记录,但表格单页可显示行上限: 100,这时需要给本次查询记录分配 ? 页用来显示? 可以通过固定公式进行计算(c伪代码): 上一页和下一页业务逻辑(c伪代码) 7.3 SQL Serv

    2024年02月06日
    浏览(39)
  • SQL Server的子查询

    子查询是嵌套在SELECT、INSERT、UPDATE、DELETE语句中或另一个子查询中的查询。 可以在允许表达式的任何位置使用子查询。 示例: 子查询也称为内部查询或内部选择,而包含子查询的语句也称为外部查询或外部选择。 许多包含子查询的 Transact-SQL 语句也可以表述为联接。其他问

    2023年04月13日
    浏览(36)
  • SQL server 查询语句大全

    在 SQL Server 中,查询语句是最常用的语句类型,用于从数据库中提取有用的信息。SQL Server 中常用的查询语句有 SELECT、FROM、WHERE、GROUP BY、HAVING 和 ORDER BY。 1. SELECT SELECT 语句用于从表中选取数据进行查询,语法如下: ```sql SELECT column1, column2, column3, ...   FROM table_name; ``` 在这个

    2024年02月13日
    浏览(49)
  • SQL Server查询历史执行记录

    1. 使用 SQL Server Management Studio (SSMS) 的查询执行记录功能: 打开 SSMS,连接到要查看执行记录的数据库服务器。 在“对象资源管理器”窗格中,右键单击要查看执行记录的数据库,然后选择“报表” “标准报表” “执行记录”。 在“执行记录”窗口中,选择要查看的时间范

    2024年02月17日
    浏览(40)
  • SQL SERVER专题实验4 复杂查询

    第1关:基本知识 任务描述 本关任务:根据复杂查询相关知识介绍,完成相关选择题。 知识要求 为了完成本关任务,你需要掌握: 基于多个表或视图的SELECT语法结构; 包括自然连接、普通连接、自身连接在内的各种连接查询使用场景及语法要点; 包括左外连接、右外连接

    2024年02月03日
    浏览(42)
  • SQL Server 单表数据查询

    提示: 本篇文章详细介绍怎样向SQLServer中导入表格数据,导入之后根据不同的查询条件完成查询任务. 导入成功之后,可以点开表格查看内容: (如下图即导入成功) 其他表同理可得,也可以同时导入 (1)方法一 (2)方法二 (1)方法一 (2)方法二 (1)方法一 (2)方法二 (1)方法一 (2)方法二

    2023年04月08日
    浏览(39)
  • SQL Server 跨库/服务器查询

    在同一服务器下的跨库查询较为简单,示例 进行跨服务器查询前提是在本地服务器上创建链接服务器。 1.2.1 创建链接服务器 方法一:利用系统存储过程 sp_addlinkedserver sp_addlinkedserver 创建链接服务器。 链接服务器提供对 OLE DB 数据源的分布式异类查询的访问权限。 使用 sp_a

    2024年02月09日
    浏览(41)
  • SQL Server查询计划(Query Plan)——XML查询计划

    ​​​​​​6.4.3.  XML 查询计划 SQL Server中,除了通过GUI工具和相关命令获取图形及文本查询计划外,我们还可以通过相关命令获取XML格式的查询计划,这里惯称其为XML查询计划。 SQL Server 2005版本引入了XML查询计划的新特性,其充分吸收了图形及文本查询计划的优势所在,通

    2024年02月22日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包