文章目录
-
-
- [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数据库)
-
登录
-
登录本地数据库:
sqlsqlplus / as sysdba
-
登录远程数据库:
sqlsqlplus username/password@hostname:port/service_name 示例: sqlplus scott/tiger@192.168.1.10:1521/orcl
-
-
退出SQL*Plus
sqlexit
-
设置行格式和标题
sqlset linesize 200; set pagesize 30; set heading on/off; -- 控制列标题显示与否
2. SQL数据定义语言(DDL)命令
-
创建表
sqlCREATE TABLE employees ( employee_id NUMBER(6) PRIMARY KEY, first_name VARCHAR2(20), last_name VARCHAR2(25), hire_date DATE );
-
删除表
sqlDROP TABLE employees CASCADE CONSTRAINTS;
-
修改表结构
sqlALTER TABLE employees ADD salary NUMBER(8,2);
3. SQL数据操作语言(DML)命令
-
插入数据
sqlINSERT INTO employees (employee_id, first_name, last_name, hire_date) VALUES (100, 'John', 'Doe', TO_DATE('2000-01-01', 'YYYY-MM-DD'));
-
查询数据
sqlSELECT * FROM employees;
-
更新数据
sqlUPDATE employees SET salary = 5000 WHERE employee_id = 100;
-
删除数据
sqlDELETE FROM employees WHERE employee_id = 100;
4. PL/SQL程序块
-
声明变量并使用循环
sqlDECLARE 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. 系统用户管理
-
创建用户
sqlCREATE USER db_user IDENTIFIED BY password;
-
授权给用户
sqlGRANT CONNECT, RESOURCE TO db_user;
-
撤销权限
sqlREVOKE DELETE ON employees FROM db_user;
6. 数据备份与恢复相关命令
-
导出数据
shellexpdp username/password directory=DATA_PUMP_DIR dumpfile=mydump.dmp logfile=expdp_mydump.log schemas=myschema
-
导入数据
shellimpdp 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数据库)
-
登录
-
登录本地数据库:
sqlsqlplus / as sysdba
-
登录远程数据库:
sqlsqlplus username/password@hostname:port/service_name 示例: sqlplus scott/tiger@192.168.1.10:1521/orcl
-
-
退出SQL*Plus
sqlexit
-
设置行格式和标题
sqlset linesize 200; set pagesize 30; set heading on/off; -- 控制列标题显示与否
2. SQL数据定义语言(DDL)命令
-
创建表
sqlCREATE TABLE employees ( employee_id NUMBER(6) PRIMARY KEY, first_name VARCHAR2(20), last_name VARCHAR2(25), hire_date DATE );
-
删除表
sqlDROP TABLE employees CASCADE CONSTRAINTS;
-
修改表结构
sqlALTER TABLE employees ADD salary NUMBER(8,2);
3. SQL数据操作语言(DML)命令
-
插入数据
sqlINSERT INTO employees (employee_id, first_name, last_name, hire_date) VALUES (100, 'John', 'Doe', TO_DATE('2000-01-01', 'YYYY-MM-DD'));
-
查询数据
sqlSELECT * FROM employees;
-
更新数据
sqlUPDATE employees SET salary = 5000 WHERE employee_id = 100;
-
删除数据
sqlDELETE FROM employees WHERE employee_id = 100;
4. PL/SQL程序块
-
声明变量并使用循环
sqlDECLARE 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. 系统用户管理
-
创建用户
sqlCREATE USER db_user IDENTIFIED BY password;
-
授权给用户
sqlGRANT CONNECT, RESOURCE TO db_user;
-
撤销权限
sqlREVOKE DELETE ON employees FROM db_user;
6. 数据备份与恢复相关命令
-
导出数据
shellexpdp username/password directory=DATA_PUMP_DIR dumpfile=mydump.dmp logfile=expdp_mydump.log schemas=myschema
-
导入数据
shellimpdp username/password directory=DATA_PUMP_DIR dumpfile=mydump.dmp logfile=impdp_mydump.log remap_schema=old_schema:new_schema
7. 索引管理
-
创建索引
sqlCREATE INDEX emp_idx ON employees (last_name);
-
删除索引
sqlDROP INDEX emp_idx;
-
查看索引信息
sqlSELECT * FROM user_indexes WHERE table_name = 'EMPLOYEES';
8. 视图操作
-
创建视图
sqlCREATE VIEW emp_view AS SELECT first_name, last_name FROM employees;
-
查询视图
sqlSELECT * FROM emp_view;
-
更新视图(如果视图支持更新)
sqlUPDATE emp_view SET last_name = 'NewName' WHERE first_name = 'John';
-
删除视图
sqlDROP VIEW emp_view;
9. 同义词管理
-
创建同义词
sqlCREATE SYNONYM emp_syn FOR hr.employees;
-
通过同义词查询数据
sqlSELECT * FROM emp_syn;
-
删除同义词
sqlDROP SYNONYM emp_syn;
10. 定义序列和触发器
-
创建序列
sqlCREATE SEQUENCE emp_sequence START WITH 1 INCREMENT BY 1;
-
使用序列生成值
sqlINSERT INTO employees (employee_id, first_name) VALUES (emp_sequence.NEXTVAL, 'Jane');
-
创建触发器
sqlCREATE OR REPLACE TRIGGER emp_bir BEFORE INSERT ON employees FOR EACH ROW BEGIN :new.employee_id := emp_sequence.nextval; END;
11. 数据库连接监控
-
查看当前会话信息
sqlSELECT sid, serial#, status, username, osuser FROM v$session;
-
终止指定会话
sqlALTER SYSTEM KILL SESSION 'sid,serial#';
12. 审计和权限管理
-
授予用户权限
sqlGRANT SELECT, INSERT, UPDATE ON employees TO user1;
-
撤销用户权限
sqlREVOKE UPDATE ON employees FROM user1;
-
为用户创建角色并分配权限
sqlCREATE ROLE hr_admin; GRANT SELECT, INSERT, UPDATE, DELETE ON employees TO hr_admin; GRANT hr_admin TO user1;
-
数据库审计
sqlAUDIT SELECT ON employees BY ACCESS; -- 或者针对特定用户进行审计 AUDIT ALL ON employees BY user1 BY SESSION; -- 查看审计策略 SELECT * FROM dba_auditing_options; SELECT * FROM dba_audit_trail;
13. 数据备份与恢复
-
逻辑备份(导出)
使用
expdp
或exp
工具进行数据泵导出,例如:bashexpdp system/password directory=DATA_PUMP_DIR dumpfile=emp.dmp logfile=expdp_emp.log schemas=hr
-
逻辑恢复(导入)
使用
impdp
或imp
工具进行数据泵导入,例如:bashimpdp system/password directory=DATA_PUMP_DIR dumpfile=emp.dmp logfile=impdp_emp.log remap_schema=old_hr:new_hr
-
物理备份
执行RMAN(Recovery Manager)命令进行全库备份或增量备份。
14. 数据一致性检查和修复
-
执行一致性检查
sqlALTER TABLE employees ENABLE CONSTRAINTS;
-
使用DBMS_REPAIR包
在Oracle中,可以使用DBMS_REPAIR包进行表的完整性检查和修复。这通常用于处理较为严重的问题,如数据块损坏等情况。
15. 数据迁移和同步
-
跨数据库的数据迁移
可以通过数据泵、GoldenGate等工具实现不同数据库间的结构和数据迁移。
-
实时数据同步
Oracle GoldenGate或其他第三方工具可用于实现Oracle数据库之间的实时数据同步。
请注意,在实际操作时,请根据Oracle官方文档和最佳实践调整相应的命令和策略,并确保在对生产环境做任何重大变更之前,制定详尽的计划和备份方案。
python推荐学习汇总连接:
50个开发必备的Python经典脚本(1-10)
最后我们放松一下眼睛