欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle 安装与SQLPLUS简单用法

程序员文章站 2024-02-10 14:55:22
一 安装oracle数据库成功之后,会显示相关的数据库信息: 全局数据库名:oracle 系统标识符(sid):oracle 服务器参数文件名:c:\oracle\prod...
一 安装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行。