服务器之家

服务器之家 > 正文

oracle 安装与SQLPLUS简单用法

时间:2019-11-01 14:52     来源/作者:oracle教程网

一 安装oracle数据库成功之后,会显示相关的数据库信息: 
全局数据库名:oracle 
系统标识符(SID):oracle 
服务器参数文件名:c:\oracle\product\10.2.0\db_1/dbs/spfileoracle.ora 
Database Control URL为http://210.45.216.146:1158/em 
数据库账户:SYS,SYSTEM,DBSNMP,SYSMAN 
密码:oracle 
iSQL*Plus URL 为: 
http://210.45.216.146:5561/isqlplus 
iSQL*Plus DBA URL 为: 
http://210.45.216.146:5561/isqlplus/dba 
查看C:\oracle\product\10.2.0\db_1\install\portlist.ini文件获得相应的OEM为: 
http://210.45.216.146:1158/em/ 
二 SQLPLUS工具 
SQLPLUS的主要功能为:输入,运行和调试SQL语句和PL/SQL块;执行管理数据库命令;处理数据,生成报表,格式化查询结果 
1.启动SQLPLUS: 
scott/tiger@oracle 
2.获取SQLPLUS命令的帮助: 
SQL> help index; //获得oracle所有命令 
SQL> help list; //显示出list命令的帮助信息 
3.退出SQLPLUS(在退出SQLPLUS之前,应该使用commit命令提交事务): 
SQL> quit或者SQL> exit; 
4.在SQLPLUS中输入三种类型的命令: 
1) SQL命令:用于操作数据库中的信息 
2) PL/SQL块:用于操作数据库中的信息 
3) SQLPLUS命令:用于编辑,保存,运行SQL命令,PL/SQL块,格式化查询结果,自定义SQLPLUS环境等. 
1),2)可以访问数据库,执行时将命令暂时存放到SQL缓冲区中. 
3)不可以访问数据库,SQLPLUS命令也不能被存放到SQL缓冲区中. 

