Sqlplus的使用 Tarena High-End IT Training 达内科技公司培训资料_第1页
Sqlplus的使用 Tarena High-End IT Training 达内科技公司培训资料_第2页
Sqlplus的使用 Tarena High-End IT Training 达内科技公司培训资料_第3页
Sqlplus的使用 Tarena High-End IT Training 达内科技公司培训资料_第4页
Sqlplus的使用 Tarena High-End IT Training 达内科技公司培训资料_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Sqlplus的使用 执行一个SQL脚本文件 startfile name file name 常见命令 对当前的输入进行编辑Edit重新运行上一次运行的sql语句 将显示的内容输出到指定文件SPOOLfile name关闭spool输出SPOOLOFF只有关闭spool输出 才会在输出文件中看到输出的内容 COL命令 主要格式化列的显示形式 该命令有许多选项 具体如下 COL UMN column expr option Option选项可以是如下的子句 ALI AS aliasCLE AR FOLD A FTER FOLD B EFORE FOR MAT formatHEA DING textJUS TIFY L EFT C ENTER C ENTRE R IGHT LIKE expr alias NEWL INE NEW V ALUE variableNOPRI NT PRI NT NUL L textOLD V ALUE variableON OFFWRA PPED WOR D WRAPPED TRU NCATED Col的使用 1 4 改变缺省的列标题colLOCheadinglocation将列名ENAME改为新列名EMPLOYEENAME并将新列名放在两行上 COLUMNENAMEHEADING Employee Name 改变列的显示长度 colenameformata40设置列标题的对齐方式JUS TIFY L EFT C ENTER C ENTRE R IGHT colenamejustifycenter不让一个列显示在屏幕上NOPRI NT PRI NT coljobnoprint Col的使用 2 4 格式化NUMBER类型列的显示 COLUMNSALFORMAT 99 999显示列值时 如果列值为NULL值 用text值代替NULL值COMMNUL L textCOLCOMMNUL L text设置一个列的回绕方式WRA PPED WOR D WRAPPED TRU NCATED SQL COLCOL1FORMATA5SQL COLCOL1WRAPPEDCOLCOL1WORD WRAPPED显示列的当前的显示属性值COLUMNcolumn name将所有列的显示属性设为缺省值CLEARCOLUMNS Col的使用 3 4 屏蔽掉一个列中显示的相同的值BREAKONbreak columnBREAKONDEPTNOSELECTDEPTNO ENAME SALFROMEMPWHERESAL 2500ORDERBYDEPTNO 在上面屏蔽掉一个列中显示的相同的值的显示中 每当列值变化时在值变化之前插入n个空行 BREAKONbreak columnSKIPnBREAKONDEPTNOSKIP1显示对BREAK的设置BREAK Col的使用 4 4 删除BREAKS的设置CLEARBREAKS Set命令 该命令包含许多子命令 SETsystem variablevaluesystem variablevalue可以是如下的子句之一 APPI NFO ON OFF text ARRAY SIZE 15 n AUTO COMMIT ON OFF IMM EDIATE n AUTOP RINT ON OFF AUTORECOVERY ON OFF AUTOT RACE ON OFF TRACE ONLY EXP LAIN STAT ISTICS BLO CKTERMINATOR c CMDS EP c ON OFF COLSEP text COM PATIBILITY V7 V8 NATIVE CON CAT c ON OFF COPYC OMMIT 0 n COPYTYPECHECK ON OFF DEF INE c ON OFF DESCRIBE DEPTH 1 n ALL LINENUM ON OFF INDENT ON OFF ECHO ON OFF EDITF ILE file name ext EMB EDDED ON OFF ESC APE c ON OFF FEED BACK 6 n ON OFF FLAGGER OFF ENTRY INTERMED IATE FULL FLU SH ON OFF HEA DING ON OFF HEADS EP c ON OFF INSTANCE instance path LOCAL LIN ESIZE 80 n LOBOF FSET n 1 LOGSOURCE pathname LONG 80 n LONGC HUNKSIZE 80 n MARK UP HTML ON OFF HEADtext BODYtext ENTMAP ON OFF SPOOL ON OFF PRE FORMAT ON OFF NEWP AGE 1 n NONE NULLtextNUMF ORMAT formatNUM WIDTH 10 n PAGES IZE 24 n PAU SE ON OFF text RECSEP WR APPED EA CH OFF RECSEPCHAR c SERVEROUT PUT ON OFF SIZEn FOR MAT WRA PPED WOR D WRAPPED TRU NCATED SHIFT INOUT VIS IBLE INV ISIBLE SHOW MODE ON OFF SQLBL ANKLINES ON OFF SQLC ASE MIX ED LO WER UP PER SQLCO NTINUE text SQLN UMBER ON OFF SQLPRE FIX c SQLP ROMPT SQL text SQLT ERMINATOR c ON OFF SUF FIX SQL text TAB ON OFF TERM OUT ON OFF TI ME ON OFF TIMI NG ON OFF TRIM OUT ON OFF TRIMS POOL ON OFF UND ERLINE c ON OFF VER IFY ON OFF WRA P ON OFF Set的使用 1 设置当前session是否对修改的数据进行自动提交SQL SETAUTO COMMIT ON OFF IMM EDIATE n 2 在用start命令执行一个sql脚本时 是否显示脚本中正在执行的SQL语句SQL SETECHO ON OFF 3 是否显示当前sql语句查询或修改的行数SQL SETFEED BACK 6 n ON OFF 默认只有结果大于6行时才显示结果的行数 如果setfeedback1 则不管查询到多少行都返回 当为off时 一律不显示查询的行数4 是否显示列标题SQL SETHEA DING ON OFF 当setheadingoff时 在每页的上面不显示列标题 而是以空白行代替5 设置一行可以容纳的字符数SQL SETLIN ESIZE 80 n 如果一行的输出内容大于设置的一行可容纳的字符数 则折行显示 6 设置页与页之间的分隔SQL SETNEWP AGE 1 n NONE 当setnewpage0时 会在每页的开头有一个小的黑方框 当setnewpagen时 会在页和页之间隔着n个空行 当setnewpagenone时 会在页和页之间没有任何间隔 7 显示时 用text值代替NULL值SQL SETNULLtext8 设置一页有多少行数SQL SETPAGES IZE 24 n 如果设为0 则所有的输出内容为一页并且不显示列标题9 是否显示用DBMS OUTPUT PUT LINE包进行输出的信息 SQL SETSERVEROUT PUT ON OFF 在编写存储过程时 我们有时会用dbms output put line将必要的信息输出 以便对存储过程进行调试 只有将serveroutput变量设为on后 信息才能显示在屏幕上 10 当SQL语句的长度大于LINESIZE时 是否在显示时截取SQL语句 SQL SETWRA P ON OFF 当输出的行的长度大于设置的行的长度时 用setlinesizen命令设置 当setwrapon时 输出行的多于的字符会另起一行显示 否则 会将输出行的多于字符切除 不予显示 11 是否在屏幕上显示输出的内容 主要用与SPOOL结合使用 SQL SETTERM OUT ON OFF 在用spool命令将一个大表中的内容输出到一个文件中时 将内容输出在屏幕上会耗费大量的时间 设置settermspooloff后 则输出的内容只会保存在输出文件中 不会显示在屏幕上 极大的提高了spool的速度 12 将SPOOL输出中每行后面多余的空格去掉SQL SETTRIMS OUT ON OFF 13 显示每个sql语句花费的执行时间setTIMING ON OFF 14 修改sqlbuffer中的当前行中 第一个出现的字符串C HANGE old value new valueSQL l1 select fromdeptSQL c dept emp1 select fromemp15 编辑sqlbuffer中的sql语句EDI T 16 显示sqlbuffer中的sql语句 listn显示sqlbuffer中的第n行 并使第n行成为当前行L IST n 18 将指定的文本加到sqlbuffer的当前行后面A PPEND SQL selectdeptno 2dname3fromdept SQL L22 dnameSQL a loc2 dname locSQL L1selectdeptno 2dname loc3 fromdept 19 将sqlbuffer中的sql语句保存到一个文件中SAVEfile name20 将一个文件中的sql语句导入到sqlbuffer中GETfile name21 再次执行刚才已经执行的sql语句RUN或 22 执行一个存储过程EXECUTEprocedure name23 在sql plus中连接到指定的数据库CONNECTuser name passwd db alias24 设置每个报表的顶部标题TTITLE25 设置每个报表的尾部标题BTITLE 26 写一个注释REMARK text 27 将指定的信息或一个空行输出到屏幕上PROMPT text 28 将执行的过程暂停 等待用户响应后继续执行PAUSE text Sql PAUSEAdjustpaperandpressRETURNtocontinue 29 将一个数据库中的一些数据拷贝到另外一个数据库 如将一个表的数据拷贝到另一个数据库 COPY FROMdatabase TOdatabase FROMdatabaseTOdatabase APPEND CREATE INSERT REPLACE destination table column column column USINGquerysql COPYFROMSCOTT TIGER HQTOJOHN CHROME WESTcreateemp tempUSINGSELECT FROMEMP 30 不退出sql plus 在sql plus中执行一个操作系统命令 HOSTSql hosthostname该命令在windows下可能被支持 31 在sql plus中 切换到操作系统命令提示符下 运行操作系统命令后 可以再次切换回sql plus sql hostname exitsql 该命令在windows下不被支持 32 显示sql plus命令的帮助HELP显示sql plus系统变量的值或sql plus环境变量的值Syntax SHO W optionALLBTI TLE ERR ORS FUNCTION PROCEDURE PACKAGE PACKAGEBODY TRIGGER VIEW TYPE TYPEBODY schema name LNOPARAMETERS parameter name PNOREL EASE REPF OOTER REPH EADER SGASPOO L SQLCODETTI TLE USER Show的例子 1 显示当前环境变量的值 Showall2 显示当前在创建函数 存储过程 触发器 包等对象的错误信息Showerror当创建一个函数 存储过程等出错时 变可以用该命令查看在那个地方出错及相应的出错信息 进行修改后再次进行编译 3 显示初始化参数的值 showPARAMETERS parameter name 4 显示数据库的版本 showREL EASE 5 显示SGA的大小showSGA6 显示当前的用户名showuser PL Sql 数据方案对象 管理方案对象 编程方案对象 查看方案对象 Oracle的标量数据类型 数据表类型 创建表 CREATETABLE SCOTT DIRECTOR DIRECTOR ID NUMBER 6 NOTNULL NAME VARCHAR2 10 NOTNULL ZHICHENG VARCHAR2 20 NOTNULL ZHIWU VARCHAR2 20 NOTNULL CONSTRAINT 导师编号主码 PRIMARYKEY DIRECTOR ID USINGINDEX CREATETABLE SCOTT STUDENT STUDENT ID NUMBER 8 NOTNULL NAME VARCHAR2 10 NOTNULL PROFESSIONAL VARCHAR2 10 NOTNULL BIRTHDAY DATENOTNULL DIRECTOR ID NUMBER 6 NOTNULL CONSTRAINT 研究生编号主码 PRIMARYKEY STUDENT ID USINGINDEX CONSTRAINT 导师编号外码 FOREIGNKEY DIRECTOR ID REFERENCES SCOTT DIRECTOR DIRECTOR ID 修改表 修改数据类型长度ALTERTABLE SCOTT DIRECTOR MODIFY NAME VARCHAR2 12 修改字段名ALTERTABLE SCOTT DIRECTOR RENAMECOLUMN ZHIWU TO ZHIWU 1 删除列ALTERTABLE SCOTT DIRECTOR DROP ZHIWU CASCADECONSTRAINTS添加列ALTERTABLE SCOTT DIRECTOR ADD REAMRK VARCHAR2 10 NOTNULL 插入数据 INSERTINTO SCOTT DIRECTOR DIRECTOR ID NAME ZHICHENG ZHIWU VALUES 200201 张三丰 博导 系主任 INSERTINTO SCOTT DIRECTOR DIRECTOR ID NAME ZHICHENG ZHIWU VALUES 200202 张翠山 硕导 室主任 INSERTINTO SCOTT DIRECTOR DIRECTOR ID NAME ZHICHENG ZHIWU VALUES 200203 张无忌 硕导 所主任 INSERTINTO SCOTT DIRECTOR DIRECTOR ID NAME ZHICHENG ZHIWU VALUES 200204 宋远桥 博导 系副主任 查询数据 select fromscott student 更新数据 UPDATE SCOTT STUDENT SETDIRECTOR ID 200204WHERESTUDENT ID 20030103 删除数据 DELETEFROM SCOTT STUDENT WHERESTUDENT ID 20030101 truncatetablescott directordropstorage 删除数据表 DROPTABLESCOTT DIRECTORCASCADECONSTRAINTS 创建索引 CREATEINDEX SCOTT INNN ON SCOTT BONUS JOB CREATEINDEX SCOTT 姓名字段索引 ON SCOTT STUDENT NAME TABLESPACE INDX 视图 CREATEORREPLACEVIEW SCOTT STUDENT数据表视图 ASselectstudent id namefromscott studentWITHREADONLY 查询视图 select SCOTT STUDENT数据表视图 STUDENT ID SCOTT STUDENT数据表视图 NAME from SCOTT STUDENT数据表视图 约束条件 ALTERTABLE SCOTT STUDENT ADD CONSTRAINT 研究生编号检查约束条件 CHECK student id 20020101andstudent id 20030909 测试约束 INSERTINTO SCOTT STUDENT STUDENT ID NAME PROFESSIONAL BIRTHDAY DIRECTOR ID VALUES 20010101 纪晓芙 软件工程 TO DATE 15 7月 1971 dd Mon yyyyHH MI SSAM 200201 SQL编程 PL SQL程序结构 定义部分程序部分异常处理部分可以省略 定义常量 declarepiconstantnumber 9 3 1415926 begincommit end 基本数据类型 定义变量 语法declareagenumber 3 26 begincommit end 复合数据变量 typeDeclaremydatetempuser testtable currentdate type begincommit end 记录类型变量 setserveroutputondeclaretypemyrecordisrecord myrecordnumberint mycurrentdatedate srecordmyrecord beginselect intosrecordfromtempuser testtablewhererecordnumber 68 dbms output put line srecord mycurrentdate end rowtype type获取字段的类型 rowtype获取记录的类型Declaremytabletesttable rowtype beginselect intomytablefromtempuser testtablewhererecordnumber 88 dbms output put line mytable currentdate end 定义一维表类型变量 表类型变量与数据表是不同的概念 Declaretypetabletype1istableofvarchar2 4 indexbybinary integer typetabletype2istableoftempuser testtable recordnumber typeindexbybinary integer table1tabletype1 table2tabletype2 begintable1 1 大学 table1 2 大专 table2 1 88 table2 2 55 dbms output put line table1 1 table2 1 dbms output put line table1 2 table2 2 end 多维表类型变量 Declaretypetabletype1istableoftesttable rowtypeindexbybinary integer table1tabletype1 beginselect intotable1 60 fromtempuser testtablewhererecordnumber 60 dbms output put line table1 60 recordnumber table1 60 currentdate end 表类型变量的属性 setserveroutputonDeclaretypetabletype1istableofvarchar2 9 indexbybinary integer table1tabletype1 begintable1 1 成都市 table1 2 北京市 table1 3 青岛市 dbms output put line 总记录数 to char table1 count dbms output put line 第一条记录 table1 first dbms output put line 最后条记录 table1 last dbms output put line 第二条的前一条记录 table1 prior 2 dbms output put line 第二条的后一条记录 table1 next 2 end 数值表达式 setserveroutputonDeclareresultinteger beginresult 10 3 4 20 5 2 dbms output put line 运算结果是 to char result end 字符表达式 关系表达式 关系表达式与SQL中一样 逻辑表达式 函数 if流程控制 setserveroutputondeclarenumber1integer 90 number2integer 60 beginifnumber1 number2thendbms output put line number1大于等于number2 endif end setserveroutputondeclarenumber1integer 80 number2integer 90 beginifnumber1 number2thendbms output put line number1大于等于number2 elsedbms output put line number1小于number2 endif end setserveroutputondeclarenumber1integer 80 number2integer 90 beginifnumber1 number2thenifnumber1 number2thendbms output put line number1等于number2 elsedbms output put line number1小于number2 endif elsedbms output put line number1大于number2 endif end loop setserveroutputondeclarenumber1integer 80 number2integer 90 iinteger 0 beginloopnumber1 number1 1 ifnumber1 number2thenexit elsei i 1 endif endloop dbms output put line 共循环次数 to char i end setserveroutputondeclarenumber1integer 80 number2integer 90 iinteger 0 beginloopnumber1 number1 1 i i 1 exitwhennumber1 number2 endloop dbms output put line 共循环次数 to char i end while setserveroutputondeclarenumber1integer 80 number2integer 90 iinteger 0 beginwhilenumber1 number2loopnumber1 number1 1 i i 1 endloop dbms output put line 共循环次数 to char i end 事务处理 事务的自动提交设置SetautooffRollbackselect fromscott emp deletefromscott emp rollback Savepoint点 insertintoscott emp empno ename sal values 9000 wang 2500 savepointinsertpoint rollbacktoinsertpoint 游标 setserveroutputondeclaretempsalscott emp sal type cursormycursorisselect fromscott empwheresal tempsal begintempsal 800 openmycursor end 打开游标 提取游标数据 setserveroutputondeclaretempsalscott emp sal type cursormycursorisselect fromscott empwheresal tempsal cursorrecordmycursor rowtype begintempsal 800 openmycursor fetchmycursorintocursorrecord dbms output put line to char cursorrecord deptno end 关闭游标 游标属性 isopen属性setserveroutputondeclaretempsalscott emp sal type cursormycursorisselect fromscott empwheresal tempsal cursorrecordmycursor rowtype begintempsal 800 ifmycursor isopenthenfetchmycursorintocursorrecord dbms output put line to char cursorrecord deptno elsedbms output put line 游标没有打开 endif end found属性 setserveroutputondeclaretempsalscott emp sal type cursormycursorisselect fromscott empwheresal tempsal cursorrecordmycursor rowtype begintempsal 800 openmycursor fetchmycursorintocursorrecord ifmycursor foundthendbms output put line to char cursorrecord deptno elsedbms output put line 没有数据 endif end notfound setserveroutputondeclaretempsalscott emp sal type cursormycursorisselect fromscott empwheresal tempsal cursorrecordmycursor rowtype begintempsal 800 openmycursor fetchmycursorintocursorrecord ifmycursor notfoundthendbms output put line to char cursorrecord deptno elsedbms output put line 发现数据 endif end rowcount Setserveroutputondeclaretempsalscott emp sal type cursormycursorisselect fromscott empwheresal tempsal cursorrecordmycursor rowtype begintempsal 800 openmycursor fetchmycursorintocursorrecord dbms output put l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论