SQL语法基础学习(二)

news/2025/2/7 13:52:29/文章来源:https://www.cnblogs.com/gercen/p/18580112

本章节笔记内容简要概括主要对查询这部分进行学习总结。其次聚集函数的使用连接、exists的子查询带有any all的子查询等查询重点的相关内容进行笔记总结。

本次查询所用到的参数内容如下所示:

一、查询所有&查询部分列:

*:该符号表示所有列
select:查询的关键字

查询格式:select <列名> from <表名>

select * from Student
上述代码等价于下面这句
select Sno,Sname,Ssex,Sage,Sdept from Student;

二、查询给列起别名,给表起别名也是一样的操作

代码格式:select <列名> <列别名> from <表名> <表别名>
例如:select username 姓名 from user;
再例如该图例子:

运行结果:

三、结果去重

加上distinct关键字即可实现
代码语句格式:select distinct <列名> <列名别名> from <表名> ;
观察如下参数:

我们对该重复的标题结果进行去重,
代码语句:select distinct title 课程名字 from edu_course;

四、查询结果加条件:

条件关键字:where
代码语句格式标准:select <列名> <列名别名> from <表名> where <列名> <谓词> <相关参数>
相关查询条件和谓词表如下:
![](https://img2024.cnblogs.com/blog/3531827/202412/3531827-20241201164418551-2082132542.png
例题如下(请自行创建参数更换谓词和参数执行使用看看):
select title 课程名字 from edu_course where price>=88;

五、聚集函数的使用

常用聚集函数如下:

查询格式:select <聚集函数> <列名> from <表名> ;
例如:
select count(*) from edu_course;
加上distinct可以去除列重复的来计算,例如:select count(distinct teacher_id) from edu_course;

六、分组查询
group by 分组,如果进行筛选,请使用Having
该部分使用到的参数:

例如:select teacher_id from edu_course group by teacher_id;
注意:使用时必须使用具体的列名参数才能使用分组查询。直接使用*会报错无法运行。

(2)条件过滤使用
注意:使用group by 不能使用where来接条件,需要使用having

select teacher_id from edu_course group by teacher_id having teacher_id=1;

六、连接

内容简要:等值,非等值连接,以where为关键词。
例如:select * from edu_course ec, edu_course_description ecd where ec.id=ecd.id;
会输出得到一个笛卡尔积的表

(2)自身连接
一个表与自身连接,为本身这个表七两个1别名,然后进行操作
例如:select * from edu_course ec1, edu_course ec2 where ec1.id=ec2.id;

(3)外连接
把被舍弃的值,也保留在结果中,但是要加null
左外连接例如:select * from edu_course ec left outer join edu_course_description scd on ec.id=ecd.id;

右外连接例如:
select * from edu_course ec right outer join edu_course_description scd on ec.id=ecd.id;

补充说明:左外连接列出左边关系(如本例Student)中所有的元组,右外连接列出右边关系中所有的元组。****

(4)多表查询
两个表以上的连接:该内容较为复杂建议参考教材上例题进行练习理解。

(5)嵌套查询:
例如:
select * from edu_course ec where teacher_id in (select teacher_id from edu_course where teacher_id=10 or teacher_id=0)

七、带有any all的子查询

参考下图

例如:
select * from edu_course ec where teacher_id price >any (select price from edu_course where price<10 );

八、带EXISTs的子查询(改内容比较绕,自行参考例题捋一捋思路)

关键字:
not exists 如果后面的子查询没有值,返回1 否则为1
exists 与上述描述相反

九、集合查询
并、交、差
重点三个关键词:union、intersect、except

例1:select * from Student where Sdept=‘CS’ union select * from Student where Sage<=19;
例2:select * from Student where Sdept=‘CS’ intersect select * from Student where Sage<=19;
例3:select * from Student where Sdept=‘CS’ except select * from Student where Sage<=19;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/846120.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

能源投资工程VS智能驾驶,DolphinScheduler如何当好传统行业与前沿科技的桥梁?

在数字化转型的浪潮中,Apache DolphinScheduler以其强大的调度能力,成为连接传统行业与前沿科技的桥梁。2024年12月17日14:00, Apache DolphinScheduler社区将举办一场线上用户交流活动,届时将邀请来自能源投资工程和智能驾驶领域的专家,分享DolphinScheduler在这两个截然…

JMeter参数化

1、新建取样器 根据自己的请求类型选择2、添加配置元件3、配置监听器4、参数化

手把手教你华为鸿蒙开发之第七节

华为鸿蒙开发:数组和对象遍历及UI渲染详解引言 在华为鸿蒙操作系统的开发中,数组和对象的遍历是基础且频繁的操作。无论是处理数据集合还是动态生成用户界面,都需要对数组和对象进行高效的遍历。本文将详细介绍如何在鸿蒙开发中使用 for 循环、for...of 循环以及 ForEach 方…

SQL基础语法学习(三)

本章节内容主要针对,表中数据的增、删、改,以及视图的概率,创建,修改、删除、查询做内容总结。 一、数据插入、修改、删除 数据插入的代码格式: insert into 表名 [(字段列表)] values(值列表...); 例如下案例所示: //标准添加(指定所有字段,给定所有的值) insert …

【文末赠票】和网易伏羲共探100个值得深入学习的技术创新案例

在人工智能技术的浪潮中,AI Agent正成为推动游戏行业创新的关键力量。随着 LLM 的不断发展,Agent 不管是在游戏设计、玩家体验,还是在 NPC 行为模拟等方面都展示了巨大的潜力。《永劫无间》手游近期发布的多模态实时交互的语音 AI 队友就是一次重大突破。传统机器人队友常常…

Nuxt.js 应用中的 error 事件钩子

title: Nuxt.js 应用中的 error 事件钩子 date: 2024/12/3 updated: 2024/12/3 author: cmdragon excerpt: 在任何 Web 应用中,错误是不可避免的。无论是网络请求失败、服务器错误、还是用户输入不合法,这些错误都可能影响用户体验和应用的稳定性。为了提升恢复能力和用户体…

VMware NSX 4.1.2.5 - 网络安全虚拟化平台

VMware NSX 4.1.2.5 - 网络安全虚拟化平台VMware NSX 4.1.2.5 - 网络安全虚拟化平台 构建具有网络连接和安全性的云智能网络,跨多种云环境支持一致的策略、运维和自动化 请访问原文链接:https://sysin.org/blog/vmware-nsx-4/ 查看最新版。原创作品,转载请保留出处。 作者主…

VMware Integrated OpenStack 7.3 现已支持 vSphere 8.0U3 和 NSX 4.2 互操作性

VMware Integrated OpenStack 7.3 现已支持 vSphere 8.0U3 和 NSX 4.2 互操作性VMware Integrated OpenStack 7.3 - VMware 支持的 OpenStack 发行版 VMware 支持的 OpenStack 发行版:在 VMware 虚拟化技术之上运行企业级 OpenStack 云 请访问原文链接:https://sysin.org/blo…

NVR接入录像回放平台EasyCVR视频汇聚平台关于安防摄像机常用的接口类型科普

在现代安防领域,摄像机镜头接口的选择对于确保图像质量和监控效果至关重要。不同的接口类型适应了多样化的应用场景,从精细的监控需求到专业的摄影摄像,每种接口都有其独特的优势和适用性。本文将详细介绍安防行业中常用的镜头接口类型,通过深入了解这些技术细节,我们旨在…

EHOME视频平台EasyCVR私有化部署视频平台级联时上级请求invite不回复的原因排查

在现代社会,安防监控系统的普及和应用已成为保障公共安全、维护社会秩序的重要手段。EasyCVR作为一款先进的安全监控视频系统,凭借其高效的视频传输技术和丰富的协议支持,能够满足大规模、高并发的远程监控需求。然而,在级联的使用场景中,用户可能会遇到诸如无法播放等问题…

ISSAC GYM解决RuntimeError: nvrtc: error: invalid value for --gpu-architecture (-arch)的问题

起因 一开始我什么都没干,就突然报了这么一个错误:我震惊了,因为我以为又是cuda沙雕了,没想到网上一查,真是如此 分析 一些网上博客的解决方法 都说其实是因为pytorch的版本问题,然后重新安装之类的blablabla 我也照做了,但是,却并没有解决问题:就在我非常狂躁之时,我…