菜鸟科技网

Oracle基本命令有哪些核心操作?

连接与断开

这是使用 Oracle 数据库的第一步。

Oracle基本命令有哪些核心操作?-图1
(图片来源网络,侵删)
命令 描述 示例
conn[ect] 连接到数据库。 conn scott/tiger@orcl
conn / as sysdba (以管理员身份登录)
passw[ord] 修改当前用户的密码。 password scott
disc[onnect] 断开与当前数据库的连接。 disconnect
exit / quit 退出 SQL*Plus 会话。 exit

数据操作语言

这是最核心的命令,用于操作表中的数据。

命令 描述 示例
SELECT 从表中查询数据。 SELECT * FROM emp;
SELECT ename, sal FROM emp WHERE deptno = 10;
INSERT 向表中插入新数据。 INSERT INTO emp (empno, ename, sal) VALUES (7900, 'SMITH', 1000);
UPDATE 更新表中的现有数据。 UPDATE emp SET sal = 1500 WHERE ename = 'SMITH';
DELETE 从表中删除数据。 DELETE FROM emp WHERE ename = 'SMITH';
COMMIT 提交当前事务,使更改永久生效。 COMMIT;
ROLLBACK 回滚当前事务,撤销未提交的更改。 ROLLBACK;

数据定义语言

用于定义和管理数据库结构,如创建、修改、删除表等。

命令 描述 示例
CREATE 创建数据库对象,如表、索引、视图等。 CREATE TABLE my_table (id NUMBER, name VARCHAR2(50));
ALTER 修改现有数据库对象的结构。 ALTER TABLE my_table ADD (email VARCHAR2(100));
ALTER TABLE my_table MODIFY (name VARCHAR2(100));
DROP 删除数据库对象。 DROP TABLE my_table;
TRUNCATE 快速清空表中的所有数据,但保留表结构。此操作不可回滚 TRUNCATE TABLE my_table;
RENAME 重命名一个表。 RENAME my_table TO new_table;

事务控制

确保数据的一致性和完整性。

命令 描述 示例
COMMIT 提交当前事务。 COMMIT;
ROLLBACK 回滚当前事务到上一个 COMMITSAVEPOINT 点。 ROLLBACK;
SAVEPOINT 在当前事务中设置一个保存点。 INSERT ...;
SAVEPOINT my_save;
INSERT ...;
ROLLBACK TO my_save; (回滚到第二个插入之前)
SET TRANSACTION 设置事务的属性,如只读模式。 SET TRANSACTION READ ONLY;

数据查询语言进阶

更强大的查询功能。

Oracle基本命令有哪些核心操作?-图2
(图片来源网络,侵删)
命令/子句 描述 示例
DISTINCT 消除查询结果中的重复行。 SELECT DISTINCT deptno FROM emp;
WHERE 过滤查询结果。 SELECT * FROM emp WHERE sal > 2000;
ORDER BY 对查询结果进行排序。 SELECT * FROM emp ORDER BY sal DESC; (降序)
GROUP BY 对结果进行分组。 SELECT deptno, AVG(sal) FROM emp GROUP BY deptno;
HAVING 对分组后的结果进行过滤。 SELECT deptno, AVG(sal) FROM emp GROUP BY deptno HAVING AVG(sal) > 2500;
JOIN 连接两个或多个表。 SELECT e.ename, d.dname FROM emp e JOIN dept d ON e.deptno = d.deptno;
UNION / UNION ALL 合并两个查询的结果。UNION 会去重,UNION ALL 不会。 SELECT deptno FROM emp UNION SELECT deptno FROM dept;
INTERSECT 返回两个查询结果的交集。 SELECT empno FROM emp INTERSECT SELECT empno from bonus;
MINUS 返回在第一个查询中但不在第二个查询中的结果。 SELECT empno FROM emp MINUS SELECT empno from bonus;

SQL*Plus 环境控制

控制 SQL*Plus 的输出格式和行为。

命令 描述 示例
SET 设置 SQL*Plus 的各种选项。 SET PAGESIZE 100 (设置每页显示的行数)
SET LINESIZE 120 (设置每行的显示宽度)
SET ECHO ON (显示脚本中的命令)
SET FEEDBACK ON (显示查询返回的行数)
DESC[RIBE] 描述表的结构(列名、数据类型、是否为空等)。 DESC emp;
SPO[OL] 将输出结果保存到文件中。 SPOOL C:\output.txt
SELECT * FROM emp;
SPO OFF
CLEAR SCR[EEN] 清空 SQL*Plus 屏幕。 CLEAR SCREEN
HO[ST] 执行操作系统命令。 HOST dir (在 Windows 上查看目录)
HOST ls -l (在 Linux 上列出文件)
运行一个 SQL 脚本文件。 @C:\scripts\create_emp.sql

