Oracle SQL精妙操作:日期处理与聚合函数示例

需积分: 9 1 下载量 189 浏览量 更新于2024-09-26 收藏 30KB TXT 举报
"Oracle SQL精妙SQL语句讲解" 在Oracle数据库管理系统中,SQL(Structured Query Language)是用于管理和处理数据库的主要工具。本资料主要讲解了一些关于Oracle SQL的精妙用法,包括日期处理和聚合函数的运用,以及如何在多表操作中进行数据整合。 1. **日期处理** - `TRUNC` 函数:这个函数用于截取日期到指定的单位,如日、月或年。在示例中,`TRUNC(sysdate,'day')` 截取当前日期到日的开始时刻,而 `TRUNC(sysdate,'month')` 截取到月份的第一天。 - `LAST_DAY` 函数:这个函数返回给定日期所在月份的最后一天。例如,`last_day(trunc(sysdate,'day')+1)` 将得到当前月份下一天的最后一天,而 `last_day(trunc(sysdate,'day'))` 直接给出当前月份的最后一天。 - 通过这些函数,可以轻松地获取当月开始和结束的日期,这对于报告和分析非常有用。 2. **创建和插入数据** - `CREATE TABLE` 语句:用于创建新的数据库表。在示例中,创建了 `TABLE1` 和 `TABLE2`,每个表都有一个整数ID和一个长度为10的字符串名称或角色。 - `INSERT INTO` 语句:将数据插入到已存在的表中。这里展示了如何向 `TABLE1` 和 `TABLE2` 插入记录,并使用 `COMMIT` 提交事务,确保数据的持久化。 3. **多表操作与数据整合** - 在示例中,两个 `TABLE1` 和 `TABLE2` 的结构相同,但 `TABLE2` 中的同一ID可能有多个角色。这通常代表了一对多的关系,即一个用户ID可以对应多个角色。 - `WM_CONCAT` 函数:这是一个非标准的Oracle函数,用于将相同ID下的多个角色值合并成一个字符串,用逗号分隔。例如,`wmsys.wm_concat(ROLE)` 会把 `TABLE2` 中相同ID的所有角色组合起来。 4. **查询展示** - 最后,给出了一个查询示例,展示了如何选择 `TABLE1` 中的所有列,并使用 `WM_CONCAT` 函数合并 `TABLE2` 中对应ID的角色。这样的查询可以帮助我们以更紧凑的形式查看多表之间的关联数据。 这份资料主要介绍了Oracle SQL在处理日期、创建表、插入数据以及多表查询时的一些实用技巧,对于提升Oracle数据库操作的技能非常有帮助。在实际工作中,理解并掌握这些技巧可以提高数据处理的效率和准确性。