sqlplus 命令

对于oracle 数据库主要的使用命令,是sqlplus来完成。
在linux上的风格是:

[oracle@station ~]$ sqlplus

SQL*Plus: Release 10.2.0.1.0 - Production on Sat Jun 2 21:02:13 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Enter user-name: scott
Enter password:   ---密码是不会显示出来的

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

SQL>

——————————————————————————————————

SQL> select * from emp;

     EMPNO ENAME      JOB              MGR HIREDATE                  SAL
---------- ---------- --------- ---------- ------------------ ----------
      COMM     DEPTNO
---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80                 800
                   20

      7499 ALLEN      SALESMAN        7698 20-FEB-81                1600
       300         30

      7521 WARD       SALESMAN        7698 22-FEB-81                1250
       500         30


我们查询scott下的emp表,一个数据库下有多张数据表。但是这个查询有折行,命令行的宽度就怎么大不能在改了吧。我们可以使用windows的oracle客户端上的sqlplusw.exe,因为可以进行一些显示数据的调整(只是看的舒服点)。
要取消折行可以用sqlplus中的一个命令:set linesize 300;

SQL> set linesize 300;
SQL> select * from emp;

     EMPNO ENAME      JOB              MGR HIREDATE                  SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------------ ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80                 800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81                1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81                1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81                2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-81                1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81                2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81                2450                    10
      7788 SCOTT      ANALYST         7566 19-APR-87                3000                    20
      7839 KING       PRESIDENT            17-NOV-81                5000                    10
      7844 TURNER     SALESMAN        7698 08-SEP-81                1500          0         30
      7876 ADAMS      CLERK           7788 23-MAY-87                1100                    20

     EMPNO ENAME      JOB              MGR HIREDATE                  SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------------ ---------- ---------- ----------
      7900 JAMES      CLERK           7698 03-DEC-81                 950                    30
      7902 FORD       ANALYST         7566 03-DEC-81                3000                    20
      7934 MILLER     CLERK           7782 23-JAN-82                1300                    10

14 rows selected.

设置每页显示的记录的长度:set pagesize 30   ---每页显示30条记录;

这两个命令统一被称为格式化命令。

在linux下如何执行一个脚本文件,我们可以通过vim编辑器进行编辑并保存成:*.sql (*带表文件名);

[oracle@station ~]$ ls
a.txt

如何在sqlplus下执行a.txt脚本:


SQL> @a.txt

     EMPNO ENAME      JOB              MGR HIREDATE                  SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------------ ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80                 800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81                1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81                1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81                2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-81                1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81                2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81                2450                    10
      7788 SCOTT      ANALYST         7566 19-APR-87                3000                    20
      7839 KING       PRESIDENT            17-NOV-81                5000                    10
      7844 TURNER     SALESMAN        7698 08-SEP-81                1500          0         30
      7876 ADAMS      CLERK           7788 23-MAY-87                1100                    20
      7900 JAMES      CLERK           7698 03-DEC-81                 950                    30
      7902 FORD       ANALYST         7566 03-DEC-81                3000                    20
      7934 MILLER     CLERK           7782 23-JAN-82                1300                    10

14 rows selected.

这里我们用@a.txt执行脚本,如果a.txt的后缀是"*.sql"的话,则不用输入文件后缀,我们把a.txt 改成 a.sql

[oracle@station ~]$ ls
a.txt
[oracle@station ~]$ mv a.txt a.sql
[oracle@station ~]$ ls
a.sql
[oracle@station ~]$

再次执行@a.sql脚本:

SQL> @a

     EMPNO ENAME      JOB              MGR HIREDATE                  SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------------ ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80                 800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81                1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81                1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81                2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-81                1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81                2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81                2450                    10
      7788 SCOTT      ANALYST         7566 19-APR-87                3000                    20
      7839 KING       PRESIDENT            17-NOV-81                5000                    10
      7844 TURNER     SALESMAN        7698 08-SEP-81                1500          0         30
      7876 ADAMS      CLERK           7788 23-MAY-87                1100                    20
      7900 JAMES      CLERK           7698 03-DEC-81                 950                    30
      7902 FORD       ANALYST         7566 03-DEC-81                3000                    20
      7934 MILLER     CLERK           7782 23-JAN-82                1300                    10

14 rows selected.

看到了把我这时是用@a就可以执行了,不用加后缀。神奇吧!!!

在我们oracle数据库之中,会有许多的用户(现在已知的是4个用户),这每个用户下都会有多张自己的数据表,所以要想查看所有的数据表,则可以使用如下的命令:

SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
DEPT                           TABLE
EMP                            TABLE
BONUS                          TABLE
SALGRADE                       TABLE

而且由于用户众多,所以如果要想知道当前的登入用户,则可以用show user命令完成。
SQL> show user
USER is "SCOTT"

在我们sqlplus下如何进行用户的切换,使用的语法是:
CONN 用户名/密码 [AS SYSDBA];

我们使用sys用户登入:conn sys/oracle as sysdba

SQL> conn sys/oracle as sysdba
Connected.

以上表示连接成功。

SQL> conn sys/oracle
ERROR:
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER

如果不写 as sysdba;这提示叫你选择sysdba or sysoper (dba工作者或普通用户)

但是我们连接sys用户的时候我们则无法直接查询我们emp表。

SQL> select * from emp;
select * from emp
              *
ERROR at line 1:
ORA-00942: table or view does not exist

我们可以这样理解:如windows中的用户,当前用户都有自己的一个桌面,和自己的桌面文件夹。在这个用户下创建的文件是不是只有这个用户可以看见,如果是是其他用户登入的话,就要在其他用户下找到这个桌面。

所以对每个表而言,都有其属于自己的用户;对于表名称而言就是“用户名.表”。如果其他用户要访问emp表的时候就是要加上scott.emp;

如:
SQL> show user
USER is "SYS"
SQL> select * from scott.emp;

     EMPNO ENAME      JOB              MGR HIREDATE                  SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------------ ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80                 800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81                1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81                1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81                2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-81                1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81                2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81                2450                    10
      7788 SCOTT      ANALYST         7566 19-APR-87                3000                    20
      7839 KING       PRESIDENT            17-NOV-81                5000                    10
      7844 TURNER     SALESMAN        7698 08-SEP-81                1500          0         30
      7876 ADAMS      CLERK           7788 23-MAY-87                1100                    20
      7900 JAMES      CLERK           7698 03-DEC-81                 950                    30
      7902 FORD       ANALYST         7566 03-DEC-81                3000                    20
      7934 MILLER     CLERK           7782 23-JAN-82                1300                    10

14 rows selected.

超级管理员登入的话,可以对数据库的实例的打开和关闭;


关闭数据库的实例命令是:shutdown immediate


开启数据库的实例命令是:startup


总结:

以上是sqlplus中的简单操作。

本文出自 “strom的博客” 博客,谢绝转载!

你可能感兴趣的:(oracle,password,风格,的,是)