1 2 3 4

配置文件和sqlplus简单使用

oracle简单配置文件

数据文件目录

D:\app\inmeditation\oradata\orcl

  • 以.CTL结尾得的文件是数据库的控制文件
  • 以.LOG结尾的是数据库日志文件
  • 以.DBF结尾的是数据文件,真正存储数据

监听器文件listener.ora

D:\app\inmeditation\product\11.2.0\dbhome_1\NETWORK\ADMIN

# listener.ora Network Configuration File: D:\app\inmeditation\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\inmeditation\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\inmeditation\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\inmeditation\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\inmeditation\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = sunlizhao)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = D:\app\inmeditation

ADR_BASE_LISTENER = D:\app\inmeditation --数据库安装的基础目录

HOST解释
刚安装完成后此处可能是计算机名称,
如果连接时提示没有监听器可以改成localhost,可以正常使用
此处改成ip,别的计算机就可以访问你的数据库了

本地网络名称/数据库连接串

# tnsnames.ora Network Configuration File: D:\app\inmeditation\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

SCOTT =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

sqlplus简单使用

连接数据库

不登录进入sqlplus窗口

C:\Users\inmeditation>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 12月 12 21:26:28 2019
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
SQL>

登录scott用户(默认登录本地用户)

SQL> conn scott/"scott"
已连接。

登录远程数据库
sqlplus 用户名/"密码"@ip:port/数据库实例名

SQL> conn scott/"scott"@192.168.0.142:1521/orcl
已连接。

PLSQL Developer软件中登录远程数据库

Username:scott
Password:scott
Database:192.168.0.142:1521/orcl

sqlplus简单使用

简单查询

SQL> select
  2  empno,
  3  ename,
  4  sal
  5  from emp;

     EMPNO ENAME                       SAL

l/L查看上一个执行的命令

SQL> L
  1  select
  2  empno,
  3  ename,
  4  sal
  5* from emp

/ 执行上一个语句

SQL> /

     EMPNO ENAME                       SAL

n命令
n是一个自然数,让光标指向上一个语句的第n行

SQL> l
  1  select
  2  empno,
  3  ename,
  4  sal
  5* from emp
SQL> 2
  2* empno,
SQL> 4
  4* sal

a命令
append的缩写,追加.
在光标当前行的末尾增加内容
首先执行n命令,让光标到第4行,然后在后面写,comm,deptno

SQL> 4
  4* sal
SQL> a ,comm,deptno
  4* sal,comm,deptno
SQL> l
  1  select
  2  empno,
  3  ename,
  4  sal,comm,deptno
  5* from emp

c命令
change,替换
替换光标当前行的内容
c /源字符串/新的字符串

SQL>  2
  2* empno,
SQL> c /,/ 编号,
  2* empno 编号,
SQL> l
  1  select
  2  empno 编号,
  3  ename,
  4  sal,comm,deptno
  5* from emp

desc 查看表结构

SQL> desc emp;
 名称            是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 EMPNO             NOT NULL NUMBER(4)
 ENAME             VARCHAR2(10)
 JOB               VARCHAR2(9)
 MGR               NUMBER(4)
 HIREDATE          DATE
 SAL               NUMBER(7,2)
 COMM              NUMBER(7,2)
 DEPTNO            NOT NULL NUMBER(2)

sqlplus简单设置

一般set设置,show显示

set heading on|off 是|否显示表头

SQL> set heading off
SQL> select * from dept;

        10 ACCOUNTING                   NEW YORK
        20 RESEARCH                     DALLAS
        30 SALES                        CHICAGO
        40 OPERATIONS                   BOSTON

set feedback on|off 是否显示页尾

SQL> select * from emp;
...
已选择16行。

SQL> set feedback off
SQL> /
...
SQL>

set pagesize
每一页显示多少行数据

SQL> show pagesize
pagesize 14
SQL> set pagesize 22
SQL>

set linesize
每一行显示多少字符

SQL> show linesize
linesize 80
SQL> set linesize 300
SQL>

设置能在sqlplus中执行plsql代码

SQL> show serveroutput
serveroutput OFF
SQL> set serveroutput on
SQL>

col设置

设置每一列显示的长度

如果比列名长度短没有效果

SQL> select sal from emp where deptno=10;

       SAL
----------

      2450
      5000
      1300

SQL> col sal for 9999
SQL> select sal from emp where deptno=10;

  SAL
-----

 2450
 5000
 1300

