网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

sqlplus使用技巧集锦(上)

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

【网学网提醒】:网学会员为需要朋友们搜集整理了sqlplus使用技巧集锦(上)相关资料,希望对各位网友有所帮助!


    SQL*PLUS是Oracle提供的一个工具程序,它不仅可以用于测试,运行SQL语句和PL/SQL块,而且还可以用于管理Oracle数据库,
    1.启动sql*plus
    为了使用sql*plus,必须首先要启动sql*plus。Oracle不仅提供了命令行和图形界面的sql*plus,而且还可以在web浏览器中
    运行.
    (1)在命令运行sql*plus
    在命令行运行sql*plus是使用sqlplus命令来完成的,该命令适用于任何操作系统平台,
    语法如下:
    sqlplus[username]/[password][@server]
    如上所示:username用于指定数据库用户名,password用于指定用户口令,server则用于指定主机字符串(网络服务名).
    当连接到本地数据时,不需要提供网络服务名,如果要连接到远程数据库,则必须要使用网络服务名.
    (2)在windows环境中运行sql*plus
    如果在windows环境中安装了oralce数据库产品,那么可以在窗口环境中运行sql*plus
    具体方法:“开始->程序->oracle-oradb10g_home1->applicationdevelopment->sql*plus”
    2.连接命令
    (1)conn[ect]
    该命令用于连接到数据库。注意,使用该命令建立新会话时,会自动断开先前会话,示例如下:
    sql>connscott/yhai1981@demo
    (2)disc[onnect]
    该命令用于断开已经存在的数据库连接。注:该命令只是断开连接会话,而不会退出sql*plus,示例如下:
    sql>disc
    (3)passw[ord]
    该命令用于修改用户的口令。注,任何用户都可以使用该命令修改其自身口令,但如果要修改其他用户的口令时,
    则必须以DBA身份(sys和system)登录,在sql*plus中,当修改用户口令时,可以使用该命令取代sql命令alteruser,
    示例如下:
    sql>passw
    更改scott的口令
    旧口令:******
    新口令:******
    重新键入新口令:******
    口令已更改
    sql>
    (4)exit
    该命令用于退出sql*plus,另外你也可以使用quit命令退出sql*plus.使用该命令不仅会断开连接,而且也会退出sql*plus
    注:默认情况下,当执行该命令时会自动提交事务。
    3,编辑命令
    (1)l[ist]
    该命令用于列出sql缓冲区的内容,使用该命令可以列出sql缓冲某行,某几行或所有行的内容。在显示结果中,数据字为具体
    的行号,而”*”则表示当前行。
    示例一:列出sql缓冲区所有内容
    sql>l
    示例二:列出sql缓冲区首行内容:
    sql>l1
    (2)a[ppend]
    该命令用于在sql缓冲区的当前行尾部添加内容。注:该命令将内容追加到标记为”*”的行的尾部,示例如下:
    以下是引用片段:
    sql>l
    1selectempno,ename,sal,hiredate,comm,deptno
    2fromemp
    3*wheredeptno=10
    sql>aandjob=’CLERK’
    sql>l
    SQL>list
    1selectempno,ename,sal,hiredate,comm,deptno
    2fromemp
    3*wheredeptno=10andjob=’CLERK’
    (3)c[hange]
    该命令用于修改sql缓冲区的内容。如果在编写sql语句时写错了某个词,那么使用该命令可以进行修改,
    以下是引用片段:
    sql>select
    enamefromtempwheredeptno=10;
    SQL>c/temp/emp
    1*selectenamefromempwheredeptno=10
    (4)del
    该命令用于删除sql缓冲区中内容,使用它可以删除某行,某几行或所有行,在默认情况下,当直接执行
    del时,只删除当前行的内容,示例如下:
    以下是引用片段:
    SQL>l
    1selectename
    2fromemp
    3*wheredeptno=20
    sql>del
    SQL>l
    1selectename
    2*fromemp
    如果一次要删除多行,则指定起始行号和终止行号,例如”del35″
    (5)i[nput]
    该命令用于在sql缓冲区的当前行后新增加一行。示例如下:
    以下是引用片段:
    SQL>l
    1selectename
    2*fromemp
    sql>iwheredeptno=30
    如果要在首行前增加内容,则使用”0文本”
    以下是引用片段:
    sql>0createtabletempas
    SQL>l
    1createtabletempas
    2selectename
    3fromemp
    4*wheredeptno=30
    (6)n
    该数值用于定位sql缓冲区的当前行,示例如下:
    (7)edi[t]
    该命令用于编辑sql缓冲区的内容。当运行该命令时,在windows平台中会自动启动”记事本”,以编辑sql缓冲区
    (8)run和/
    run的/命令都可以用于运行sql缓冲区中的sql语句。注:当使用run命令时,还会列出sql缓冲区内容,eg:
    SQL>run
    1*selectenamefromempwheredeptno=20
    4.文件操纵命令
    (1)save
    该命令用于将当前sql缓冲区的内容保存到sql脚本中。当执行该命令时,默认选项为create,即建立新文件。
    eg:
    SQL>savec:\a.sqlcreate
    已创建filec:\a.sql
    当执行命令之后,就会建立新脚本文件a.sql,并将sql缓冲区内容存放到该文件中。如果sql已经存在,使用
    replace选项可以替撚已存在的sql脚本,如果要给已存在的sql脚本追加内容,可以使用append选项。
    (2)get
    该命令与save命令作用恰好相反,用于将sql脚本中的所有内容装载到sql缓冲区中。
    eg:
    SQL>getc:\a.sql
    1*selectenamefromempwheredeptno=20
    (3)start和@
    start和@命令用于运行sql脚本文件。注:当运行sql脚本文件时,应该指定文件路径.eg:
    SQL>@c:\a.sql
    ENAME
    ———-
    SMITH
    JONES
    SCOTT
    ADAMS
    FORD
    (4)@@
    该命令与@命令类似,也可以运行脚本文件,但主要作用是在脚本文件中嵌套调用其它的脚本文件。当使用该命令
    嵌套脚本文件时,可在调用文件所在目录下查找相应文件名。
    (5)ed[it]
    该命令不仅可用于编辑sql缓冲区内容,也可以用于编辑sql脚本文件。当运行该命令时,会启动默认的系统编辑
    器来编辑sql脚本。运行方法为:
    sql>editc:/a.sql
    (6)spool
    该命令用于将sql*plus屏幕内容存放到文本文件中。执行该命令时,应首先建立假脱机文件,并将随后sql*plus
    屏幕的所有内容全部存放到该文件中,最后使用spooloff命令关闭假脱机文件。eg:
    sql>spoolc:\a.sql
    5.格式命令
    sql*plus不仅可以用于执行sql语句、pl/sq
    l块,而且还可以根据select结果生成报表。使用sql*plus的格式命令
    可以控制报表的显示格式,例如使用column命令可以控制列的显示格式,使用ttitle命令可以指定页标题;使用
    btitle命令可以指定页脚注。
    (1)col[umn]
    该命令用于控制列的显示格式。column命令包含有四个选项,其中clear选项用于清除已定义列的显示格式:
    heading选项用于指定列的显示标题;justify选项用于指定列标题的对齐格式(left,center,right);format选项用于
    指定列的显示格式,其中格式模型包含以下一些元素。
    An:设置char,varchar2类型列的显示宽度;
    9:在number类型列上禁止显示前导0;
    0:在number类型列上强制显示前导0;
    $:在number类型列前显示美元符号;
    L:在number类型列前显示本地货币符号;
    .:指定number类型列的小数点位置;
    ,:指定number类型列的千分隔符;
    eg1:使用column设置列显示格式
    sql>colenameheading‘name’formata10
    sql>colsalheading’sal’formatL99999.99
    sql>selectename,sal,hiredatefromemp
    sql>whereempno=7788;
    namesalHIREDATE
    ———-——————-——————-
    SCOTT¥3000.0004/19/198700:00:00
    sql>colenameclear
    sql>colsalclear
    sql>selectename,sal,hiredatefromemp
    sql>whereempno=7788;
    (2)title
    该命令用于指定页标题,页标题会自动显示在页的中央。如果页标题由多个词组成,则用单引号引住。如果要将页
    标题分布在多行显示,则用”|”分开不同单词。如果不希望显示页标题,则使用”ttitleoff”命令,禁止显示,eg:
    SQL>setlinesize40
    SQL>ttitle‘employeereport’
    SQL>selectename,sal,hiredatefromempwhereempno=7788;星期二5月20第1
    employeereport
    ENAMESAL
    ———-———-
    HIREDATE
    ——————-
    SCOTT3000
    04/19/198700:00:00
    (3)btitle
    该命令用于指定页脚注,页脚注会自动显示在页的中央。如果页脚注由多个词组成,则用单引号引注。如果要将页脚注
    分布在多行显示,则用”|”分开不同单词。如果不希望显示页脚注,则使用”btitleoff”命令,禁止显示。eg:
    SQL>btitle‘pageend’
    SQL>selectename,sal,hiredatefromempwhereempno=7788
    ENAMESAL
    ———-———-
    HIREDATE
    ——————-
    SCOTT3000
    04/19/198700:00:00
    pageend
    (4)break
    该命令用于禁止显示重复行,并将显示结果分隔为几个部分,以表现更友好的显示结果,通常应该在orderby的排序列上
    使用该命令。eg:
    SQL>setpagesize40
    SQL>breakondeptnoskip1
    SQL>selectdeptno,ename,salfromemporderbydeptno
    2;
    DEPTNOENAMESAL
    ———-———-———-
    10CLARK2450
    KING5000
    MILLER1300
    20JONES2975
    FORD3000
    ADAMS1100
    SMITH800
    SCOTT3000
    30WARD1250
    TURNER1500
    ALLEN1600
    JAMES950
    BLAKE2850
    MARTIN1250
    6.交互式命令
    如果经常要执行某
    些sql语句和sql*plus命令,可以将这些语句和命令存放到sql脚本中。通过使用sql脚本,
    一方面可以降低命令输入量,另一方面可以避免用户的输入错误。为了使得sql脚本可以根据不同输入获得
    不同结果,需要在sql脚本中包含交互式命令。通过使用交互式命令,可以在sql*plus中定义变量,并且在运行
    sql脚本时可以为这些变量动态输入数据。下面介绍sql*plus的交互命令,以及引用变量所使用的标号。
    (1)&;
    引用替代变量(substitutionvariable)时,必须要带有该标号。如果替代变量已经定义,则会直接使用其数据,
    如果替代变量没有定义,则会临时定义替代变量(该替代变量只在当前语句中起作用),并需要为其输入数据。
    注:如果替代变量为数字列则提供数据,则可以直接引用;如果替代变量为字符类型列或日期类型列提供数据,
    则必须要用单引号引注。eg:
    SQL>selectename,salfromempwheredeptno=&;noandjob=’&;job’;
    输入no的值:20
    输入job的值:CLERK
    原值1:selectename,salfromempwheredeptno=&;noandjob=’&;job’
    新值1:selectename,salfromempwheredeptno=20andjob=’CLERK’
    (2)&;&;
    该标号类似于单个&;标号。但需要注意,&;标号所定义的替代变量只在当前语句中起作用;而&;&;标号所定义的变量
    会在当前sql*plus环境中一直生效。eg:
    SQL>selectename,salfromempwheredeptno=&;&;noandjob=’&;&;job’–定义了no变量
    输入no的值:20
    输入job的值:CLERK
    原值1:selectename,salfromempwheredeptno=&;&;noandjob=’&;&;job’
    新值1:selectename,salfromempwheredeptno=20andjob=’CLERK’
    SQL>selectename,salfromempwheredeptno=&;no;
    原值1:selectename,salfromempwheredeptno=&;no–直接引用no变量
    新值1:selectename,salfromempwheredeptno=20
    ENAMESAL
    ———-———-
    SMITH800
    JONES2975
    SCOTT3000
    ADAMS1100
    FORD3000
    如例所示,当第一次引用no变量时,使用&;&;标号需要为其输入数据;当第二次引用no变量时,
    使用&;标号直接引用其原有值,而不需要输入数据。
    
  • 上一篇资讯: sqlplus使用技巧集锦(下)
  • 下一篇资讯: Sqlplus使用技巧总结
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师