数据库SQLPLUS
交互式命令
替换变量
使用替换变量 &variable_name
SELECT empno,ename FROM emp WHERE deptno=&X AND job='&Y' 定义替换变量 DEFINE variable_name =‘value’
DEFINE dno='10' SELECT EMPNO FROM EMP WHERE DEPTNO=&dno;
编辑命令
例:当前缓冲区的内容为 SELECT EMPNO,ENAME,JOB,SAL FROM EMP WHERE SAL<3000 SQL>L LAST WHERE SAL<3000 SQL>L 2 FROM EMP SQL>L 1 3Байду номын сангаас?
编辑命令
4. 修改已发出命令的当前行(change)--简写为“c”
练习
1. 要列出Oracle表中的列,可以用哪个 SQL *Plus命令? A. get B. input C. describe D. Spool 2. 下列命令显示SQL *Plus缓冲区内容: _ _ _ _ _ _ _ _ _ 3. Oracle把SQL *Plus缓冲区内容存放在下列文件中:_ _ _ 4. 你要配置SQL *Plus工作环境。发出define_editor =‘emacs’命令将产生以下哪个结果? A. EMACS编辑器成为SQL *Plus默认文本编辑器。 B. EMACS编辑器立即开始运行。 C. EMACS编辑器不再作为SQL *Plus默认文本编辑器。 D. EMACS编辑器从系统中删除。 5. 你要用SQL *Plus连接O r a c l e数据库,下列哪个选项不 是登录 O r a c l e时必须指定的组件? A. sqlplus关键字 B. 用户名 C. 口令 D. 数据库名
----------------------------- --------
编辑命令
3. 列出缓冲区的内容命令(list)--简写为“l”
格式:l [n] [last] [m n]
last --显示最后一行 m n --从第m行显示到第n行
参数: n --显示第n行
判断当前行:用的LIST n列出的命令既是当前 行;执行LIST命令或运行缓冲区的命令后,最 后一行为当前行;有出错信息时,出错的该行 即为当前行。当前行具有*标记
------- -------- ------ ----- --------- ---- -7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 7839 KING PRESIDENT 17-NOV-81 5000
Rem只能用于文件中,--和/*……*/文件和命令中都可以。 清除缓冲区: SQL>clear buffer
基本SQL*PLUS命令
SPOOL filename 这个命令将SQL *Plus中发出spool filename命令之后显 示的所有输出写入文本文件 f i l e n a m e中。如果不指 定文件扩展名,则 SQL *Plus加上扩展名. l s t。例如: SQL> spool jason SQL> select ename, sal2 from ENAME SAL -----------------SMITH 800 ALLEN 1600 SQL> spool off SQL> exit C:\WINDOWS> type jason.out 显示上述内容
2. 列举表结构命令(describe)--简写为“desc” 格式:desc 表名 如:SQL> desc emp Name
EMPNO ENAME JOB MGR
Null?
NOT NULL
Type -----------NUMBER(4) VARCHAR2(10) VARCHAR2(9) NUMBER(4)
连接命令
CONNECT:用户切换或连接到新的数据库 CONN[ECT] [username]/[password][@hoststring] SQL>CONNECT HR/HR@ORC1 SQL>CONNECT SYS/SYS@ORC1 AS SYSDBA DISCONNECT:断开与数据库的连接
练习
7. 检查SQL *Plus会话的下列输出: Name Null? Type ----------------------------- -------- -----------SYMPTOM NOT NULL VARCHAR2(10) CAUSE VARCHAR2(10) TREATMENT VARCHAR2(9) 下列哪个关键字会产生上述输出? A. describe B. get C. run D. Spool 1. 下列S Q L * P l u s命令可以将S Q L * P l u s缓冲区 内容存放成命令文件:_ _ _ _ _ _ _ _ _ _ _ _ 2. 下列S Q L * P l u s命令可以将S Q L命令文件装入操作 缓冲区并执行:_ _ _ _ _ _ _ _ _ _ _ _
查看替换变量 DEFINE:显示所有替换变量
DEFINE
UNDEFINE dno
清除替换变量 UNDEFINE variable_name
输入变量
SQL> select ename, job, deptno, sal from emp where empno = &empno; Enter value for empno: 7844 old 3: where empno = &empno new 3: where empno = 7844 ENAME JOB DEPTNO SAL ------------------ --------- --------TURNER SALESMAN 30 1500 SQL> / Enter value for empno: 7839 old 3: where empno = &empno new 3: where empno = 7839 ENAME JOB DEPTNO SAL ---------- --------- --------- --------KING PRESIDENT 10 5000
文本、日期信息
SQL> select empno, deptno, sal from emp 3 where ename = '&empname'; Enter value for empname: SMITH old 3: where ename = '&empname‘ new 3: where ename = 'SMITH‘
SQL*PLUS
本章内容
SQL*PLUS工具的作用 SQL*PLUS基本命令操作 SQL*PLUS格式化查询结果
本章要求
了解SQL*PLUS工具的作用 掌握SQL*PLUS基本命令操作 了解SQL*PLUS格式化查询结果的方法
SQL*Plus概述
SQL*PLUS工具的作用
ORACLE 的SQL 和PL/SQL的运行环境 数据库进行操作和管理 输入、编辑、存储、提取和运行SQL命令和PL/SQL 程序 处理数据、生成报表、存储、打印和格式化查询结果 在SQL数据库之间存取和拷贝数据 从一个用户端发送消息和接受消息 命令行方式启动SQL*PLUS 图形界面方式启动SQL*Plus
格式:c/char1/char2 参数:用char2替换掉char1 C/char1/ :把char1删掉 SQL> SELECT empno, ename, NVL(mgr,'none') mgr, 2 3 hiredate, sal, comm, deptno FROM EMP;
编辑命令
5. 在当前行之后插入一新行(input)--简写为“i”
格式:input 注:输入命令后会出现行号,在其后面直接输入 即可 例:对上例增加第4行:SQL>INPUT 4 ORDER BY SAL
编辑命令
6. 在当前行末尾增加若干字符(append)-简写为“a”
格式:A *******
启动SQL*Plus
启动SQL*Plus
命令行方式启动SQL*PLUS
sqlplus [username]/[password] [@connect_string]|[NOLOG]
图形界面方式启动SQL*PLUS
退出SQL*PLUS:SQL>exit
SQL*Plus常用命令
连接命令 编辑命令 文件操作命令 交互式命令 显示与设置环境变量 其它常用命令
文件操作命令
将SQL缓冲区的内容存储在磁盘上(save)
格式:save 〈文件名〉 [replace|append] 注:所存储文件的后缀为“.SQL”
SQL>save c:\sqlscript.sql
10. 将磁盘上的“.SQL”文件调入缓冲区中,并显示 在屏幕上(get) SQL>get c:\sqlscript SQL>get c:\sqlsript nolist 命令不显示在屏幕