用户与权限管理

通常由 DBA(数据库管理员)执行,但开发人员也需要了解。

命令 描述 示例
CREATE USER 创建一个新用户。 CREATE USER myuser IDENTIFIED BY mypassword;
GRANT 授予用户权限或角色。 GRANT CONNECT, RESOURCE TO myuser;
GRANT SELECT ON emp TO myuser;
REVOKE 撤销用户的权限或角色。 REVOKE SELECT ON emp FROM myuser;
ALTER USER 修改用户属性,如密码或默认表空间。 ALTER USER myuser IDENTIFIED BY newpassword;
DROP USER 删除一个用户。CASCADE 会同时删除用户拥有的所有对象。 DROP USER myuser CASCADE;

其他常用命令

命令 描述 示例
REM[ARK] 在脚本中添加注释。 REM This is a comment
PROMPT 在屏幕上显示一条消息。 PROMPT Connecting to the database...
EXECUTE / EXEC 执行一个 PL/SQL 语句或过程。 EXEC DBMS_OUTPUT.PUT_LINE('Hello, World!');
SHOW 显示 SQL*Plus 的环境变量设置。 SHOW USER (显示当前用户)
SHOW ERRORS (显示最近的错误)

常用函数

类别 函数 描述 示例
字符函数 CONCAT(s1, s2) 连接字符串 CONCAT('Hello', ' World') -> 'Hello World'
SUBSTR(string, start, length) 截取子串 SUBSTR('Oracle', 1, 3) -> 'Ora'
LENGTH(string) 返回字符串长度 LENGTH('Oracle') -> 6
INSTR(string, substr) 查找子串位置 INSTR('Oracle', 'a') -> 3
TRIM(s) / LTRIM(s) / RTRIM(s) 去除字符串两边的空格 TRIM(' Oracle ') -> 'Oracle'
数值函数 ROUND(number, [decimals]) 四舍五入 ROUND(123.456, 2) -> 123.46
TRUNC(number, [decimals]) 截断 TRUNC(123.456, 2) -> 123.45
MOD(number, divisor) 取模 MOD(10, 3) -> 1
日期函数 SYSDATE 返回当前系统日期和时间 SELECT SYSDATE FROM dual;
ADD_MONTHS(date, months) 增加月份 ADD_MONTHS(SYSDATE, 3)
MONTHS_BETWEEN(date1, date2) 计算两个日期之间的月份数 MONTHS_BETWEEN(date1, date2)
TRUNC(date, [fmt]) 截断日期到指定格式 TRUNC(SYSDATE, 'MM') -> 返回当月第一天
转换函数 TO_CHAR(date, 'format') 将日期/数字转换为字符串 TO_CHAR(SYSDATE, 'YYYY-MM-DD')
TO_DATE(string, 'format') 将字符串转换为日期 TO_DATE('2025-10-27', 'YYYY-MM-DD')
TO_NUMBER(string) 将字符串转换为数字 TO_NUMBER('123.45')
聚合函数 COUNT(*) 计算行数 SELECT COUNT(*) FROM emp;
SUM(column) 计算总和 SELECT SUM(sal) FROM emp;
AVG(column) 计算平均值 SELECT AVG(sal) FROM emp;
MAX(column) / MIN(column) 计算最大/最小值 SELECT MAX(sal) FROM emp;

重要提示

  1. 分号 :在 SQL*Plus 中,每个 SQL 语句或 PL/SQL 块都必须以分号
  2. 大小写:SQL 语句本身不区分大小写(SELECTselect 效果相同),但表名、列名的大小写敏感性取决于数据库的设置,字符串常量是区分大小写的。
  3. DUAL:这是一个 Oracle 中的虚拟表,只有一行一列,主要用于计算表达式或获取系统信息,如 SELECT SYSDATE FROM DUAL;
  4. 权限:执行某些命令(如 CREATE, DROP, GRANT)需要相应的数据库权限。

希望这份清单能帮助您快速上手和回顾 Oracle 的基本命令!

Oracle基本命令有哪些核心操作?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