5.缓冲区命令: 
SQL>SELECT ; //把SELECT;保存到缓冲区中 
SQL>EDIT; //编辑缓冲区中的内容 
SQL>RUN 或者SQL>/ //执行缓冲区中的内容 
SQL>CLEAR SCREEN //清除SQLPLUS的屏幕及屏幕缓冲区 
6.运行命令 
在SQLPLUS中可以使用三种方式运行SQL语句和PL/SQL块:1)命令行方式 2)SQL缓冲区方式 3)脚本文件方式 
1)命令行方式: 
1.1)以命令行方式运行SQL命令,只需要在输入完SQL语句之后,输入分号(;),或者在新的一行输入前斜线(/),按回车键即可 
SQL> SELECT ename,sal FROM emp 
2 WHERE deptno = 20; 
1.2)以命令行方式运行PL/SQL块,只需要在输入完PL/SQL块之后,在新的一行输入前斜线(/),按回车键即可 
SQL> SET SERVEROUTPUT ON 
SQL> BEGIN 
2 DBMS_OUTPUT.PUT_LINE('Hello Oracle!'); 
3 END; 
4 / 
1.3)EXECUTE(或者EXEC)命令,可以执行单条PL/SQL语句,不需要从缓冲区或脚本文件中执行. 
SQL> SET SERVEROUTPUT ON 
SQL> EXEC DBMS_OUTPUT.PUT_LINE('Hello '); 
Hello 
2)SQL缓冲区方式: 
2.1)RUN命令:显示并运行当前存储在SQL缓冲区中的SQL语句或PL/SQL块,显示运行结果, 
并使SQL缓冲区中的最后一行成为当前行 
SQL> SELECT ename, sal FROM emp 
2 WHERE deptno = 20 
3 ; 
ENAME SAL 
---------- ---------- 
SMITH 800 
JONES 2975 
SCOTT 3000 
ADAMS 1100 
FORD 3000 
SQL> RUN 
1 SELECT ename, sal FROM emp 
2 WHERE deptno = 20 
3* 
ENAME SAL 
---------- ---------- 
SMITH 800 
JONES 2975 
SCOTT 3000 
ADAMS 1100 
FORD 3000 
2.2)/命令:运行当前存储在SQL缓冲区中的SQL命令或PL/SQL块,显示运行结果, 
而不显示SQL缓冲区中的SQL命令或PL/SQL块,也不会将SQL缓冲区中的最后一行成为当前行 
SQL> SET SERVEROUTPUT ON 
SQL> BEGIN 
2 DBMS_OUTPUT.PUT_LINE('HELLO,ORACLE!'); 
3 END; 
4 / 
HELLO,ORACLE! 
PL/SQL 过程已成功完成。 
SQL> / 
HELLO,ORACLE! 
PL/SQL 过程已成功完成。 
2.3)菜单命令 
选择"文件"->"运行",它与RUN命令相同 
3)脚本文件方式 
3.1)START命令 
格式: START filename[.ext] [arg1 arg2 arg3...] 
脚本文件:D:\test.sql内容如下: 
SELECT ename, sal FROM emp 
WHERE deptno = &1 
AND sal > &2; 
使用START命令: 
SQL> START D:\test.sql 20 2500 
原值 2: WHERE deptno = &1 
新值 2: WHERE deptno = 20 
原值 3: AND sal > &2 
新值 3: AND sal > 2500 
ENAME SAL 
---------- ---------- 
JONES 2975 
SCOTT 3000 
FORD 3000 
3.2)@命令 
@命令和START命令类似,区别在于:@命令既可以在SQLPLUS会话内部运行,也可以在命令行运行, 
而START命令只能在SQLPLUS会话内运行. 
7.替换变量命令 
1)使用替换变量:其格式是在变量名称之前加一个&,以便在运行SQL命令时提示用户输入替换数据, 
然后按输入数据运行SQL命令,如: 
SQL> SELECT &a FROM emp 
2 WHERE deptno = 20 
3 AND job = '&b'; 
输入 a 的值: ename 
原值 1: SELECT &a FROM emp 
新值 1: SELECT ename FROM emp 
输入 b 的值: CLERK 
原值 3: AND job = '&b' 
新值 3: AND job = 'CLERK' 
ENAME 
---------- 
SMITH 
ADAMS 
2)定义替换变量:事先用DEFINE命令定义替换变量,如: 
SQL> DEFINE a = CLERK 
SQL> SELECT ename FROM emp 
2 WHERE deptno = 20 
3 AND job = '&a'; 
原值 3: AND job = '&a' 
新值 3: AND job = 'CLERK' 
ENAME 
---------- 
SMITH 
ADAMS 
3)查看替换变量 
SQL> DEFINE a 
DEFINE A = "CLERK" (CHAR) 
4)清除替换变量 
SQL> UNDEFINE a 
8.与用户通信 
可以使用PROMPT命令,PAUSE命令,ACCEPT命令与用户进行通信 
1)PROMPT命令用于输出提示信息,以便使用户了解脚本文件的功能和运行情况 
2)PAUSE命令用于暂停脚本文件的运行 
3)ACCEPT命令可以让用户指定替换变量的类型(如CHAR,NUMBER,DATE),用PROMPT选项指定提示信息, 
用HIDE选项隐藏输入,以便于用户输入替换变量 
举例如下: 
脚本文件:D:\test.sql内容如下: 
ACCEPT pwd PROMPT '请输入密码' HIDE 
PROMPT 
PROMPT 显示XX部门XX工种的员工姓名 
PROMPT ========================== 
PROMPT 按<Enter>键继续 
PAUSE 
ACCEPT a NUMBER PROMPT '请输入部门:' 
ACCEPT b CHAR PROMPT '请输入工种:' 
SELECT ename FROM emp 
WHERE deptno = &a 
AND job = '&b'; 
该脚本文件运行结果为: 
SQL> START D:\test.sql 
请输入密码********* 
显示XX部门XX工种的员工姓名 
========================== 
按<Enter>键继续 
请输入部门:20 
请输入工种:CLERK 
原值 2: WHERE deptno = &a 
新值 2: WHERE deptno = 20 
原值 3: AND job = '&b' 
新值 3: AND job = 'CLERK' 
ENAME 
---------- 
SMITH 
ADAMS 
9.绑定变量 
1)定义绑定变量 
可以使用VARIABLE命令来定义绑定变量.当在SQL语句或PL/SQL块中使用绑定变量时, 
必须在绑定变量前加冒号(:).当直接给绑定变量赋值时,需要使用EXECUTE命令,例如: 
SQL> VARIABLE no NUMBER 
SQL> EXECUTE :no := 7788 
PL/SQL 过程已成功完成。 
SQL> SELECT ename FROM emp WHERE empno = :no; 
ENAME 
---------- 
SCOTT 
2)输出绑定变量 
使用PRINT命令输出绑定变量,例如: 
SQL> PRINT no 
NO 
---------- 
7788 
10.自定义SQLPLUS环境 
SQL> SHOW ALL //查看所有环境变量 
SQL> SHOW linesize pagesize 
SQL> SET linesize 100 pagesize 24 //linesize代表行宽度,默认为80,pagesize表示每页显示的行数,默认为24 
SQL> SHOW arraysize //arraysize用于设置从数据库中一次提取的行数,默认为15 
SQL> SET arraysize 25 
SQL> SHOW autocommit //autocommit用于设置是否自动提交,默认为OFF 
SQL> SET autocommit on 
SQL> SET colsep | //colsep 用于设置在选定列之间的分隔符,默认为空格 
SQL> SELECT ename, sal FROM emp WHERE empno = 7788; 
ENAME | SAL 
----------|---------- 
SCOTT | 3000 
SQL>SET heading off //heading表示是否显示列标题,默认为ON 
SQL> SELECT ename, sal FROM emp WHERE empno = 7788; 
SCOTT | 3000 
SQL> SET serveroutput on //SEVEROUTPUT用于控制是否显示存储过程的输出,默认为OFF 
SQL> EXEC dbms_output.put_line('hello oracle'); 
hello oracle 
PL/SQL 过程已成功完成。 
SQL> SET sqlprompt inputSQL> //sqlprompt用来设置SQLPLUS的命令提示符 
inputSQL> 
SQL>SET time on //time是否在SQLPLUS命令提示符前显示系统时间,默认设置为OFF 
19:02:35 SQL> 

