当前位置: 首页 > news >正文

【数据工程】8. SQL 入门教程

SQL 入门教程

基本查询:SELECT

SELECT * FROM Students;

取出所有行和列。


条件过滤:WHERE

SELECT name, age FROM Students WHERE age > 18;

先过滤,再返回结果。


排序:ORDER BY

SELECT name, age FROM Students ORDER BY age DESC;

按照年龄从大到小排序。


分组:GROUP BY

SELECT class, COUNT(*) FROM Students GROUP BY class;

统计每个班级人数。


聚合函数

SELECT MAX(age) FROM Students;   -- 最大值
SELECT MIN(age) FROM Students;   -- 最小值
SELECT AVG(age) FROM Students;   -- 平均值
SELECT SUM(age) FROM Students;   -- 总和
SELECT COUNT(*) FROM Students;   -- 行数

示例:

SELECT station, obsdate, sensor, obsvalue, site, stnownerFROM Stations NATURAL JOIN MeasurementsWHERE Stations.site = 'Murray River at Swan Hill'ORDER BY obsdate, sensor;

HAVING 分组过滤

SELECT uosCode, COUNT(*) FROM EnrolmentsGROUP BY uosCode
HAVING COUNT(*) >= 2;
  • WHERE:作用在分组之前,逐行过滤
  • HAVING:作用在分组之后,整组过滤

外连接:OUTER JOIN

三种外连接

  1. LEFT OUTER JOIN:保留左表所有数据,右表不足填 NULL
  2. RIGHT OUTER JOIN:保留右表所有数据,左表不足填 NULL
  3. FULL OUTER JOIN:保留两边所有数据,不足的填 NULL

示例:

SELECT name AS "language"FROM language LEFT OUTER JOIN Film USING (language_id)GROUP BY name
HAVING COUNT(film_id) = 0ORDER BY name;

找到没有被任何电影使用的语言。


总结对照

WHERE vs HAVING

  • WHERE:在分组之前过滤单行数据
  • HAVING:在分组之后过滤整组数据

INNER JOIN vs OUTER JOIN

  • INNER JOIN:只返回两表匹配上的行
  • LEFT OUTER JOIN:保留左表全部,右表不足填 NULL
  • RIGHT OUTER JOIN:保留右表全部,左表不足填 NULL
  • FULL OUTER JOIN:保留两表全部,不足部分填 NULL

文章转载自:

http://jNIRQdnd.kcypc.cn
http://UyE1fISs.kcypc.cn
http://IulFBj1R.kcypc.cn
http://Z68H87sa.kcypc.cn
http://vVIFsQPu.kcypc.cn
http://stQbgksK.kcypc.cn
http://SnzsJQeJ.kcypc.cn
http://u5dvsnBK.kcypc.cn
http://BDzU26Xc.kcypc.cn
http://s71LL9so.kcypc.cn
http://j2JavIUy.kcypc.cn
http://Ql0IvcGC.kcypc.cn
http://EqtiXQpj.kcypc.cn
http://475kG4SG.kcypc.cn
http://vNhM9LtA.kcypc.cn
http://ayT4RoMJ.kcypc.cn
http://HSZPji4t.kcypc.cn
http://i1KlxBEG.kcypc.cn
http://GAkggTo1.kcypc.cn
http://U6rS5hrG.kcypc.cn
http://EysX9uUO.kcypc.cn
http://l9Ccwh4i.kcypc.cn
http://P6RKoYzj.kcypc.cn
http://Mklvf27h.kcypc.cn
http://MX8Xa59M.kcypc.cn
http://txBf1U0X.kcypc.cn
http://TUacfXEQ.kcypc.cn
http://bPuoFo41.kcypc.cn
http://VV9H0QTV.kcypc.cn
http://onCEkdZp.kcypc.cn
http://www.dtcms.com/a/386199.html

相关文章:

  • C++---前向声明
  • 在Qt项目中使用QtConcurrent::run,实现异步等待和同步调用
  • 经验分享只靠口头传递会带来哪些问题
  • Linux底层-内核数据接口:/proc
  • PEFT+DeepSpeed 1 (微调 分布式 显存优化)
  • Spring Boot 下 Druid 连接池:多维度优化打造卓越性能
  • 提升学术研究能力:从开题构思难题到AI辅助提纲生成
  • spring-kafka的消息拦截器RecordInterceptor
  • VSCode + Python 开发踩坑:虚拟环境不在项目根目录导致包无法识别该怎么办
  • 【MCP】【FastMCP】[特殊字符] 使用 UV 创建 FastMCP 服务完整示例
  • 蓝绿部署(Blue-Green Deployment)介绍(一种用于降低软件发布风险的部署策略)流量切换(金丝雀发布)
  • 羽毛球地板:从专业运动场景到全民健身市场的技术跃迁与产业重构
  • 【实战】预警算法--噪声添加机制
  • Three.js 中如何给 3D 模型添加文字标签?
  • 贪心算法应用:NFV功能部署问题详解
  • 第八章:Jmeter 非GUl命令详解
  • 知识点17:多Agent系统架构设计模式
  • 作为学术工作者,利用沁言学术提升效率:集成化与一站式体验
  • Linux网络设备驱动—netlink
  • C# 导出 Excel 时并行处理数据:10 万条数据分批次并行转换,导出时间缩短 60%
  • 设计模式(java实现)----原型模式
  • VBA 将多个相同格式EXCEL中内容汇总到一个EXCEL文件中去
  • Android系统基础:底层状态监听UEvent之UEventObserver源码分析
  • windows 平台下 ffmpeg 硬件编解码环境查看
  • 构建基石:Transformer架构
  • Chapter7—建造者模式
  • 到底什么是智能网联汽车??第二期——决策与控制
  • 将普通Wpf项目改成Prism项目
  • 微硕WINSOK高性能N沟道场效应管WSD3040DN56,助力汽车中控散热风扇静音长寿命
  • nextjs+shadcn+tailwindcss实现博客中的overview