SQLPlus 命令与常用 SQL 操作对照表

类别 命令/语句 说明
SQL*Plus 登录/退出 sqlplus username/password 直接连接数据库
  sqlplus username/password@TNS_NAME 通过 TNS 名称连接数据库
  CONNECT username/password SQL*Plus 内部重新连接
  EXITQUIT 退出 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 语句,而是工具命令):

命令 作用
EXITQUIT 退出 SQLPlus
CONNECT username/password[@TNS] 连接数据库,例如 CONNECT scott/tiger@ORCL
DESCRIBE table_nameDESC 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);