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

ps 制作网站网站建设工期安排表

ps 制作网站,网站建设工期安排表,网站建设模板怎么设计,wordpress大淘客采集关键词:Oracle高级SQL、JOIN查询、子查询、GROUP BY、聚合函数、ROW_NUMBER、LAG/LEAD、CASE WHEN、DECODE ✅ 摘要 在实际业务开发中,我们经常需要从多个表中提取数据、进行复杂计算和统计。Oracle 提供了强大的 SQL 功能支持这些操作,包括…

关键词:Oracle高级SQL、JOIN查询、子查询、GROUP BY、聚合函数、ROW_NUMBER、LAG/LEAD、CASE WHEN、DECODE


✅ 摘要

在实际业务开发中,我们经常需要从多个表中提取数据、进行复杂计算和统计。Oracle 提供了强大的 SQL 功能支持这些操作,包括:

  • 多表连接(INNER JOIN、LEFT JOIN 等)
  • 子查询(标量子查询、列子查询等)
  • 聚合函数与 GROUP BY 分组
  • 字符处理、日期处理函数
  • 条件表达式(CASE WHEN / DECODE)
  • 分析函数(ROW_NUMBER、RANK、LAG/LEAD)

本文将带你系统掌握 Oracle 中的 高级 SQL 查询技巧,并提供每个知识点的 完整示例代码,适合初学者学习提升,也适合中级开发者查漏补缺。


一、多表查询与连接

🔹 1. INNER JOIN(内连接)

内连接只返回两个表中匹配的记录。

示例:
SELECT e.employee_id, e.first_name, d.department_name
FROM employees e
INNER JOIN departments d ON e.department_id = d.department_id;

🔹 2. LEFT JOIN / RIGHT JOIN / FULL JOIN

类型描述
LEFT JOIN返回左表所有记录 + 右表匹配记录
RIGHT JOIN返回右表所有记录 + 左表匹配记录
FULL JOIN返回两表所有记录
示例:LEFT JOIN 查询所有员工及其部门名称(即使未分配部门)
SELECT e.employee_id, e.first_name, d.department_name
FROM employees e
LEFT JOIN departments d ON e.department_id = d.department_id;

🔹 3. CROSS JOIN(笛卡尔积)

不带条件的连接,结果为两个表行数的乘积。

示例:
SELECT e.first_name, j.job_title
FROM employees e
CROSS JOIN jobs j;

🔹 4. 自连接(Self Join)

一个表与自身连接,常用于树形结构数据(如员工与上级)。

示例:查询员工及其直接上级
SELECT e.first_name AS employee, m.first_name AS manager
FROM employees e
LEFT JOIN employees m ON e.manager_id = m.employee_id;

二、子查询与聚合

🔹 1. 子查询类型

类型示例说明
标量子查询(SELECT salary FROM employees WHERE employee_id = 100)返回单个值
列子查询WHERE department_id IN (SELECT department_id FROM departments WHERE location_id > 1000)返回一列
行子查询WHERE (first_name, last_name) = (SELECT first_name, last_name FROM employees WHERE employee_id = 100)返回一行
表子查询FROM (SELECT * FROM employees WHERE salary > 5000)返回一张临时表
示例:查找工资高于平均工资的员工
SELECT first_name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);

🔹 2. 聚合函数与 GROUP BY

常用聚合函数:

  • COUNT():计数
  • SUM():求和
  • AVG():平均值
  • MIN() / MAX():最小最大值
示例:按部门分组统计员工数量和平均工资
SELECT department_id, COUNT(*) AS employee_count, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id;
示例:HAVING 过滤分组结果
-- 查找员工数大于5的部门
SELECT department_id, COUNT(*) AS employee_count
FROM employees
GROUP BY department_id
HAVING COUNT(*) > 5;

三、高级函数与表达式

🔹 1. 字符函数(SUBSTR、INSTR)

函数说明
SUBSTR(str, start, length)截取字符串
INSTR(str, substr)查找子串位置
UPPER(), LOWER()大小写转换
TRIM()去除空格
示例:截取邮箱前5位字符
SELECT SUBSTR(email, 1, 5) AS short_email
FROM employees;

🔹 2. 日期函数(SYSDATE、TO_DATE)

函数说明
SYSDATE当前时间
TO_DATE()将字符串转为日期
ADD_MONTHS(date, n)加减月份
MONTHS_BETWEEN(date1, date2)两个日期之间的月份数
示例:查询入职时间超过6个月的员工
SELECT first_name, hire_date
FROM employees
WHERE hire_date < ADD_MONTHS(SYSDATE, -6);

🔹 3. 条件表达式(CASE WHEN、DECODE)

示例:使用 CASE WHEN 判断薪资等级
SELECT first_name, salary,CASEWHEN salary < 5000 THEN '低薪'WHEN salary BETWEEN 5000 AND 8000 THEN '中薪'ELSE '高薪'END AS salary_level
FROM employees;
示例:使用 DECODE 实现简单判断(仅限 Oracle)
SELECT job_id,DECODE(job_id,'IT_PROG', '程序员','SA_REP', '销售代表','HR', '人力资源','未知职位') AS job_desc
FROM employees;

