美文网首页
SQL之 SQL*PLUS

SQL之 SQL*PLUS

作者: 白璞1024 | 来源:发表于2019-03-17 21:32 被阅读0次

    1、SQLplus安装(windows版本)

    1. Oracle官网,点击链接进入界面,先接受协议选择Accept License Agreement

    2. 下载解压这两个文件 instantclient-basic-windows.x64-18.5.0.0.0dbru.zipinstantclient-sqlplus-windows.x64-18.5.0.0.0dbru.zip 到同一个路径下(我的路径为E:\ProgrameFile\OraClient\)

    3. 在解压目录下能看到 instantclient_18_5(当然也可能不是18版本的)找到sqlplus.exe运行。

    4. 尝试登陆 打开一个命令提示框,显示Enter user-name:在后边直接输入数据库配置路径登陆远程数据库

      1. username/password@ip:port/数据库名
      2. 实例如下test/test@172.16.111.11:1521/TESTDB
      3. 如果不能登陆成功可能需要关闭防火墙之类的。
    5. 配置环境变量 为了不用每次都到E:\ProgrameFile\OraClient\instantclient_18_5地址下寻找sqlplus.exe将;E:\ProgrameFile\OraClient\instantclient_18_5;存入环境变量,放环境变量的方法自己百度

    6. 配置环境变量之后测试: WIN+R键 输入cmd进入命令行,输入sqlplus将会提示输入用户名

    7. 设置在tnsnames文件用来方便登陆 E:\ProgrameFile\OraClient\下新建文件夹效果效果为:E:\ProgrameFile\OraClient\network\admin admin文件夹下创建tnsnames.ora文件。

    8. tnsnames.ora文件内容为

      # 将来要用的名称
      TESTDB =
        (DESCRIPTION =
          (ADDRESS_LIST =
          #这里的ip和端口号就是你数据库的ip和端口号
            (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.111.11)(PORT = 1521))
          )
          (CONNECT_DATA =
           # TESTDB就是服务名称
            (SERVICE_NAME = TESTDB)
          )
        )
      
    9. 我们在命令行中输入sqlplus提示需要输入用户名,我们输入test/test@TESTDB提示登陆成功

    10. 如果已经登陆数据库,又需要连接其他的数据库的时候,我们只需要执行如下代码

      1. SQL> connect username/password @Orale net名称
        

    2、 使用sqlplus

    2.1 编辑命令

    • Append text追加文本,执行完一句话,在上一句追加内容的时候,Append text

      SQL> SELECT * FROM USER;  
      --第一句执行查询查看会所有的,但是数据太多了,想加一句按年龄排序
      SQL> Append   order by age;--注意append之后要有两个空格,如果只有一个的话,就直接拼接到上一句话后头了
      1* SELECT * FROM USER order by age;
      --执行完上面的语句后返回拼接后的语句但是还没有执行,需要再输入一个/来执行
      SQL> /
      
      
    • Change /old text/new textc 修改字段

       SQL> append order by name;
        1* select * from userorder by name
       SQL> change /userorder /user order -------这里修改了字段
         1* select * from user orderby name
       SQL> /
       select * from user orderby name
       
      
    • Del n删除行

      SQL> select * from user  --输入第一句
        2  where a ='1';       --输入第二句
      
      --完成后删除第一句
      SQL> del 1
      SQL> /           --执行以下删除后的代码
      where a ='1'     --执行语句只有第二句了
      *
      ERROR at line 1:
      ORA-00900: invalid SQL statement
      
    • clear buffer 清空缓存区

      SQL> clear buffer --清空缓存区
      buffer cleared   
      SQL> del 1       --刚才还有一行,继续删除
      SP2-0026: No lines to delete.    --发现那一行没有了
      
    • INPUT text添加语句

      • 和append比较类似
      • 区别就是append是在末尾添加,input是添加行对象,新添加了一行
    • LIST[n/LAST/]显示缓存区

      SQL> list
        1  select * from test
        2*
      SQL> list last/
        2*
      SQL> list 1
        1* select * from test
      

    2.2 使用SQL*PLUS保存命令

    1. 通过记事本保存缓存区域的内容

      SQL> ed

      这个时候会打开一个文本框,可以通过另存为保存到本地

    2. 通过save file_name保存缓存区域的内容

      SQL> save test
      Created file test.sql
      --这个文件就被保存到 C:\Users\lenovo\test.sql下
      SQL> save F:\test.sql
      Created file F:\test.sql
      --这个时候,就被保存到了F盘下边
      

    2.3 使用sql*plus运行命令

    1. run命令运行语句 执行缓存中的命令
    2. start file_name;运行本地文件中的命令

    2.4 使用sql*plus格式化查询结果

    如果列比较多的话,查询出来的结果将会乱七八糟,基本上没有什么可看性。为了清晰的展示查询结果,可以使用如下的查询命令

    1. column oldname HEADING newname / column column_name FORMAT dateformat

      • 第一种如下代码块,第二种就是为了格式化数字日期之类的,懒得试了
      
      SQL> select trans_id from transInfo where trans_id like 'O%';
      
      TRANS_ID
      --------------------
      OB19031416051530
      OF18121210215789
      OG18092714532836
      OG18121211201665
      OK18101713321692
      OK19031516254537
      OP18091318471077
      OR18091211091572
      OV19031513481437
      OW19022116273295
      OX19011709530439
      
      11 rows selected.
      
      SQL> column trans_id HEADING 交易id;--将头信息进行修改
      SQL> select trans_id from transInfo where trans_id like 'O%';
      
      交易id
      --------------------
      OB19031416051530
      OF18121210215789
      OG18092714532836
      OG18121211201665
      OK18101713321692
      OK19031516254537
      OP18091318471077
      OR18091211091572
      OV19031513481437
      OW19022116273295
      OX19011709530439
      
      11 rows selected.
      
      
    2. SET语句

      1. SET PAGESIZE设置每页显示行数;
      2. SET NEWPAEG; 设置两个新页面之间的空行数;
      3. SET LINESIEZE;显示每行显示的字符数量;
      4. SET TIMING ON/OFF设置语句执行的时间;
      5. SET HEADING ON/OFF设置是否显示头信息 ;
      6. SET PEEDBACK ON/OFF设置是否显示已选行数
      7. 以上set改为show不加参数就是显示,show pagesize /show newpage
    3. SPOOL语句

      spool F:\test.sql ; --保存输出结果的文件名, 文件名的扩展可以写成.sql
      -- sql语句
      select * from test;
      spool off; --只有执行这句话的时候才会把查询结果写入文件
      
      spool F:\test2.sql ; --保存输出结果的文件名, 文件名的扩展可以写成.sql
      -- sql语句
      @C:\tset.sql;--执行文件
      spool off; --只有执行这句话的时候才会把查询结果写入文件
      

      • set term on/off 如果是on的话就显示查询结果,如果是off的话就不显示查询结果

      • ttitle title这个用来查看本地文件的-主要是为了看文件是否写入成功了

    相关文章

      网友评论

          本文标题:SQL之 SQL*PLUS

          本文链接:https://www.haomeiwen.com/subject/pcypmqtx.html