菜鸟科技网

Oracle常用命令有哪些?

Oracle数据库作为企业级关系型数据库管理系统,其强大的功能离不开命令行的灵活操作,通过命令行(SQL*Plus或SQLcl)执行Oracle命令,是数据库管理员和开发人员日常工作中不可或缺的技能,以下将详细介绍Oracle常用命令的使用方法及场景,帮助用户高效管理数据库。

Oracle常用命令有哪些?-图1
(图片来源网络,侵删)

连接数据库是所有操作的前提,使用sqlplus /nolog命令可以无登录启动SQLPlus,随后通过conn 用户名/密码@服务名 as 角色名连接到目标数据库。conn scott/tiger@orcl as sysdba以管理员身份连接,若需断开连接,执行disconnectexit命令即可,连接成功后,可通过show user查看当前登录用户,`select from v$instance`确认数据库实例状态。

数据操作是Oracle命令的核心部分,DML(数据操纵语言)命令包括INSERTUPDATEDELETESELECTINSERT INTO emp (empno, ename) VALUES (7369, 'SMITH')插入新数据,UPDATE emp SET sal = sal * 1.1 WHERE deptno = 10更新部门10员工薪资,DELETE FROM emp WHERE empno = 7499删除指定员工记录,查询数据时,SELECT * FROM emp WHERE sal > 2000 ORDER BY hiredate DESC可筛选高薪员工并按入职时间降序排列,为提高查询效率,常需创建索引,如CREATE INDEX idx_emp_ename ON emp(ename),后续可通过DROP INDEX idx_emp_ename删除。

数据库对象管理同样依赖命令行,创建表空间是存储数据的基础,CREATE TABLESPACE users_data DATAFILE 'users01.dbf' SIZE 100M AUTOEXTEND ON定义一个自动扩展的表空间,随后可创建表,CREATE TABLE dept (deptno NUMBER(2), dname VARCHAR2(14)) TABLESPACE users_data将表存储在指定表空间中,管理表结构时,ALTER TABLE emp ADD (job VARCHAR2(9))添加列,ALTER TABLE emp MODIFY (sal NUMBER(7,2))修改列定义,DROP TABLE emp则直接删除整表,视图的创建与使用可简化复杂查询,CREATE VIEW v_emp_sal AS SELECT ename, sal FROM emp创建员工薪资视图,查询时直接使用SELECT * FROM v_emp_sal

权限与角色管理保障数据库安全。 granting权限使用GRANT CONNECT, RESOURCE TO scott赋予用户连接和资源权限,GRANT SELECT ON emp TO hr允许hr部门查询员工表,撤销权限则通过REVOKE SELECT ON emp FROM hr实现,角色管理方面,CREATE ROLE manager_role创建角色,GRANT manager_role TO scott将角色授予用户,DROP ROLE manager_role删除角色。

Oracle常用命令有哪些?-图2
(图片来源网络,侵删)

性能监控与维护命令对优化数据库至关重要,查看当前会话信息可执行SELECT sid, serial#, username, status FROM v$session,分析等待事件使用SELECT event, total_waits, time_waited FROM v$session_event WHERE sid = 123,生成执行计划通过EXPLAIN PLAN FOR SELECT * FROM emp WHERE ename = 'CLARK',再查询SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY())查看详细计划,备份恢复方面,expdp scott/tiger DIRECTORY=dpump_dir DUMPFILE=exp.dmp使用数据泵导出数据,impdp scott/tiger DIRECTORY=dpump_dir DUMPFILE=exp.dmp导入数据。

以下为常用Oracle命令速查表:

命令分类 命令示例 功能说明
连接与断开 conn scott/tiger@orcl 连接数据库
数据查询 SELECT * FROM emp WHERE deptno = 20; 查询指定部门员工
数据插入 INSERT INTO emp VALUES (7369, 'SMITH', 'CLERK', 7902, SYSDATE, 800, NULL, 20); 插入新员工记录
数据更新 UPDATE emp SET sal = 1000 WHERE ename = 'SMITH'; 更新员工薪资
删除数据 DELETE FROM emp WHERE empno = 7369; 删除指定员工记录
创建表 CREATE TABLE test (id NUMBER, name VARCHAR2(50)); 创建新表
创建索引 CREATE INDEX idx_emp_ename ON emp(ename); 为员工姓名创建索引
授权 GRANT SELECT ON emp TO public; 授予所有用户查询员工表的权限
查看执行计划 EXPLAIN PLAN FOR SELECT * FROM emp WHERE sal > 2000; 生成查询执行计划

相关问答FAQs

Q1: 如何在Oracle命令行中查看当前数据库的版本信息?
A1: 执行以下命令可查看数据库版本:
SELECT * FROM v$version;
该命令会返回Oracle数据库的详细版本号,如“Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production”。SELECT banner FROM v$version WHERE rownum = 1;可快速获取主版本信息。

Oracle常用命令有哪些?-图3
(图片来源网络,侵删)

Q2: 如何通过命令行备份单个表?
A2: 使用数据泵(Data Pump)工具可高效备份单个表,备份scott用户下的emp表:
expdp scott/tiger DIRECTORY=dpump_dir DUMPFILE=emp_table.dmp TABLES=emp
DIRECTORY参数需预先创建(如CREATE DIRECTORY dpump_dir AS '/u01/dump'),TABLES指定要备份的表名,恢复时使用impdp命令导入即可。

分享:
扫描分享到社交APP
上一篇
下一篇