Oracle 数据库的常用指令
以下是 Oracle 数据库的常用指令,涵盖连接管理、模式对象操作、数据查询与管理、用户权限及备份恢复等方面。
·
以下是 Oracle 数据库的常用指令,涵盖连接管理、模式对象操作、数据查询与管理、用户权限及备份恢复等方面。
1. 连接与会话管理
sql
-- 连接到 Oracle 数据库
sqlplus username/password@hostname:port/SID
-- 以 SYSDBA 身份连接
sqlplus / AS SYSDBA
-- 查看当前会话信息
SHOW USER; -- 显示当前用户
SELECT * FROM V$SESSION; -- 查看会话详情
-- 断开连接
EXIT;
2. 表空间管理
sql
-- 创建表空间
CREATE TABLESPACE tablespace_name
DATAFILE '/path/to/datafile.dbf' SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE 2G;
-- 删除表空间
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;
-- 查看表空间信息
SELECT * FROM DBA_TABLESPACES;
3. 模式对象操作
sql
-- 创建表
CREATE TABLE employees (
emp_id NUMBER PRIMARY KEY,
emp_name VARCHAR2(50),
hire_date DATE,
salary NUMBER(10,2)
);
-- 创建序列
CREATE SEQUENCE emp_seq START WITH 1 INCREMENT BY 1;
-- 创建视图
CREATE VIEW emp_view AS
SELECT emp_id, emp_name, salary
FROM employees
WHERE salary > 5000;
-- 创建索引
CREATE INDEX idx_emp_name ON employees (emp_name);
-- 查看对象
SELECT * FROM ALL_TABLES WHERE OWNER = 'your_username';
4. 数据操作
sql
-- 插入数据
INSERT INTO employees (emp_id, emp_name, hire_date, salary)
VALUES (emp_seq.NEXTVAL, 'John Doe', SYSDATE, 6000);
-- 查询数据
SELECT * FROM employees;
SELECT emp_name, salary FROM employees WHERE salary > 5000;
-- 更新数据
UPDATE employees SET salary = salary * 1.1 WHERE department = 'IT';
-- 删除数据
DELETE FROM employees WHERE emp_id = 1001;
5. 高级查询
sql
-- 排序与分页(ROWNUM)
SELECT * FROM employees
WHERE ROWNUM <= 10
ORDER BY salary DESC;
-- 聚合函数
SELECT COUNT(*), AVG(salary), MAX(salary) FROM employees;
-- 分组查询
SELECT department, AVG(salary) FROM employees GROUP BY department;
-- 连接查询
SELECT e.emp_name, d.dept_name
FROM employees e
JOIN departments d ON e.dept_id = d.dept_id;
6. 用户与权限管理
sql
-- 创建用户
CREATE USER new_user IDENTIFIED BY password
DEFAULT TABLESPACE users
QUOTA 100M ON users;
-- 授予权限
GRANT CREATE SESSION, CREATE TABLE TO new_user;
GRANT SELECT, INSERT ON employees TO new_user;
-- 授予角色
GRANT CONNECT, RESOURCE TO new_user;
-- 撤销权限
REVOKE INSERT ON employees FROM new_user;
-- 删除用户
DROP USER new_user CASCADE;
7. 备份与恢复
bash
-- 使用 RMAN 备份(命令行)
rman target /
BACKUP DATABASE;
-- 使用 EXPDP 导出数据(命令行)
expdp username/password directory=DATA_PUMP_DIR dumpfile=expdp.dmp tables=employees;
-- 使用 IMPDP 导入数据(命令行)
impdp username/password directory=DATA_PUMP_DIR dumpfile=expdp.dmp;
8. 系统视图与监控
sql
-- 查看数据库参数
SHOW PARAMETERS;
SELECT * FROM V$PARAMETER;
-- 查看表空间使用情况
SELECT tablespace_name, SUM(bytes)/1024/1024 AS MB_USED
FROM dba_data_files
GROUP BY tablespace_name;
-- 查看会话与锁
SELECT * FROM V$SESSION WHERE username IS NOT NULL;
SELECT * FROM V$LOCK;
9. PL/SQL 基础
plsql
-- 匿名块
DECLARE
v_salary NUMBER(10,2);
BEGIN
SELECT salary INTO v_salary FROM employees WHERE emp_id = 1001;
DBMS_OUTPUT.PUT_LINE('Salary: ' || v_salary);
END;
/
-- 创建存储过程
CREATE OR REPLACE PROCEDURE increase_salary(p_emp_id NUMBER, p_percent NUMBER)
IS
BEGIN
UPDATE employees SET salary = salary * (1 + p_percent/100)
WHERE emp_id = p_emp_id;
COMMIT;
END;
/
10. 其他常用命令
sql
-- 提交/回滚事务
COMMIT;
ROLLBACK;
-- 查看约束
SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'EMPLOYEES';
-- 查看表结构
DESCRIBE employees;

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)