SQLPlus 命令与常用 SQL 操作对照表
| 类别 | 命令/语句 | 说明 |
| SQL*Plus 登录/退出 | sqlplus username/password | 直接连接数据库 |
| | sqlplus username/password@TNS_NAME | 通过 TNS 名称连接数据库 |
| | CONNECT username/password | SQL*Plus 内部重新连接 |
| | EXIT 或 QUIT | 退出 SQL*Plus |
| 查询当前信息 | SHOW USER | 显示当前登录用户名 |
| | SELECT name FROM v$database; | 查看数据库名称 |
| | SELECT instance_name FROM v$instance; | 查看实例名称 |
| 用户管理 | CREATE USER username IDENTIFIED BY password; | 创建新用户 |
| | DROP USER username CASCADE; | 删除用户及其对象 |
| | GRANT CONNECT, RESOURCE TO username; | 授权普通用户访问和操作 |
| | SELECT * FROM USER_ROLE_PRIVS; | 查看当前用户权限 |
| 表操作 | CREATE TABLE table_name (...); | 创建表 |
| | DESC table_name; | 查看表结构 |
| | INSERT INTO table_name VALUES (...); | 插入数据 |
| | SELECT * FROM table_name; | 查询表数据 |
| | UPDATE table_name SET column=value WHERE condition; | 更新数据 |
| | DELETE FROM table_name WHERE condition; | 删除数据 |
| | DROP TABLE table_name; | 删除表 |
| 索引与约束 | CREATE INDEX idx_name ON table(column); | 创建索引 |
| | DROP INDEX idx_name; | 删除索引 |
| | ALTER TABLE table ADD CONSTRAINT ... | 添加约束 |
| 表空间管理 | SELECT tablespace_name, file_name, bytes/1024/1024 AS size_mb FROM dba_data_files; | 查看表空间信息 |
| | CREATE TABLESPACE tablespace_name DATAFILE 'file.dbf' SIZE 50M AUTOEXTEND ON; | 创建表空间 |
| | DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES; | 删除表空间及数据文件 |
| SQL*Plus 输出设置 | SET PAGESIZE n | 每页显示行数 |
| | SET LINESIZE n | 设置输出行宽度 |
| | SPOOL filename | 输出结果到文件 |
| | @script.sql | 执行 SQL 脚本 |
| | CLEAR SCREEN | 清屏 |
| | PROMPT text | 输出提示信息 |
1. SQLPlus 常用命令
这些命令在 SQLPlus 提示符下使用(不是 SQL 语句,而是工具命令):
| 命令 | 作用 |
EXIT 或 QUIT | 退出 SQLPlus |
CONNECT username/password[@TNS] | 连接数据库,例如 CONNECT scott/tiger@ORCL |
DESCRIBE table_name 或 DESC table_name | 查看表结构 |
SHOW USER | 查看当前登录用户名 |
SHOW ALL | 显示环境变量 |
HELP INDEX | 显示可用命令 |
SHOW ERRORS | 查看上一次编译的 PL/SQL 错误 |
SET PAGESIZE n | 设置每页显示的行数 |
SET LINESIZE n | 设置输出行宽度 |
SPOOL filename | 输出结果到文件,例如 SPOOL C:\temp\result.txt |
@script.sql | 执行 SQL 脚本文件 |
CLEAR SCREEN | 清屏 |
PROMPT text | 输出提示信息 |
2. Oracle 数据库常用 SQL 命令
2.1 用户管理
-- 创建用户
CREATE USER username IDENTIFIED BY password;
-- 删除用户
DROP USER username CASCADE;
-- 授权
GRANT CONNECT, RESOURCE TO username;
-- 查看当前用户权限
SELECT * FROM USER_ROLE_PRIVS;
2.2 表操作
-- 创建表
CREATE TABLE emp (
emp_id NUMBER PRIMARY KEY,
emp_name VARCHAR2(50),
salary NUMBER
);
-- 查看表结构
DESC emp;
-- 插入数据
INSERT INTO emp VALUES (1, 'Alice', 5000);
INSERT INTO emp VALUES (2, 'Bob', 6000);
-- 查询数据
SELECT * FROM emp;
-- 更新数据
UPDATE emp SET salary = 7000 WHERE emp_id = 1;
-- 删除数据
DELETE FROM emp WHERE emp_id = 2;
-- 删除表
DROP TABLE emp;
2.3 表空间管理
-- 查看表空间
SELECT tablespace_name, file_name, bytes/1024/1024 AS size_mb
FROM dba_data_files;
-- 创建表空间
CREATE TABLESPACE userspace
DATAFILE 'userspace01.dbf' SIZE 50M AUTOEXTEND ON;
-- 删除表空间
DROP TABLESPACE userspace INCLUDING CONTENTS AND DATAFILES;
2.4 查看数据库信息
-- 查看当前数据库名
SELECT name FROM v$database;
-- 查看当前实例名
SELECT instance_name FROM v$instance;
-- 查看表列表
SELECT table_name FROM user_tables;
2.5 索引与约束
-- 创建索引
CREATE INDEX idx_emp_name ON emp(emp_name);
-- 删除索引
DROP INDEX idx_emp_name;
-- 添加约束
ALTER TABLE emp ADD CONSTRAINT emp_salary_ck CHECK (salary > 0);