《Oracle PL SQL 编程手册》由会员分享,可在线阅读,更多相关《Oracle PL SQL 编程手册(14页珍藏版)》请在金锄头文库上搜索。
1、Oracle PL/SQL 编程手册1一、SQLPLUS1引言SQL命令以下17个是作为语句开头的关键字:alterdroprevokeauditgrantrollback*commit*insertselectcommentlockupdatecreatenoauditvalidatedeleterename这些命令必须以“;”结尾带*命令句尾不必加分号,并且不存入SQL缓存区。SQL中没有的SQL*PLUS命令这些命令不存入SQL缓存区definepause#delquit$describeremark/disconnectrunacceptdocumentsaveappendeditse
2、tbreakexitshowbtitlegetspoolchangehelpsqlplusclearhoststartcolumninputtimingcomputelistttitleconnectnewpageundefinecopy-2数据库查询数据字典TAB用户创建的所有基表、视图和同义词清单DTAB构成数据字典的所有表COL用户创建的基表的所有列定义的清单CATALOG用户可存取的所有基表清单select*fromtab;describe命令描述基表的结构信息describedeptselect*fromemp;selectempno,ename,jobfromemp;select*
3、fromdeptorderbydeptnodesc;逻辑运算符=!=或=.05*salorderbycomm/saldesc;日期型数据的运算addtwodaysto6-Mar-876-Mar-87+2=8-Mar-87addtwohoursto6-Mar-876-Mar-87+2/24=6-Mar-87and2hrsadd15secondsto6-Mar-876-Mar-87+15/(24*60*60)=6-Mar-87and15secs列名的别名selectenameemployeefromempwheredeptno=10;(别名:employee)selectename,sal,com
4、m,comm/salC/SRATIOfromempwherecomm.05*salorderbycomm/saldesc;SQL命令的编辑listorl显示缓冲区的内容list4显示当前SQL命令的第4行,并把第4行作为当前行,在该行号后面有个*。changeorc用新的内容替换原来在一行中第一次出现内容SQLc/(.)/(analyst)/inputori增加一行或多行appendora在一行后追加内容del删除当前行删除SQL缓冲区中的当前行run显示并运行SQL缓冲区中的命令/运行SQL缓冲区中的命令edit把SQL缓冲区中的命令写到操作系统下的文本文件,并调用操作系统提供的编辑器执行修
5、改。-3数据操纵数据的插入insertintodeptvalues(10,accounting,newyork);insertintodept(dname,deptno)values(accounting,10);从其它表中选择插入数据insertintoemp(empno,ename,deptno)selectid,name,departmentfromold_empwheredepartmentin(10,20,30,40);使用参数insertintodeptvalues(&deptno,&dname,&loc);执行时,SQL/PLUS对每个参数将有提示用户输入参数对应日期型或字符型数
6、据时,可在参数上加引号,输入时就可不用引号insertintodeptvalues(&deptno,&dname,&loc);插入空值(NULL)insertintodeptvalues(50,education,null);插入日期型数据日期型数据缺省格式:DD-MON-YYinsertintoemp(empno,ename,hiredate)values(7963,stone,07-APR-87);系统时间:SYSDATEinsertintoemp(empno,ename,hiredate)values(7600,kohn,SYSDATE);数据更新updateempsetjob=mana
7、gerwhereename=martin;updateempsetjob=marketrepwhereename=salesman;updateempsetdeptno=40,job=marketrepwherejob=salesman;数据删除deleteempwhereempno=765;更新的提交commit自动提交方式setautocommiton如果状态设为开,则使用inesrt,update,delete会立即提交。更新取消rollback两次连续成功的commit之间的操作,称为一个事务-4创建基表、视图创建基表createtabledept(deptnonumber(2),dn
8、amechar(14),locchar(13);数据字典会自动更新。一个基表最多254列。表名列名命名规则:限制第一个字符必须是字母,后面可任意(包括$#_但不能是逗号)。名字不得超过30个字符。唯一某一用户的基表名必须唯一,不能是ORACLE的保留字,同一基表的列名互不相同。使用双引号如果表名用双引号括起来,则可不满足上述规则;只有使用双引号,才能区别大、小写;命名时使用了双引号,在以后的操作也必须使用双引号。数据类型:char(n)(不得超过240字符)number(n,d)datelong(最多65536字符)raw(二进制原始数据)空值处理有时要求列值不能为空createtablede
9、pt(deptnonumber(2)notnull,dnamechar(14),locchar(13);在基表中增加一列altertabledeptadd(headcntnumber(3);修改已有列属性altertabledeptmodifydnamechar(20);注:只有当某列所有值都为空时,才能减小其列值宽度。只有当某列所有值都为空时,才能改变其列值类型。只有当某列所有值都为不空时,才能定义该列为notnull。例:altertabledeptmodify(locchar(12);altertabledeptmodifylocchar(12);altertabledeptmodify
10、(dnamechar(13),locchar(12);创建视图createviewmanagersasselectename,job,salfromempwherejob=manager;为视图列名取别名createviewmydept(person,title,salary)asselectename,job,salfromempwheredeptno=10;withcheckoption选项使用withcheckoption,保证当对视图插入或更新数据时,该数据必须满足视图定义中select命令所指定的条件。createviewdept20asselectename,job,sal,deptnofromempwheredeptno=20withcheckoption;