目录前言1.查询所有学生的学号、姓名、选修课程号和成绩2.查询选修了课程名称为“数据库原理与应用”的学生的学号和姓名3.使用别名实现查询所有学生的学号、姓名、
提示: 利用单表简单查询和多表高级查询技能,并且根据查询要求灵活使用内连接查询、外连接查询或子查询等。同时还利用内连接查询的两种格式、三种外连接查询语法格式和子查询的语法格式。
内连接查询(不同表之间查询)
方法一
USE XSCJ
Go
SELECT student.sno,sname,cno,grade from student,sc
where student.sno=sc.sno
方法二
USE XSCJ
GO
SELECT student.sno,sname,cno,grade
from student join sc on student.sno=sc.sno
方法一
USE XSCJ
select student.sno,sname from student,sc,course
where student.sno=sc.sno and sc.cno=course.cno and cname='数据库原理与应用'
方法二
select student.sno,sname from student join sc
on student.sno=sc.sno join course on sc.cno=course.cno
where cname='数据库原理与应用'
select x.sno,sname,cno,grade
from student x,sc y
where x.sno=y.sno
自身连接查询
select A.sname,A.ssex,A.sage
from student A,student B
where B.sname='张文宝' and A.sage>B.sage
使用第二种格式实现内连接查询(JOIN ON)
SELECT student.sno,sname,cno,grade
from student join sc
on student.sno=sc.sno
外连接(左外连接)
SELECT student.sno,sname,cno,grade
from student left outer join sc
on student.sno=sc.sno
右外连接
select sc.sno,sname,cno,grade
from sc right outer join student
on student.sno=sc.sno
select sc.sno,course.cno,cname,credit
from sc right outer join course
on course.cno=sc.cno
全外连接
select *
from sc full outer join student
on student.sno=sc.sno
UNION联合查询
select sdept from student where sage='19'
union
select sdept from student where sage='20'
select sdept from student where sage='19'
union all
select sdept from student where sage='20'
使用IN或NOT IN 的子查询
select sno,sname
from student
where sno in
(select sno from sc)
改为连接查询实现
select distinct student.sno,sname
from student join sc
on student.sno=sc.sno
使用比较运算符的子查询
select sno,sname,sage
from student
where sage>
(select AVG(sage) from student)
使用ANY或ALL的子查询
select sname,sage
from student
where sage>any
(select sage from student where sdept='CS')
AND sdept!='CS'
select * from student
使用EXISTS的子查询
select *
from course
where exists
(select * from sc where course.cno=sc.cno)
select *
from course
where not exists
(select * from sc where course.cno=sc.cno)
查看course表
抽取数据到另一个表
select *
into temp
from student
where sdept='CS'
select * from temp
INSERT语句中的子查询
INSERT INTO SCL(sno,cno)
select sno,cno
from student,course
UPDATE 语句中的子查询
UPDATE sc
set grade=grade+5
where cno=
(select cno from course
where sc.cno=course.cno and cname='前台页面设计')
删除语句中的子查询
delete from sc
where cno=
(select cno from course
where sc.cno=course.cno and cname='前台页面设计')
到此这篇关于sql Server数据库连接查询和子查询的文章就介绍到这了,更多相关SQLServer连接查询和子查询内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: SQL Server数据库连接查询和子查询实战案例
本文链接: https://www.lsjlt.com/news/210015.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0