(一)查询数据
Oracle 的查询功能非常强大,可以满足各种复杂的查询需求。
基本查询:可以使用简单的 SELECT 语句查询表中的数据。例如,SELECT * FROM employees; 可以查询 employees 表中的所有数据。还可以指定特定的列进行查询,如 SELECT employee_id, first_name FROM employees;。可以使用别名来重命名列名,方便阅读和理解查询结果,例如 SELECT employee_id AS id, first_name AS fname FROM employees;。使用 DISTINCT 关键字可以去除重复值,如 SELECT DISTINCT department_id FROM employees;。
带条件查询:可以使用 WHERE 子句来添加查询条件。例如,查询工资大于 5000 的员工信息,可以使用 SELECT * FROM employees WHERE salary > 5000;。条件判断运算符包括 =、<、>、<=、>=、!= 等。还可以使用条件连接符 AND、OR、NOT 来组合多个条件。例如,查询工资大于 5000 且部门为销售部的员工信息,可以使用 SELECT * FROM employees WHERE salary > 5000 AND department = ‘销售部’;。区间判断可以使用 BETWEEN…AND 操作符,例如查询工资在 4000 到 6000 之间的员工信息,可以使用 SELECT * FROM employees WHERE salary BETWEEN 4000 AND 6000;。还可以使用 IN 操作符来查询列值在指定列表中的数据,例如查询部门为销售部、市场部、研发部的员工信息,可以使用 SELECT * FROM employees WHERE department IN (‘销售部’, ‘市场部’, ‘研发部’);。模糊查询可以使用 LIKE 关键字,通配符 % 表示零个或多个任意字符,_ 表示一个任意字符。例如,查询姓王且名字长度为两个字的员工信息,可以使用 SELECT * FROM employees WHERE first_name LIKE ‘王_’;。
排序与分组查询:可以使用 ORDER BY 子句对查询结果进行排序。默认是升序排序,可以使用 ASC 关键字明确指定升序,使用 DESC 关键字指定降序。例如,查询员工信息并按照工资降序排序,可以使用 SELECT * FROM employees ORDER BY salary DESC;。分组查询可以使用 GROUP BY 子句,把具有相同值的多条记录当成一组进行处理。例如,查询每个部门的员工人数,可以使用 SELECT department_id, COUNT() FROM employees GROUP BY department_id;。在分组查询中,可以使用 HAVING 子句进行进一步的过滤,例如查询员工人数大于 10 的部门信息,可以使用 SELECT department_id, COUNT() FROM employees GROUP BY department_id HAVING COUNT(*) > 10;。
(二)备份与恢复
Oracle 数据库的备份与恢复是确保数据安全的重要手段。使用 RMAN(Recovery Manager)可以方便地进行数据库备份与恢复。
备份数据库:
全备份:使用 BACKUP DATABASE; 命令可以对整个数据库进行完全备份。默认情况下,数据库处在 “非归档模式” 下,可能会出现错误,需要先将数据库修改为 “归档模式”。可以通过以管理员身份连接数据库,执行一系列命令来实现,如 shutdown immediate;(关闭数据库)、startup mount;(启动数据库到 “装载” 状态)、alter database archivelog;(修改数据库为 “归档模式”)、alter database open;(打开数据库)。然后再执行全备份命令。
增量备份:使用 BACKUP INCREMENTAL LEVEL 1 DATABASE; 命令可以进行增量备份,只备份自上次备份以来更改的数据块。
备份归档日志:使用 BACKUP ARCHIVELOG ALL; 命令可以备份所有的归档日志文件。
备份压缩:可以选择在备份命令里显示指定压缩选项,如 BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;(仅对 1,5 文件压缩备份)、BACKUP AS COMPRESSED BACKUPSET DATAFILE 1,5;。也可以配置 RMAN 指定压缩选项,如 CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;(备份压缩到指定路径)、backup as Compressed backupset database format 'd:\oracle\backup\%U.dbf’plus archivelog for。
恢复数据库:
恢复整个数据库:在需要恢复数据库时,可以使用以下步骤。首先关闭数据库 SHUTDOWN IMMEDIATE;,然后启动数据库到装载模式 STARTUP MOUNT;,接着进行恢复操作 RESTORE DATABASE; 和 RECOVER DATABASE;,最后打开数据库 ALTER DATABASE OPEN;。
恢复特定数据文件:如果只需要恢复某个特定的数据文件,可以使用以下命令。先关闭数据库 SHUTDOWN IMMEDIATE;,然后启动到装载模式 STARTUP MOUNT;,分配通道 ALLOCATE CHANNEL c1 DEVICE TYPE DISK;,恢复特定数据文件 RESTORE DATAFILE ‘/path/to/datafile’;,恢复数据文件 RECOVER DATAFILE ‘/path/to/datafile’;,最后打开数据库 ALTER DATABASE OPEN;。
恢复表空间:如果只需要恢复某个特定的表空间,可以使用类似的步骤。先关闭数据库,启动到装载模式,分配通道,然后恢复表空间 RESTORE TABLESPACE tablespace_name;,恢复表空间 RECOVER TABLESPACE tablespace_name;,最后打开数据库。
恢复时点恢复(PITR):将数据库恢复到某个特定的时间点。先关闭数据库,启动到装载模式,分配通道,设置恢复时间点 SET UNTIL TIME “TO_DATE(‘2023-10-01 12:00:00’, ‘YYYY-MM-DD HH24:MI:SS’)”;,恢复数据库 RESTORE DATABASE;,恢复数据库 RECOVER DATABASE;,最后打开数据库并重置日志 ALTER DATABASE OPEN RESETLOGS;。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_56693899/article/details/143579451
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1324次阅读
2025-03-13 11:40:53
【专家观点】罗敏:从理论到真实SQL,感受DeepSeek如何做性能优化
墨天轮编辑部
1308次阅读
2025-03-06 16:45:38
2025年2月国产数据库大事记
墨天轮编辑部
1023次阅读
2025-03-05 12:27:34
2025年2月国产数据库中标情况一览:GoldenDB 3500+万!达梦近千万!
通讯员
905次阅读
2025-03-06 11:40:20
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
794次阅读
2025-03-17 11:33:53
Oracle+Deepseek+Dify 实现数据库数据实时分析
bicewow
725次阅读
2025-03-06 09:41:49
Oracle避坑指南|同名表导出难题:如何精准排除指定用户下的表?
szrsu
558次阅读
2025-03-05 00:42:34
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
466次阅读
2025-03-13 14:38:19
AI的优化能力,取决于你问问题的能力!
潇湘秦
439次阅读
2025-03-11 11:18:22
Oracle 如何修改 db_unique_name?强迫症福音!
Lucifer三思而后行
358次阅读
2025-03-12 21:27:56