学生表:create table student
(
id number(8) primary key,
name varchar2(10),deptment number(8)
)
选课表:create table select_course
(
ID NUMBER(8) primary key,
STUDENT_ID NUMBER(8) foreign key (COURSE_ID) references course(ID),
COURSE_ID NUMBER(8) foreign key (STUDENT_ID) references student(ID)
)
课程表:create table COURSE
(
ID NUMBER(8) not null,
C_NAME VARCHAR2(20),
C_NO VARCHAR2(10)
)
student表的数据:
ID NAME DEPTMENT_ID
---------- --------------- -----------
1 echo 1000
2 spring 2000
3 smith 1000
4 liter 2000
course表的数据:
ID C_NAME C_NO
---------- -------------------- --------
1 数据库 data1
2 数学 month1
3 英语 english1
select_course表的数据:
ID STUDENT_ID COURSE_ID
---------- ---------- ----------
1 1 1
2 1 2
3 1 3
4 2 1
5 2 2
6 3 2
1.查询选修了所有课程的学生id、name:(即这一个学生没有一门课程他没有选的。)
分析:如果有一门课没有选,则此时(1)select * from select_course sc where sc.student_id=ts.id
and sc.course_id=c.id存在null,
这说明(2)select * from course c 的查询结果中确实有记录不存在(1查询中),查询结果返回没有选的课程,
此时select * from t_student ts 后的not exists 判断结果为false,不执行查询。
SQL> select * from t_student ts where not exists
(select * from course c where not exists
(select * from select_course sc where sc.student_id=ts.id and sc.course_id=c.id));
ID NAME DEPTMENT_ID
---------- --------------- -----------
1 echo 1000
2.查询没有选择所有课程的学生,即没有全选的学生。(存在这样的一个学生,他至少有一门课没有选),
分析:只要有一个门没有选,即select * from select_course sc where student_id=t_student.id and course_id
=course.id 有一条为空,即not exists null 为true,此时select * from course有查询结果(id为子查询中的course.id ),
因此select id,name from t_student 将执行查询(id为子查询中t_student.id )。
SQL> select id,name from t_student where exists
(select * from course where not exists
(select * from select_course sc where student_id=t_student.id and course_id=course.id));
ID NAME
---------- ---------------
2 spring
3 smith
4 liter
3.查询一门课也没有选的学生。(不存这样的一个学生,他至少选修一门课程),
分析:如果他选修了一门select * from course结果集不为空,not exists 判断结果为false;
select id,name from t_student 不执行查询。
SQL> select id,name from t_student where not exists
(select * from course where exists
(select * from select_course sc where student_id=t_student.id and course_id=course.id));
ID NAME
---------- ---------------
4 liter
4.查询至少选修了一门课程的学生。
SQL> select id,name from t_student where exists
(select * from course where exists
(select * from select_course sc where student_id=t_student.id and course_id=course.id));
ID NAME
---------- ---------------
1 echo
2 spring
3 smith
相关推荐:
SEO对策:提升网站排名与流量的必备策略,SEO入门相机平价学生
用AI修改文章,提升写作效率与质量的新时代
ChatGPT无服务:如何突破限制,未来人工智能的新可能,ai绘制装饰画
用AI生成文章,让创作更简单高效
ChatGPT5.0为什么一直没出来?背后的技术与战略,元宵节ai趣赏月
SEO技术如何通过优化提升网站流量与排名,四平网站优化公司
“洗稿技巧如何让你的文章脱颖而出,轻松提升内容创作水平!”,台州椒江seo企业排名
SEO汇报:如何通过数据分析提升网站排名,助力企业业绩增长,免费推广网站大全百度经验
《SEO教材:打造网站流量的核心利器,教你轻松SEO优化技巧》,咖啡网站建设总结文案
AI免费生成文章让创作变得轻松自如
SEO希望:如何通过SEO优化实现网站突破,迈向成功之路,品牌网站推广软件
什么是蜘蛛弛?揭秘这个SEO优化背后的神秘工具,南沙seo优化排名价格
优化页面-提升用户体验与搜索引擎排名的关键,绍兴视频营销推广
SEM有哪几个平台?数字营销的多元选择,AI怎么取消移动间距
AI助手Stut:智能时代的创新引擎,开启未来工作新篇章,ai对ai的格斗游戏
ChatGPT国内版:为中国用户量身定制的智能助手,开启AI新纪元,ai文章赚钱
SEO非常:如何利用SEO提升网站排名与流量,助力品牌快速成长,绥化短视频营销推广
AI智能工具的无限可能:未来已来,你准备好了吗?
seo网站页面优化包括什么,seo页面优化技术 ,no ai写作
SEO观察:2025年搜索引擎优化的新趋势与机遇,seo2是什么状态
SEO赚钱:如何通过SEO技能在网络上实现财富自由,网站怎么建设推广平台
二次创作的魅力与潜力:创意无限的数字时代,天长外贸网站建设
seo用到什么软件,做seo需要用到什么软件 ,皮皮ai
ChatGPT回答问题,网页无法线下滚动?解决方案轻松get!,谷歌AI铃声
文章AI扩写:突破创作瓶颈,提升写作效率的秘密武器
SEO策划:让你的网站迅速脱颖而出的秘诀,seo优化和技巧
AI免费免登录:轻松体验人工智能的魔力,无需繁琐注册,华为AI音箱2音质如何
SEO排序:如何让你的网页在搜索引擎中脱颖而出,平谷抖音seo推广招聘
SEO指:如何通过精准优化提高网站流量和转化率,无锡论坛营销推广要多久
SEO优化流程:助力网站快速提升排名的关键策略,1745ai
亚马逊seo是什么公司的,“亚马逊” ,ai玩底特律
好用的AI写作软件,让创作更高效
SEO挣钱之道:如何通过SEO实现网络盈利,宁晋网站建设商家
seo黑帽是什么,列举几种seo黑帽行为 ,穿老款的ai丢人吗
撰写稿子的AI,写作的“超级助手”来了!
ChatGPT崩溃!用户反馈网页端无法访问,修复急需,ai院子
seo适合什么职业,seo有前途么 ,ai小精灵
亚马逊seo信息是什么,亚马逊seo关键词优化软件 ,光谷ai
SEO自行:提升网站流量的秘密武器,邹平县个人网站建设建议
OpenAIGPTChatSoraOpenAIChatGPT服务在中断数小时后已恢复,ai视图线稿
SEM+SEO:助力企业数字化营销的双剑合璧之道,ai头像丑
ChatGPT已识别但不可用?揭秘背后原因与解决方案!,小狸ai和斑马ai语文
OpenAI您的信用卡被拒绝了?请尝试用借记卡支付,轻松解决支付问题!,ai cdr缩略图补丁
怎么看文章是不是AI生成的?揭秘背后的玄机与技巧
AI撰写工具的无限可能,让内容创作更高效、更精彩!
什么是seo行业,seo是什么职业做什么的 ,ai标题字体效果
ChapGPT免费爬墙,轻松访问全球互联网资源!,蜜桃ai插画
Chatget免费网站版无需登录,畅享无限对话体验!,工业 Ai 视觉检测
seo要学什么技术,seo要学什么技术好 ,ai.fale
GPT版本全解:从基础到高级,如何选择最适合你的方案?,韩国ai人工智能