SQL Server数据库连接查询和子查询实战案例

2023-05-15 0 493

目录前言1.查询所有学生的学号、姓名、选修课程号和成绩2.查询选修了课程名称为“数据库原理与应用”的学生的学号和姓名3.使用别名实现查询所有学生的学号、姓名、选修课程号和成绩4.查询所有年龄比张文宝大的学生的姓名、性别和年龄5.用格式二实现查询所有学生的学号、姓名、选修课程号和成绩6.查询所有学生的学号、姓名及对应选课的信息,如果该学生没有选课,也需要显示该生的学号和姓名7.查询选课学生的基本信息(若实际上有外键约束,这种情况是不存在的)8.采用右外连接查询学生的学号、选修的课程号、课程名及学分,同时也列出无学生选修的课程信息9.student和sc表实现全外连接10.从student表中查询年龄为‘19’和‘20’的学生的系部,不包括重复行11.从student表中查询年龄为‘19’和‘20’的学生的系部,包括重复行12.查询所有选修课程的学生的学号和姓名13.查询年龄高于平均年龄的学生的学号、姓名和年龄14.查询比CS系的任一学生年龄都大的学生姓名和年龄15.查询已有学生选修的课程信息16.查询尚没有学生选修的课程信息17.查询CS系学生的信息,生成一个新表temp18.将所有的学号和课程号信息生成一个新表SCL19.将选修了“前台页面设计”课程的学生成绩增加5分20.删除选修了“前台页面设计”课程的选课信息总结

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

前言

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

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

方法一

USE XSCJGOSELECT student.sno,sname,cno,grade from student,scwhere student.sno=sc.sno

SQL Server数据库连接查询和子查询实战案例

方法二

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

SQL Server数据库连接查询和子查询实战案例

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

方法一

USE XSCJselect student.sno,sname from student,sc,coursewhere 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.cnowhere cname=\’数据库原理与应用\’

SQL Server数据库连接查询和子查询实战案例

3.使用别名实现查询所有学生的学号、姓名、选修课程号和成绩select x.sno,sname,cno,gradefrom student x,sc ywhere x.sno=y.sno

SQL Server数据库连接查询和子查询实战案例

自身连接查询

4.查询所有年龄比张文宝大的学生的姓名、性别和年龄select A.sname,A.ssex,A.sagefrom student A,student Bwhere B.sname=\’张文宝\’ and A.sage>B.sage

SQL Server数据库连接查询和子查询实战案例

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

5.用格式二实现查询所有学生的学号、姓名、选修课程号和成绩SELECT student.sno,sname,cno,gradefrom student join scon student.sno=sc.sno

SQL Server数据库连接查询和子查询实战案例

外连接(左外连接)

6.查询所有学生的学号、姓名及对应选课的信息,如果该学生没有选课,也需要显示该生的学号和姓名SELECT student.sno,sname,cno,gradefrom student left outer join scon student.sno=sc.sno

SQL Server数据库连接查询和子查询实战案例

右外连接

7.查询选课学生的基本信息(若实际上有外键约束,这种情况是不存在的)select sc.sno,sname,cno,gradefrom sc right outer join studenton student.sno=sc.sno

SQL Server数据库连接查询和子查询实战案例

8.采用右外连接查询学生的学号、选修的课程号、课程名及学分,同时也列出无学生选修的课程信息select sc.sno,course.cno,cname,creditfrom sc right outer join courseon 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\’unionselect sdept from student where sage=\’20\’

SQL Server数据库连接查询和子查询实战案例

11.从student表中查询年龄为‘19’和‘20’的学生的系部,包括重复行select sdept from student where sage=\’19\’union allselect sdept from student where sage=\’20\’

SQL Server数据库连接查询和子查询实战案例

使用IN或NOT IN 的子查询

12.查询所有选修课程的学生的学号和姓名select sno,snamefrom studentwhere sno in(select sno from sc)

SQL Server数据库连接查询和子查询实战案例

改为连接查询实现

select distinct student.sno,snamefrom student join scon student.sno=sc.sno

SQL Server数据库连接查询和子查询实战案例

使用比较运算符的子查询

13.查询年龄高于平均年龄的学生的学号、姓名和年龄select sno,sname,sagefrom student where sage>(select AVG(sage) from student)

SQL Server数据库连接查询和子查询实战案例

使用ANY或ALL的子查询

14.查询比CS系的任一学生年龄都大的学生姓名和年龄select sname,sagefrom studentwhere sage>any(select sage from student where sdept=\’CS\’)AND sdept!=\’CS\’select * from student

SQL Server数据库连接查询和子查询实战案例

使用EXISTS的子查询

15.查询已有学生选修的课程信息select *from coursewhere exists(select * from sc where course.cno=sc.cno)

SQL Server数据库连接查询和子查询实战案例

16.查询尚没有学生选修的课程信息select *from coursewhere not exists(select * from sc where course.cno=sc.cno)

SQL Server数据库连接查询和子查询实战案例

查看course表

SQL Server数据库连接查询和子查询实战案例

抽取数据到另一个表

17.查询CS系学生的信息,生成一个新表tempselect *into tempfrom student where sdept=\’CS\’select * from temp

SQL Server数据库连接查询和子查询实战案例

INSERT语句中的子查询

18.将所有的学号和课程号信息生成一个新表SCLINSERT INTO SCL(sno,cno)select sno,cnofrom student,course

SQL Server数据库连接查询和子查询实战案例

SQL Server数据库连接查询和子查询实战案例

UPDATE 语句中的子查询

19.将选修了“前台页面设计”课程的学生成绩增加5分UPDATE scset grade=grade+5where 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数据库连接查询和子查询实战案例

总结

到此这篇关于SQLServer数据库连接查询和子查询的文章就介绍到这了,更多相关SQLServer连接查询和子查询内容请搜索悠久资源以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源!

您可能感兴趣的文章:SQL Server中的连接查询详解SQL Server 2012 多表连接查询功能实例代码SQLServer使用CROSSAPPLY与OUTERAPPLY实现连接查询SQL Server连接查询的实用教程使用SQL Server数据库嵌套子查询的方法在SQLServer中使用子查询更新语句SQL Server2019数据库之简单子查询的具有方法SQL Server子查询的深入理解

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Mssql数据库 SQL Server数据库连接查询和子查询实战案例 https://www.u-9.cn/sql/mssql/21170.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

  • 0 +

    访问总数

  • 0 +

    会员总数

  • 0 +

    文章总数

  • 0 +

    今日发布

  • 0 +

    本周发布

  • 0 +

    运行天数

注册会员,众多资源免费下载