Oracle数据库管理技巧:解锁用户、数据转换与查询

5星 · 超过95%的资源 需积分: 5 2 下载量 121 浏览量 更新于2024-08-01 收藏 236KB DOC 举报
"这是一份Oracle学习笔记,涵盖了数据库管理、查询操作、数据转换和聚合函数等多个方面的内容。" 在Oracle数据库管理中,了解如何以DBA身份登录和执行管理任务至关重要。通过`sqlplus sys/oracle as sysdba`命令,你可以以系统管理员(SYSDBA)角色登录,这对于解锁用户、授权等操作是必要的。例如,要解锁`scott`用户,可以使用`ALTER USER scott ACCOUNT UNLOCK`命令。同时,为了赋予`scott`用户特定权限,如创建表、视图和会话,可以使用`GRANT`语句。 查询数据库中的信息是日常工作中常见的任务。描述表格结构使用`DESCRIBE tablename`命令,而模糊匹配查询则可以通过`LIKE`操作符完成,注意在特殊字符如`%`前使用转义字符`\`或修改转义字符。例如,`LIKE '%\%%'`将查找包含`%`的记录,而`LIKE '%$%%' ESCAPE '$'`则使用`$`作为转义字符。 数据类型转换在处理数值和日期时非常有用。`TO_CHAR`函数用于将数值或日期转换为字符串,如将薪水转换为本地货币格式或日期转换为特定格式。例如,`SELECT TO_CHAR(SAL, 'L00000.00000') FROM EMP`将显示带货币符号的薪水,而`SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DDHH:MI:SS') FROM DUAL`则将当前日期时间转换为指定格式。 字符串处理中,`SUBSTR`函数用于提取字符。例如,`SELECT SUBSTR(ENAME, 1, 3) FROM EMP`将返回每个员工名字的前三个字符。 日期比较是数据库查询的关键部分,`TO_DATE`函数用于将字符串转换为日期。例如,`WHERE HIREDATE > TO_DATE('1981-02-20 11:00:00', 'YYYY-MM-DDHH:MI:SS')`将筛选出1981年2月20日后入职的员工。 在处理可能为空的值时,`NVL`函数很有用。`SELECT ENAME, SAL * 12 + NVL(COMM, 0) FROM EMP`将计算年薪并用0替换缺失的津贴。 精度控制通常涉及到数值的四舍五入,`ROUND`函数可实现这一目标。例如,`SELECT ROUND(SAL, 2) FROM EMP`将确保薪水显示两位小数。 最后,`HAVING`和`GROUP BY`子句在聚合查询中起到关键作用。`GROUP BY`用于分组,`HAVING`则在分组后对结果进行条件过滤。在示例中,`SELECT AVG(SAL) FROM EMP GROUP BY DEPTNO`将计算每个部门的平均薪水,而`HAVING`子句可以进一步限制这些结果。 通过这些基础操作,你可以有效地管理和查询Oracle数据库,为日常的数据库管理工作和数据分析提供支持。这份笔记提供了很好的起点,但Oracle数据库管理系统有更广泛的特性和功能,深入学习和实践是掌握其精髓的关键。