配置文件和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
已连接。

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: 表或视图不存在

你可能感兴趣的:(配置文件和sqlplus简单使用)