显示小数后两位

SQL> col comm for 9999.99
SQL> select comm from emp where deptno=30;

    COMM
--------
  300.00
  500.00
 1400.00

     .00

显示$符号和¥符号

SQL> col comm for $9999.99
SQL> /

     COMM
---------
  $300.00
  $500.00
 $1400.00

     $.00

SQL> col comm for L9999.99
SQL> /

              COMM
------------------
          ¥300.00
          ¥500.00
         ¥1400.00

             ¥.00

设置字符串显示长度
a6表示显示长度为6个字符的长度

SQL> col ename for a6
SQL> select ename from emp where deptno=10;

ENAME
------
june
CLARK
KING
MILLER

批处理命令

spool命令,将sql语句的执行结果保存到一个文件中

语法

spool命令
sql语句
spool off

SQL> spool D:\1122\test\c.txt
SQL> select empno,ename
  2  from emp where deptno=30;

     EMPNO ENAME
---------- --------------------
      7499 ALLEN
      7521 WARD
      7654 MARTIN
      7698 BLAKE
      7844 TURNER
      7900 JAMES

已选择6行。

SQL> spool off
c.txt
  
SQL> spool D:\1122\test\c.txt
SQL> select empno,ename
  2  from emp where deptno=30;
 EMPNO ENAME

  7499 ALLEN
  7521 WARD
  7654 MARTIN
  7698 BLAKE
  7844 TURNER
  7900 JAMES

已选择6行。

SQL> spool off

静默登录

sqlplus -S 表示静默登录sqlplus

C:\Users\inmeditation>sqlplus -S scott/scott
spool D:\1122\test\f.txt
select empno,ename
from emp where deptno=30;

     EMPNO ENAME
---------- --------------------
      7499 ALLEN
      7521 WARD
      7654 MARTIN
      7698 BLAKE
      7844 TURNER
      7900 JAMES

已选择6行。

spool off
f.txt
  
 EMPNO ENAME                                                                

  7499 ALLEN                                                                
  7521 WARD                                                                 
  7654 MARTIN                                                               
  7698 BLAKE                                                                
  7844 TURNER                                                               
  7900 JAMES                                                                

已选择6行。

发现在此基础上再进行设置不显示页首和页尾,即可只显示数据

set heading off
set feedback off
spool D:\1122\test\g.txt
select empno,ename
from emp where deptno=30;

      7499 ALLEN
      7521 WARD
      7654 MARTIN
      7698 BLAKE
      7844 TURNER
      7900 JAMES
spool off
g.txt
  
  7499 ALLEN                                                                
  7521 WARD                                                                 
  7654 MARTIN                                                               
  7698 BLAKE                                                                
  7844 TURNER                                                               
  7900 JAMES                                                                

save命令 将缓冲区的sql语句保存到文件中

语法:
save file_name[replace|create|append]

  • create
    • 表示创建一个file_name文件,并将缓冲区中的内容保存到该文件中,该选项为默认选项
  • replace
    • 表示如果file_name已经存在,则覆盖file_name文件的内容,如果文件不存在,则创建该文件
  • append
    • 表示如果file_name已经存在,则在file_name文件中追加内容,如果文件不存在,则创建该文件
SQL> select empno,ename
  2  from emp where deptno=30;

     EMPNO ENAME
---------- --------------------
      7499 ALLEN
      7521 WARD
      7654 MARTIN
      7698 BLAKE
      7844 TURNER
      7900 JAMES

已选择6行。

SQL> save D:\1122\test\c.sql
已创建 file D:\1122\test\c.sql
c.sql
  
select empno,ename
from emp where deptno=30
/
SQL> select * from emps;
select * from emps
              *
第 1 行出现错误:
ORA-00942: 表或视图不存在


SQL> save D:\1122\test\c.sql append
已将 file 附加到 D:\1122\test\c.sql
SQL>
c.sql
  
select empno,ename
from emp where deptno=30
/
select * from emps
/

运行sql脚本

sql脚本一般保存为.sql格式

通过 @脚本名称 或者start 脚本名称来执行脚本

SQL> @ D:\1122\test\d.sql
select * from emps
              *
第 1 行出现错误:
ORA-00942: 表或视图不存在
SQL> start D:\1122\test\d.sql
select * from emps
              *
第 1 行出现错误:
ORA-00942: 表或视图不存在
posted @ 2019-12-12 21:15  多走多看  阅读(786)  评论(0)    收藏  举报