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);