oracle 11g中sql plus使用

一、启动sql plus

进入sql*plus方法:
1)从安装程序目录进入
2)cmd方式 sqlplus username/password@主机字符串
1)2)既可以使用sql语句也支持sql命令
3)sql developer :只能写sql语句,sql命令不能使

4)EM 不能使用sql语句,也不能使用sql命令


创建主机字符串方法:
1)net manager
2)net configration assistant
3)tnsnames.ora 复制原有构造自己的


sql developer工具 不用主机字符串

二、常用命令

SQL*Plus命令主要用来设置查询结果的显示格式,设置环境选项和提供帮助信息等。

1.连接与断开数据库连接命令

CONNECT 用户名/口令@主机字符串

CONNECT可简写为CONN

DISCONNECT

任何以sysdba身份连接的用户,都将被视为sys用户,可以通过show user命令查看当前连接到数据库的用户

conn m/h as sysdba(无论用户存不存在,密码对不对,或都没有)

2.查看表(视图、同义词)结构命令

DESCRIBE  表名

DESCRIBE可简写为DESC

3.会话环境设置命令

SET 环境变量名 值

CONN scott/tiger
SET SPACE 2
SET linesize 200   (行的宽度 默认80)
SET pagesize 120    (一页的记录数)
SELECT * FROM emp;

4.SPOOL(假脱机)命令

SPO[OL] [ file_name [ CRE[ATE] | REP[LACE] | APP[END]] | OFF | OUT ]

5.编辑命令


6.SAVE命令

SAV[E] [ FILE ] file_name [ CRE[ATE] | REP[LACE] | APP[END] ]
7.使用GET命令读取文件内容到缓冲区

GET [ FILE ] file_name [ LIST | NOLIST ]

8.使用START命令读取并运行文件内容

STA[RT]  {file_name}
Start也可以用@代替

9.使用EDIT命令编辑缓冲区内容或文件内容

ED[IT] [ file_name ]

10.执行存储过程命令

EXECUTE 存储过程名

11.设置列显示属性

COL[UMN] [{column | expr} [option ……]]
column 列名(字符型) format A长度
column 列名(数值型) format 9999

12.SHOW查看例程参数、系统变量、编译错误等

SHOW PARAMETERS db_name
SHOW user

13.显示命令帮助信息

HELP [命令名]


三、变量

a、带有一个&的替换变量的用法

特点:1)&变量名
     2)可以代替初关键字以外的任何名称
     3)生命周期-作用范围只限于sql执行中。
     4)可以在文件中使用临时变量。


1)、使用带有一个&号的变量值来提示用户输入一个值。
eg、
SQL> SELECT     empno, ename, sal, deptno FROM  emp WHERE empno = &empno;
输入 empno 的值:  7369
原值    1: SELECT empno, ename, sal, deptno FROM  emp WHERE empno = &empno
新值    1: SELECT empno, ename, sal, deptno FROM  emp WHERE empno = 7369


     EMPNO ENAME             SAL     DEPTNO
———- ———- ———- ———-
      7369 SMITH            8888         20


2)、替换变量中的字串和日期值
使用单引号标志替换变量中的日期和字串值。
eg、
SQL> SELECT ename, deptno, sal*12 FROM emp WHERE job='&job';
输入 job 的值:  ANALYST
原值    1: SELECT ename, deptno, sal*12 FROM emp WHERE job='&job'
新值    1: SELECT ename, deptno, sal*12 FROM emp WHERE job='ANALYST'


ENAME          DEPTNO     SAL*12
———- ———- ———-
SCOTT              20     106656
FORD               20      36000


3)、运行时指定列名、表达式、文本
SELECT empno, ename, job, &column_name
FROM emp
WHERE &condition
ORDER BY &order_column;
输入 column_name 的值:  sal
原值    1: SELECT empno, ename, job, &column_name
新值    1: SELECT empno, ename, job, sal
输入 condition 的值:  sal>=3000
原值    3: WHERE &condition
新值    3: WHERE sal>=3000
输入 order_column 的值:  ename
原值    4: ORDER BY &order_column
新值    4: ORDER BY ename


     EMPNO ENAME      JOB              SAL
———- ———- ——— ———-
      7902 FORD       ANALYST         3000
      7839 KING       PRESIDENT       5000
      7788 SCOTT      ANALYST         8888
      7369 SMITH      CLERK           8888


b、带有两个&的替换变量用法

特点:A)多个同名变量只输入一次,同时赋值
      B)不再是临时变量,生命周期是替代变量。
使用带有两个&的变量可以使得该变量可以重复使用,而不必在每次使用时提醒用户输入。
SQL> SELECT empno, ename, job, &&column_name FROM emp ORDER BY &column_name;
输入 column_name 的值:  deptno
原值    1: SELECT empno, ename, job, &&column_name FROM emp ORDER BY &column_name
新值    1: SELECT empno, ename, job, deptno FROM emp ORDER BY deptno


     EMPNO ENAME      JOB           DEPTNO
———- ———- ——— ———-
      7782 CLARK      MANAGER           10
      7839 KING       PRESIDENT         10
      7934 MILLER     CLERK             10



c、define命令用法

特点:A)需要用define 变量名=值。
      B)生命周期-作用范围从定义开始到sqlplus显式关闭,或set define off删除此变量。
      C)定义的变量的数据类型为char
创建CHAR类型的用户变量,当定义一个包含空格的变量时,要用单引号将该变量括起来。
eg、
SQL> define deptname = sales
SQL> define deptname; –查看该变量
DEFINE DEPTNAME = "sales" (CHAR)
SQL> SELECT * FROM dept WHERE dname=UPPER('&deptname');
原值    1: SELECT * FROM dept WHERE dname=UPPER('&deptname')
新值    1: SELECT * FROM dept WHERE dname=UPPER('sales')


    DEPTNO DNAME          LOC
———- ————– ————-
        30 SALES          CHICAGO


说明:一个变量将保持在被定义的状态,直到使用undefine命令将它清除或离开sql*plus。


d、accept命令用法

特点:
      A)accept可以定义数值型,字符型,日期型。
      B)生命周期-作用范围从定义开始到sqlplus显式关闭 
      C)ACC[EPT] variable [ data_type ] 
      [ FOR[MAT] format ] 
      [ DEF[AULT] default ] 
      [ PROMPT text | NOPR[OMPT] ]
      [ HIDE ]
接收用户输入时,创建可定制的用户提示。
eg、
–提示你输入一个数值给dept,dept是个变量,可用define命令查看该变量
SQL> accept dept prompt 'Provide the department name: '
Provide the department name: Sales
SQL> define dept; --查看该变量
DEFINE DEPT = "Sales" (CHAR)
SQL> SELECT * FROM dept WHERE dname = UPPER('&dept');
原值    1: SELECT * FROM dept WHERE dname = UPPER('&dept')
新值    1: SELECT * FROM dept WHERE dname = UPPER('Sales')


    DEPTNO DNAME          LOC
———- ————– ————-
        30 SALES          CHICAGO



全部评论

相关推荐

点赞 评论 收藏
分享
10-11 17:45
门头沟学院 Java
走吗:别怕 我以前也是这么认为 虽然一面就挂 但是颇有收获!
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务