SQL Serve---嵌套查询

2024-04-19 10:52
文章标签 sql 查询 嵌套 database serve

本文主要是介绍SQL Serve---嵌套查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

定义

嵌套查询:主要用于复杂的查询中。在SQL语言中,一个Select From Where语句称为一个查询块,将一个查询块嵌套在另一个查询的Where子句或Having短语中的查询称为嵌套查询

子查询的类型
使用别名的子查询
使用INNOT IN的子查询
使用比较运算符的子查询
使用ANYALL修改的比较运算符
使用EXISTSNOT EXISTS的子查询

--列出tb_student表中和“陈凯”年龄相同的学生的学号和姓名

年龄:year(getdate())-year(birthday)

--列出tb_student表中和“陈凯”年龄相同的学生的学号和姓名select s1.sno,s1.sn from tb_student as s1where year(getdate())-year(birthday)=
(select  year(getdate())-year(birthday) 
from tb_student  as s2 
where s2.sn=‘陈凯’)

--在选修c02课程成绩大于该课平均成绩的学生学号,姓名,成绩

--在选修c02课程成绩大于该课平均成绩的学生学号(),姓名,成绩select s.sno,sn,s1.scorefrom tb_student s,
(select sno,score 
from tb_score
where cno='c02' and score>(select  avg(score)
from tb_score  where cno='c02'))as s1
where s.sno=s1.sno
in:返回值是一个以及一个以上的
--查询软件 3班同学所选所有课程的名称
select  cn from  tb_course
where cno IN(select cno  from tb_ score 
where  left(sno,10)=‘2015010103')
¯ 查询不选c02课程的学生的学号、姓名、系别
select sno,sn,dept from  tb_student
where sno NOT IN (select sno from tb_score  where cno=‘c02')

--查询考取最高分的学生的学号、课号、课名,成绩

  select sno,s.cno,cn,score from  tb_score s,tb_course cWhere  s.cno=c.cno and score =(select max(score) from tb_score)
-- 年龄高于平均年龄的所有学生的学号和姓名
select sno,sn 
from  tb_student
where year(getdate())-year(birthday) > (select avg(year(getdate())-year(birthday) )from tb_student)

注意:

>all(1,2,3) :表示大于3(表示大于最大值)

>any(1,2,3): 表示大于最小值

-- 查找某门课程成绩高于或等于任何一门课程最高成绩的学生学号
select distinct sno,cno,score
from tb_score
Where score >= any 
(select max(score)from    tb_score 
group by cno)
--在 tb_student 表中查询 tb_score 表中有成绩的学生学号和 姓名
select  sno,sn  from tb_student
where  sno = 
any(select  sno  from tb_score)
-- tb_score 表中 c01 c02两科成绩都大于60分的同学学号。
select  sno  
from  tb_score 
where  cno='c01'  and  score>60  and sno in    
(  select  sno from  tb_score where   cno='c02' and score>60 ) 

这篇关于SQL Serve---嵌套查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/917339

相关文章

MySQL更新某个字段拼接固定字符串的实现

《MySQL更新某个字段拼接固定字符串的实现》在MySQL中,我们经常需要对数据库中的某个字段进行更新操作,本文就来介绍一下MySQL更新某个字段拼接固定字符串的实现,感兴趣的可以了解一下... 目录1. 查看字段当前值2. 更新字段拼接固定字符串3. 验证更新结果mysql更新某个字段拼接固定字符串 -

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

Mybatis 传参与排序模糊查询功能实现

《Mybatis传参与排序模糊查询功能实现》:本文主要介绍Mybatis传参与排序模糊查询功能实现,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、#{ }和${ }传参的区别二、排序三、like查询四、数据库连接池五、mysql 开发企业规范一、#{ }和${ }传参的

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

基于SpringBoot+Mybatis实现Mysql分表

《基于SpringBoot+Mybatis实现Mysql分表》这篇文章主要为大家详细介绍了基于SpringBoot+Mybatis实现Mysql分表的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录基本思路定义注解创建ThreadLocal创建拦截器业务处理基本思路1.根据创建时间字段按年进

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要