一 安装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行。