Oracle命令大全

文章目录

      • [1. SQL*Plus命令(用于连接与管理Oracle数据库)](#1. SQL*Plus命令(用于连接与管理Oracle数据库))
      • [2. SQL数据定义语言(DDL)命令](#2. SQL数据定义语言(DDL)命令)
      • [3. SQL数据操作语言(DML)命令](#3. SQL数据操作语言(DML)命令)
      • [4. PL/SQL程序块](#4. PL/SQL程序块)
      • [5. 系统用户管理](#5. 系统用户管理)
      • [6. 数据备份与恢复相关命令](#6. 数据备份与恢复相关命令)
      • [1. SQL*Plus命令(用于连接与管理Oracle数据库)](#1. SQL*Plus命令(用于连接与管理Oracle数据库))
      • [2. SQL数据定义语言(DDL)命令](#2. SQL数据定义语言(DDL)命令)
      • [3. SQL数据操作语言(DML)命令](#3. SQL数据操作语言(DML)命令)
      • [4. PL/SQL程序块](#4. PL/SQL程序块)
      • [5. 系统用户管理](#5. 系统用户管理)
      • [6. 数据备份与恢复相关命令](#6. 数据备份与恢复相关命令)
      • [7. 索引管理](#7. 索引管理)
      • [8. 视图操作](#8. 视图操作)
      • [9. 同义词管理](#9. 同义词管理)
      • [10. 定义序列和触发器](#10. 定义序列和触发器)
      • [11. 数据库连接监控](#11. 数据库连接监控)
      • [12. 审计和权限管理](#12. 审计和权限管理)
      • [13. 数据备份与恢复](#13. 数据备份与恢复)
      • [14. 数据一致性检查和修复](#14. 数据一致性检查和修复)
      • [15. 数据迁移和同步](#15. 数据迁移和同步)

Oracle数据库的命令主要分为SQL*Plus命令、SQL命令和PL/SQL语句,以及一些操作系统级别的启动与关闭命令。以下是按功能分类的部分Oracle常用命令及其示例:

1. SQL*Plus命令(用于连接与管理Oracle数据库)

  • 登录

    • 登录本地数据库:

      sql 复制代码
      sqlplus / as sysdba
    • 登录远程数据库:

      sql 复制代码
      sqlplus username/password@hostname:port/service_name
      示例:
      sqlplus scott/tiger@192.168.1.10:1521/orcl
  • 退出SQL*Plus

    sql 复制代码
    exit
  • 设置行格式和标题

    sql 复制代码
    set linesize 200;
    set pagesize 30;
    set heading on/off; -- 控制列标题显示与否

2. SQL数据定义语言(DDL)命令

  • 创建表

    sql 复制代码
    CREATE TABLE employees (
        employee_id NUMBER(6) PRIMARY KEY,
        first_name VARCHAR2(20),
        last_name VARCHAR2(25),
        hire_date DATE
    );
  • 删除表

    sql 复制代码
    DROP TABLE employees CASCADE CONSTRAINTS;
  • 修改表结构

    sql 复制代码
    ALTER TABLE employees ADD salary NUMBER(8,2);

3. SQL数据操作语言(DML)命令

  • 插入数据

    sql 复制代码
    INSERT INTO employees (employee_id, first_name, last_name, hire_date)
    VALUES (100, 'John', 'Doe', TO_DATE('2000-01-01', 'YYYY-MM-DD'));
  • 查询数据

    sql 复制代码
    SELECT * FROM employees;
  • 更新数据

    sql 复制代码
    UPDATE employees SET salary = 5000 WHERE employee_id = 100;
  • 删除数据

    sql 复制代码
    DELETE FROM employees WHERE employee_id = 100;

4. PL/SQL程序块

  • 声明变量并使用循环

    sql 复制代码
    DECLARE
        v_employee_id employees.employee_id%TYPE;
    BEGIN
        FOR emp_rec IN (SELECT employee_id FROM employees) LOOP
            v_employee_id := emp_rec.employee_id;
            -- 进行其他操作...
        END LOOP;
    END;

5. 系统用户管理

  • 创建用户

    sql 复制代码
    CREATE USER db_user IDENTIFIED BY password;
  • 授权给用户

    sql 复制代码
    GRANT CONNECT, RESOURCE TO db_user;
  • 撤销权限

    sql 复制代码
    REVOKE DELETE ON employees FROM db_user;

6. 数据备份与恢复相关命令

  • 导出数据

    shell 复制代码
    expdp username/password directory=DATA_PUMP_DIR dumpfile=mydump.dmp logfile=expdp_mydump.log schemas=myschema
  • 导入数据

    shell 复制代码
    impdp username/password directory=DATA_PUMP_DIR dumpfile=mydump.dmp logfile=impdp_mydump.log remap_schema=old_schema:new_schema

Oracle数据库的命令主要分为SQL*Plus命令、SQL命令和PL/SQL语句,以及一些操作系统级别的启动与关闭命令。以下是按功能分类的部分Oracle常用命令及其示例:

1. SQL*Plus命令(用于连接与管理Oracle数据库)

  • 登录

    • 登录本地数据库:

      sql 复制代码
      sqlplus / as sysdba
    • 登录远程数据库:

      sql 复制代码
      sqlplus username/password@hostname:port/service_name
      示例:
      sqlplus scott/tiger@192.168.1.10:1521/orcl
  • 退出SQL*Plus

    sql 复制代码
    exit
  • 设置行格式和标题

    sql 复制代码
    set linesize 200;
    set pagesize 30;
    set heading on/off; -- 控制列标题显示与否

2. SQL数据定义语言(DDL)命令

  • 创建表

    sql 复制代码
    CREATE TABLE employees (
        employee_id NUMBER(6) PRIMARY KEY,
        first_name VARCHAR2(20),
        last_name VARCHAR2(25),
        hire_date DATE
    );
  • 删除表

    sql 复制代码
    DROP TABLE employees CASCADE CONSTRAINTS;
  • 修改表结构

    sql 复制代码
    ALTER TABLE employees ADD salary NUMBER(8,2);

3. SQL数据操作语言(DML)命令

  • 插入数据

    sql 复制代码
    INSERT INTO employees (employee_id, first_name, last_name, hire_date)
    VALUES (100, 'John', 'Doe', TO_DATE('2000-01-01', 'YYYY-MM-DD'));
  • 查询数据

    sql 复制代码
    SELECT * FROM employees;
  • 更新数据

    sql 复制代码
    UPDATE employees SET salary = 5000 WHERE employee_id = 100;
  • 删除数据

    sql 复制代码
    DELETE FROM employees WHERE employee_id = 100;

4. PL/SQL程序块

  • 声明变量并使用循环

    sql 复制代码
    DECLARE
        v_employee_id employees.employee_id%TYPE;
    BEGIN
        FOR emp_rec IN (SELECT employee_id FROM employees) LOOP
            v_employee_id := emp_rec.employee_id;
            -- 进行其他操作...
        END LOOP;
    END;

5. 系统用户管理

  • 创建用户

    sql 复制代码
    CREATE USER db_user IDENTIFIED BY password;
  • 授权给用户

    sql 复制代码
    GRANT CONNECT, RESOURCE TO db_user;
  • 撤销权限

    sql 复制代码
    REVOKE DELETE ON employees FROM db_user;

6. 数据备份与恢复相关命令

  • 导出数据

    shell 复制代码
    expdp username/password directory=DATA_PUMP_DIR dumpfile=mydump.dmp logfile=expdp_mydump.log schemas=myschema
  • 导入数据

    shell 复制代码
    impdp username/password directory=DATA_PUMP_DIR dumpfile=mydump.dmp logfile=impdp_mydump.log remap_schema=old_schema:new_schema

7. 索引管理

  • 创建索引

    sql 复制代码
    CREATE INDEX emp_idx ON employees (last_name);
  • 删除索引

    sql 复制代码
    DROP INDEX emp_idx;
  • 查看索引信息

    sql 复制代码
    SELECT * FROM user_indexes WHERE table_name = 'EMPLOYEES';

8. 视图操作

  • 创建视图

    sql 复制代码
    CREATE VIEW emp_view AS SELECT first_name, last_name FROM employees;
  • 查询视图

    sql 复制代码
    SELECT * FROM emp_view;
  • 更新视图(如果视图支持更新)

    sql 复制代码
    UPDATE emp_view SET last_name = 'NewName' WHERE first_name = 'John';
  • 删除视图

    sql 复制代码
    DROP VIEW emp_view;

9. 同义词管理

  • 创建同义词

    sql 复制代码
    CREATE SYNONYM emp_syn FOR hr.employees;
  • 通过同义词查询数据

    sql 复制代码
    SELECT * FROM emp_syn;
  • 删除同义词

    sql 复制代码
    DROP SYNONYM emp_syn;

10. 定义序列和触发器

  • 创建序列

    sql 复制代码
    CREATE SEQUENCE emp_sequence START WITH 1 INCREMENT BY 1;
  • 使用序列生成值

    sql 复制代码
    INSERT INTO employees (employee_id, first_name) VALUES (emp_sequence.NEXTVAL, 'Jane');
  • 创建触发器

    sql 复制代码
    CREATE OR REPLACE TRIGGER emp_bir 
    BEFORE INSERT ON employees 
    FOR EACH ROW 
    BEGIN 
        :new.employee_id := emp_sequence.nextval; 
    END;

11. 数据库连接监控

  • 查看当前会话信息

    sql 复制代码
    SELECT sid, serial#, status, username, osuser FROM v$session;
  • 终止指定会话

    sql 复制代码
    ALTER SYSTEM KILL SESSION 'sid,serial#';

12. 审计和权限管理

  • 授予用户权限

    sql 复制代码
    GRANT SELECT, INSERT, UPDATE ON employees TO user1;
  • 撤销用户权限

    sql 复制代码
    REVOKE UPDATE ON employees FROM user1;
  • 为用户创建角色并分配权限

    sql 复制代码
    CREATE ROLE hr_admin;
    GRANT SELECT, INSERT, UPDATE, DELETE ON employees TO hr_admin;
    GRANT hr_admin TO user1;
  • 数据库审计

    sql 复制代码
    AUDIT SELECT ON employees BY ACCESS;
    -- 或者针对特定用户进行审计
    AUDIT ALL ON employees BY user1 BY SESSION;
    
    -- 查看审计策略
    SELECT * FROM dba_auditing_options;
    SELECT * FROM dba_audit_trail;

13. 数据备份与恢复

  • 逻辑备份(导出)

    使用expdpexp工具进行数据泵导出,例如:

    bash 复制代码
    expdp system/password directory=DATA_PUMP_DIR dumpfile=emp.dmp logfile=expdp_emp.log schemas=hr
  • 逻辑恢复(导入)

    使用impdpimp工具进行数据泵导入,例如:

    bash 复制代码
    impdp system/password directory=DATA_PUMP_DIR dumpfile=emp.dmp logfile=impdp_emp.log remap_schema=old_hr:new_hr
  • 物理备份

    执行RMAN(Recovery Manager)命令进行全库备份或增量备份。

14. 数据一致性检查和修复

  • 执行一致性检查

    sql 复制代码
    ALTER TABLE employees ENABLE CONSTRAINTS;
  • 使用DBMS_REPAIR包

    在Oracle中,可以使用DBMS_REPAIR包进行表的完整性检查和修复。这通常用于处理较为严重的问题,如数据块损坏等情况。

15. 数据迁移和同步

  • 跨数据库的数据迁移

    可以通过数据泵、GoldenGate等工具实现不同数据库间的结构和数据迁移。

  • 实时数据同步

    Oracle GoldenGate或其他第三方工具可用于实现Oracle数据库之间的实时数据同步。

请注意,在实际操作时,请根据Oracle官方文档和最佳实践调整相应的命令和策略,并确保在对生产环境做任何重大变更之前,制定详尽的计划和备份方案。

python推荐学习汇总连接:
50个开发必备的Python经典脚本(1-10)

50个开发必备的Python经典脚本(11-20)

50个开发必备的Python经典脚本(21-30)

50个开发必备的Python经典脚本(31-40)

50个开发必备的Python经典脚本(41-50)


​最后我们放松一下眼睛

相关推荐
IvorySQL18 小时前
PostgreSQL 技术日报 (3月6日)|为什么 Ctrl-C 在 psql 里让人不安?
数据库·postgresql·开源
NineData19 小时前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
IvorySQL1 天前
PostgreSQL 技术日报 (3月5日)|规划器控制力升级,内核能力再进阶
数据库·postgresql·开源
数据组小组2 天前
免费数据库管理工具深度横评:NineData 社区版、Bytebase 社区版、Archery,2026 年开发者该选哪个?
数据库·测试·数据库管理工具·数据复制·迁移工具·ninedata社区版·naivicat平替
悟空聊架构2 天前
基于KaiwuDB在游乐场“刷卡+投币”双模消费系统中的落地实践
数据库·后端·架构
IvorySQL2 天前
PostgreSQL 技术日报 (3月4日)|硬核干货 + 内核暗流一网打尽
数据库·postgresql·开源
进击的丸子2 天前
虹软人脸服务器版SDK(Linux/ARM Pro)多线程调用及性能优化
linux·数据库·后端
NineData3 天前
NineData智能数据管理平台新功能发布|2026年1-2月
数据库·sql·数据分析
IvorySQL3 天前
双星闪耀温哥华:IvorySQL 社区两项议题入选 PGConf.dev 2026
数据库·postgresql·开源