🔹 4. 分析函数(ROW_NUMBER、RANK、LAG/LEAD)

分析函数是 Oracle 的一大亮点,适用于报表、排名、趋势分析等场景。

函数说明
ROW_NUMBER()排序后生成唯一序号
RANK()相同值并列,跳过后续排名
DENSE_RANK()相同值并列,不跳过后续排名
LAG(col, n)获取当前行之前第 n 行的 col 值
LEAD(col, n)获取当前行之后第 n 行的 col 值
示例:按工资排序,显示员工排名
SELECT first_name, salary,ROW_NUMBER() OVER (ORDER BY salary DESC) AS row_num,RANK() OVER (ORDER BY salary DESC) AS rank_num,DENSE_RANK() OVER (ORDER BY salary DESC) AS dense_rank_num
FROM employees;
示例:使用 LAG 显示上一位员工的工资
SELECT first_name, salary,LAG(salary, 1) OVER (ORDER BY salary DESC) AS prev_salary
FROM employees;

四、总结

通过本文的学习,你应该已经掌握了以下内容:

模块技能点
多表连接INNER JOIN、LEFT JOIN、自连接、CROSS JOIN
子查询标量、列、行、表子查询,结合 HAVING 使用
聚合函数SUM、AVG、COUNT,GROUP BY 与 HAVING
字符处理SUBSTR、INSTR、TRIM、UPPER、LOWER
日期函数SYSDATE、TO_DATE、ADD_MONTHS、MONTHS_BETWEEN
条件判断CASE WHEN、DECODE
分析函数ROW_NUMBER、RANK、LAG、LEAD

这些技能是你成为 Oracle 数据库高手的必备基础。建议你将文中示例复制到本地数据库环境中运行练习,加深理解。


📚 参考资料

  • Oracle 官方文档

  • 如果你在学习过程中遇到任何疑问,欢迎在评论区留言交流!
  • 👍 如果你觉得这篇文章对你有帮助,别忘了点赞、收藏、转发哦!

文章转载自:

http://BUnx63u4.djxnw.cn
http://RbPt63gu.djxnw.cn
http://r9LXA2sM.djxnw.cn
http://7x3GuOXH.djxnw.cn
http://iNRD4NSY.djxnw.cn
http://3WUYV3Zd.djxnw.cn
http://HzXLes5u.djxnw.cn
http://hwXTHUVo.djxnw.cn
http://hH8gNKHL.djxnw.cn
http://SWjqDMcw.djxnw.cn
http://kEJZTP9W.djxnw.cn
http://1HiRlOPU.djxnw.cn
http://dhQcihBD.djxnw.cn
http://jRzIgytV.djxnw.cn
http://RgC4OqgT.djxnw.cn
http://0B5fmwzo.djxnw.cn
http://nyjx3Zw3.djxnw.cn
http://yBRMjElf.djxnw.cn
http://qDvXzNza.djxnw.cn
http://uN5vmnRj.djxnw.cn
http://91U0jwkk.djxnw.cn
http://nniz1ujC.djxnw.cn
http://KwH1e437.djxnw.cn
http://RO2q3BGO.djxnw.cn
http://sKYhX4Ys.djxnw.cn
http://6ae2ba2J.djxnw.cn
http://0qDfVrVX.djxnw.cn
http://5CaMUlaR.djxnw.cn
http://QZqet1qP.djxnw.cn
http://yFRxFIcP.djxnw.cn
http://www.dtcms.com/wzjs/685636.html

相关文章:

  • 成都手机网站制作丹阳做公司网站的
  • 江镇做包子网站娱乐网站怎么制作
  • 南宁最高端网站建设网站访问流程设计
  • 修改网站首页排序谷歌搜索引擎怎么才能用
  • 进行企业网站建设规划wordpress 热门搜索
  • 常德市住房和城市建设局网站网站做留言板怎么清空源码
  • app软件网站开发网站建站公司有必要做吗
  • 企业网站建设与网页制作网站开发开发小游戏吗
  • 庄河做网站二手站网站怎做
  • 免费有限公司网站宁波seo网络推广
  • 网站制作 招聘太仓网站公司
  • pc蛋蛋网站开发做直播信号网站
  • 网页图片批量下载优化网站排名怎么制作
  • 有关图书网站建设策划书做网站v1认证是什么意思
  • 手机上网自动跳转网站建设摩托车价格大全
  • 网站建设与推广销售户话术网站设计模版免费下载
  • 外包公司做的网站wordpress文章修改失败
  • 网站收录查询代码哪里有建设网站中的视频下载
  • 优质校建设专题网站网站建设初稿
  • 大型的平台类网站建设需要多少资金上海公司排名前十
  • 做网站平台多少钱阳江网络问政平台下载
  • 网站建设毕业设计模板百度域名值多少钱
  • python flask做网站西充企业网站建设
  • 校友会网站建设医院网站建设
  • 绵阳网站托管wordpress 无法播放音乐
  • 电商网站建设概念龙岩app定制开发
  • 网站视频主持人制作电子商务网站建设过程
  • 搜索引擎排名网站网站报价怎么做
  • 成都装修网站制作多少钱wordpress页面改风格
  • 网站可访问性企业网站 价格