一.查看表结构
DESC test;
二.编辑sql语句
A[PPEND] text :将text附加到当前行之后
C[HANGE]/old/new:将当前行中的old替换成new
CL[EAR]BUFF[ER]:清除缓冲区中的所有行
DEL:删除当前行
DEL x:删除第X行
L[IST]:列出缓冲区中所有的行
L[IST] x:列出第X行
R[UN]或/:运行缓冲区中保存的语句
x:将第X行作为当前行
例子:
SQL>1 --显示第一行
结果:select id
SQL>APPEND ,id_type --添加id_type列
结果:select id,id_type
SQL>LIST --显示缓冲区中的所有行
结果:select id,id_type
from test
where id = 1;
SQL>CHANGE/id = 1/id = 2
结果: where id = 2;
SQL>RUN --运行缓冲区的所有行 也可以使用/
结果:select id,id_type
from test
where id = 2;
id id_type
---------------
2 01
三.保存检索、并运行文件
SAV[E] filename[{REPLACE|APPEND}] :将SQL*Plus缓冲区的内容保存到由filename指定的文件中。append选项说明在将缓冲区中的内容追加到一个现有的文件之后;replace选项说明覆盖一个现有的文件
GET filename:将filename指定的文件的内容读入SQL*Plus缓冲区中。
STA[RT] filename :将filename指定的文件的内容读入SQL*Plus缓冲区中,然后运行缓冲区中的内容
@filename:与start命令相同
ED[IT]:将SQL*Plus缓冲区的内容复制到一个临时文件中,然后启动操作系统中默认的编辑器。在退出编辑器时,所编辑文件的内容将被复制到SQL*Plus缓冲区中。
ED[IT] filename:与EDIT命令相同,但是可以指定要编辑的文件,使用filename参数指定文件名
SPO[OL] filename:将SQL*Plus中的输出结果复制到filename指定的文件中,复制时从spool命令后面开始,并在spool off命令处结束
SPO[OL] OFF:停止将SQL*Plus中的输出结果复制到filename指定的文件中,并关闭该文件
例子:
SQL>select id, id_type
from test
where id = 1;
1:保存sql到test_query.sql中 ,在运行这个例子前,请先在c盘创建sql_files
环境:windows环境
SQL>SAVE C:\sql_files\test_query.sql
环境:Linux环境
SQL>SAVE /sql_files/test_query.sql
2:检索test_query.sql中的内容
环境:windows环境
SQL>GET C:\sql_files\test_query.sql
select id, id_type
from test
where id = 1;
环境:Linux环境
SQL>GET /sql_files/test_query.sql
3:使用/进行查询此查询:
SQL>/
结果:
id id_type
------------
1 01
4:使用START进行加载并查询:
环境:windows环境
SQL>START C:\sql_files\test_query.sql
结果:
id id_type
------------
1 01
环境:Linux环境
SQL>START /sql_files/test_query.sql
5:EDIT启动默认的编辑器,windows中默认编辑器时notepad,linux和unix中默认编辑器是ed。
SQL>EDIT
--在编辑器中修改sql
修改为
select id, id_type
from test
where id = 2;
SQL>/
id id_type
------------
2 01
6:spool将SQL*Plus的输出结果复制到文件中。
SQL>SPOOL C:\sql_files\test_results.txt
SQL>SPOOL OFF
四.设置显示格式与设置页面显示大小
1:格式化列与清除格式化:
格式化:COL[UMN] {column | alias} [options]
column :列名
alias:指定要格式化的列的名称。
options:指定用于格式化列或别名的一个或多个选项
例如:
SQL>COLUMN id_type FORMAT A1 WORD_WRAPPED
SQL>select id,id_type
from test
where id = 1
id id_type
-------------
1 0
1
清除格式化:
清除某一列的格式化
SQL>COLUMN id CLEAR
清除所有的格式化
SQL>COLUMN CLEAR
2:设置页面大小(默认为14,最大为50000)
使用SET PAGESIZE
SQL>SET PAGESIZE 1
SQL>/
id id_type
-------------
1 01
3:设置行大小(默认为80,最大为32767)
使用SET LINESIZE
SQL>SET LINESIZE 10
SQL>/
id id_type
-------------
1 01
五.变量
1:临时变量
使用&字符定义临时变量,后面跟上要定义的变量名
SQL>select id,id_type
from test
where id = &v_id;
Enter value for v_id : 1
old 3: where id = &id
new 3: where id = 1
id id_type
-----------
1 01
1.1.控制输出行:
禁止显示旧行和新行
SQL>SET VERIFY OFF
SQL>/
结果:
id id_type
-----------
1 01
1.2**改回&**
SQL>SET DEFINE '&'
1.3.使用变量替换表名和列名
SQL>select id,&id_type
from &test
where &id_type = &v_val;
Enter value for &id_type : id_type
old 1: select id,&id_type
new 1: select id,id_type
Enter value for &test : test
old 2: from &test
new 2: from test
Enter value for &id_type : id_type
Enter value for &v_val : 01
old 3: where &id_type = &v_val
new 3: where id_type = '01'
id id_type
-----------
1 01
2 01
使用&&可以避免重复输入变量
SQL>select id,&&id_type
from &test
where &&id_type = &v_val;
Enter value for &&id_type : id_type
old 1: select id,&&id_type
new 1: select id,id_type
Enter value for &test : test
old 2: from &test
new 2: from test
Enter value for &v_val : 01
old 3: where &&id_type = &v_val
new 3: where id_type = '01'
id id_type
-----------
1 01
2 01
2:已定义变量
在同一条SQL语句中可以多次使用这个变量,已定义变量会一直保留,知道显式地将其删除、重定义或退出SQL*Plus为止。
DEFINE 定义变量
ACCEPT 定义并设置变量
UNDEFINE 删除变量
2.1.DEFINE :定义并查看变量
SQL>DEFINE v_id_type = '01'
SQL>DEFINE v_id_type
DEFINE V_ID_TYPE = '01';
--查看当前会话的所有变量
SQL>DEFINE
DEFINE V_ID_TYPE = '01';
--指定元素
SQL>select id,id_type
from test
where id_type = &v_id_type;
old 3: where id_type = &v_id_type
new 3: where id_type = '01'
id id_type
-----------
1 01
2 01
2.2.ACCEPT :定义并设置变量
用于等待用户为变量输入值。
ACCEPT命令既可以将现有的变量设置为新值,也可以定义新变量,并使用值对新变量进行初始化。还允许为变量指定数据类型。
SQL>ACCEPT v_id NUMBER FORMAT 99 PROMPT 'id:'
id: 1
隐藏输入的值
SQL>ACCEPT v_password CHAR PROMPT 'Password: ' HIDE
Password:
输入时什么也不显示
日期
SQL>ACCEPT v_date DATE PROMPT 'DD-MON-YYYY' PROMPT 'Date: '
Date: 02-OCT-2017
2.3.UNDEFINE:删除变量 (如果不显示删除,也会在SQL*Plus退出时全部被删除)
SQL>UNDEFINE v_id_type
六.简单报表
1.在脚本中使用临时变量
SET ECHO OFF --禁止SQL*Plus显示脚本中的sql语句和命令
SET VERIFY OFF --禁止显示验证消息
select id,id_type
from test
where id = &v_id;
然后通过@ C:\sql\report1.sql 运行命令
SQL>@ C:\sql\report1.sql
Enter value for v_id: 1
id id_type
----------
1 01
2.在脚本中使用已定义变量
SET ECHO OFF --禁止SQL*Plus显示脚本中的sql语句和命令
SET VERIFY OFF --禁止显示验证消息
ACCEPT v_id NUMBER FORMAT 99 PROMPT 'Enter id: '
select id,id_type
from test
where id = &v_id;
--clean up
UNDEFINE v_id
SQL>@ C:\sql\report2.sql
Enter id: 1
id id_type
----------
1 01
七.获取帮助信息
SQL>HELP
SQL>HELP INDEX
SQL>HELP EDIT