SQL>SET underline = //underline用于设置下划线字符,默认值为"_" 
SQL>SELECT count(*) FROM emp; 
COUNT(*) 
========== 
14 
SQL>STORE SET D:\setfile.sql //保存当前的SQLPLUS环境 
已创建 file D:\setfile.sql 
11.格式化查询结果 
1)格式化列 
SQL> COLUMN ename HEADING 雇员 JUSTIFY CENTER FORMAT A4 
SQL> COLUMN sal HEADING 月薪 JUSTIFY CENTER FORMAT L99999.99 
SQL> SELECT ename, sal FROM emp WHERE deptno = 20 AND sal > 2500; 
雇员| 月薪 
====|=================== 
JONE| ¥2975.00 

SCOT| ¥3000.00 
T | 
FORD| ¥3000.00 
SQL>COLUMN sal CLEAR //恢复列的格式 
2)限制重复行 
在限制重复行的同时,还可以在各个分组之间插入n个空行,其语法为: 
BREAK ON break_column SKIP n 
跑到新的一页,其语法为: 
BREAK ON break_column SKIP PAGE 
在每行之后插入n个空行,其语法为: 
BREAK ON ROW SKIP n 
在报表之后插入n个空行,其语法为: 
BREAK ON REPORT SKIP n 
SQL> BREAK ON deptno SKIP 1 
SQL> SELECT deptno, ename, sal FROM emp WHERE sal < 2500 
2 ORDER BY deptno; 
DEPTNO ENAME SAL 
---------- ---------- ---------- 
10 CLARK 2450 
MILLER 1300 
20 ADAMS 1100 
SMITH 800 
30 WARD 1250 
MARTIN 1250 
JAMES 950 
TURNER 1500 
ALLEN 1600 
已选择9行。

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
返回顶部