




已阅读5页,还剩555页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ORACLE8I数据库基础初稿赵元杰2001年12月7日前言本讲稿ORACLE8I数据库基础是作者在多年的工作和授课中的总结,主要包括两个部分,第一部分是ORACLESQLPLUS基础,主要讲述ORACLE应用系统设计的基本知识和给出一些有用的实例;第二部分是介绍ORACLEPL/SQL知识,主要讲述ORACLE数据库PL/SQL程序设计所用到基本知识,这部分给出进行应用设计所必需的基础知识。这两部分的内容都尽可能做到内容简洁而全面。特点是,1用简单明了的语句对解释各个部分的内容,省去一些理论性的解释;2给出作者在应用设计和开发中的一些具体的例子,为软件人员提供一些借鉴,省去查阅大量资料的时间。3给出了许多资料所没有提供的一些使用技巧,如导出触发器等。总之,内容基本上包括当前ORACLE8I的最新内容。同时也覆盖了最新的ORACLE8IOCP培训大纲的内容。不仅包含ORACLE程序设计人员、DBA所必须掌握的知识,而且还含盖了系统分析员所要求的内容。与本书(讲稿)相伴的还有ORACLE8I初级管理员和ORACLE8I高级管理员。全书内容简练实用,可作为ORACLE数据库管理人员参考,也可作为应用开发人员和系统分析与设计人员以及大学计算机专业教学的参考资料。由于作者水平所限,加之ORACLE的产品与内容的浩瀚,在资料的整理与收集中可能有不少错误和不妥之处,希望读者给予批评制正。目录第一部分ORACLESQLPLUS基础21第一章ORACLE数据库基础2111理解关系数据库系统(RDBMS)21111关系模型21112CODD十二法则2212关系数据库系统(RDBMS)的组成22121RDBMS内核22122数据字典概念2213SQL、SQLPLUS及PL/SQL23131SQL和SQLPLUS的差别23132PL/SQL语言2514登录到SQLPLUS25141UNIX环境25142WINDOWSNT和WINDOWS/2000环境2715常用SQLPLUS附加命令简介30151等录到SQLPLUS30152EXIT和QUIT30153DESCRIBE显示表、视图结构31154LIST命令31155CHANGE改变字符串命令32156APPEND在末尾追加字符串命令32157SAVE保存当前缓冲区命令到文件33158GET将命令文件读到缓冲区33159SPOOL将信息记录到文件中341510在运行当前缓冲区的命令3416常用数据字典简介3517ORACLE数据类型3618SQL语句基础42181SQL语句所用符号42182简单SELECT查询4319伪列及伪表44110使用SQLWORKSHEET工作44第二章查询基础4821SELECT语句4822SQL中的单记录函数48221单记录字符函数48222单记录数字函数54223单记录日期函数60224单记录转换函数63225其它的单记录函数6623SQL中的组函数71231多记录组函数71232带GROUPBY的计算73233用HAVING来限制分组的计算7324控制和格式化输出74241用ORDERBY子句来对结果进行排序74242用BREAK命令来对结果进行排列74243用COMPUTE命令对结果进行格式化7725配置会话环境80251ARRAYSIZE(取回的行数)80252AUTOCOMMIT自动提交81253LINESIZE行显示宽度81254LONG长类型显示字节数81255PAGESIZE页行数81256PAUSE暂停82257SPACE列间空格82258TERMOUT启/停屏幕显示82259ECHO启/停命令显示822510TRANSACTION启动事务8326格式化输出83261一般数据的格式化输出83262日期的格式化输出8427加标题8528建立简单报告86第三章表及索引的定义操作8731建立表结构87311建立表结构命令87312建立表结构例子8933修改表结构90331修改表结构命令90332修改表结构例子91333删除表结构93334使用CHECK作限制约束93335使用UNRECOVERABLE创建表94336将表移动到新的数据段或新的表空间94337手工分配表的存储空间96338标记不使用的列和删除不使用的列9633主键98331创建主键98332改变主键100333删除主键10134外部键101341建立外部键102342修改外部键103343删除外部键10435索引104351建立索引104352修改索引105353删除索引10636新索引类型107361基于函数的索引107362反向键索引108363索引组织表(INDEX_ORGANIZEDTABLE)10937抽象数据类型的使用10938大数据类型的使用110381可用数据类型110382为LOB数据类型指定存储111383操作和检索LOB数据112第四章视图、同义词和序列11641视图116411使用视图来修改表中数据116412创建一个新视图116413删除一个视图117414改变视图11842实体视图MATERIALIZEDVIEW119421创建实体视图119422创建实体视图日志124423修改实体视图126424修改实体视图日志12843序号SEQUENCE128431建立序号128432修改序号129433使用序号130434删除序号13044同义词130441建立同义词130442删除同义词131第五章簇与分区13351簇CLUSTER133510簇概念133511建立簇134512改变簇137513删除簇137514删除簇索引138515收集簇信息13852分区139521ORACLE8分区的优点139522分区的方法140523创建表的分区140523创建索引的分区145524维护表分区和索引分区148第六章使用SQL进行数据操作14961INSERT操作149611用文字插入操作150612用子查询插入操作15062UPDATE操作151621用文字更新操作152622用查询更新操作152623用相关子查询更新操作15363DETELE操作153631用DELETE删除全部记录的操作153632用DELETE有条件删除部分记录154633用DELETE分段删除大量记录15464INSERT、DELETE及UPDATE的提交和撤消155641自动提交的设置155642保留点和撤消156第七章复杂查询语句的使用15971复杂查询语句的使用159711相关子查询159712外连接159713UNION,INTERSECT及MINUS16072用SQLPLUS建立简单报表16173创建复杂的视图162731分组视图163732合计视图163733组合视图16374家族树164741排除单一体和分枝164742编历至根16575在FROM中使用视图166第八章一些高级的用法16881关于DECODE168811DECODE中的IFTHENELSE逻辑168812DECODE的简单例子168813DECODE实现表的转置16882关于访问远程数据库171821数据库链接172822使用同义词获得本地透明173823在视图中使用USER伪列173824使用COPY功能175825管理ORACLE名称服务器17683关于上下文的使用176831设置上下文选项176832为上下文查询设置表177833优化文本索引179第九章安全管理18091CREATEUSER命令18092建立用户181921外部验证(AUTHENTICATED)用户181922全局GLOBALLY验证用户企业验证18193ALTERUSER命令18294DROPUSER命令18295GRANT命令与REVOKE命令183951GRANT命令183952REVOKE命令18396权限和角色184961建立角色184962给角色授权185963授权角色给用户18697有关的数据字典186第十章其它一些常见问题及技巧187101其它一些问题1871011ORACLE与2000年问题1871012在查询中只需返回满足条件的部分记录1881013快速大量删除数据TRUNCATE1881014ROWID的使用1881015在查询中不让记录被更新1891016EXCEPTIONS(违反完整性)问题1891017NOTIN和NOTEXISTS1901018SET语句1901019关于COPY命令19110110使用PRODUCT_USER_FILE来限制用户使用产品192102常用技巧1931021LONG类型的查询1931022如何确定执行时间1931023如何终止用户会话1941024用TRANSLATE对数据加密和解密1951025如何用查询来修改数据1971026如何产生创建用户的脚本1971027如何产生创建表结构的脚本1981028如何产生创建视图的脚本2001029如何产生创建序号的脚本200第二部分ORACLEPL/SQL基础202第十一章PL/SQL程序设计简介202111概述202112SQL与PL/SQL2021121什么是PL/SQL2021121PL/SQL的好处20311211有利于客户/服务器环境应用的运行20311212适合于客户环境20311213客户及服务器端的好处2031122PL/SQL可用的SQL语句204113运行PL/SQL程序204114PL/SQL内置包205第十二章PL/SQL块结构和组成元素206121PL/SQL结构206122PL/SQL块207123标识符207124PL/SQL变量类型2081241变量类型2081242复合类型(记录和表)20912421记录类型2091243使用ROWTYPE2111244LOB类型2111245用户定义的子类型2121246数据类型的转换214125运算符和表达式数据定义2141251关系运算符2141252一般运算符2151253逻辑运算符215126变量赋值2161261字符及数字运算特点2161262BOOLEAN赋值2161263数据库赋值2171264可转换的类型赋值217127变量作用范围以可见性219128注释219129简单例子2201291简单数据插入例子2201292简单数据删除例子221第十三章PL/SQL处理流程221131条件语句221132循环222133标号和GOTO225134NULL语句226第十四章光标的使用226141光标概念2261411处理显式光标2271412处理隐式光标228142光标循环2291421简单循环2291422WHILE循环2301423光标FOR循环2311424关于NO_DATA_FOUND和NOTFOUND2311425SELECTFORUPDATE光标232143光标变量2331431声明光标变量2331432为光标变量分配存储空间2331433打开光标变量2331434关闭光标变量2341435光标变量例子2341436光标变量236第十五章错误处理238151异常处理概念2381511预定义的异常处理2391512触发异常情态2391513处理异常情态2401514用户定义的异常处理241152异常情态传播2431521在执行部分引发异常情态2431522在声明部分引发异常情态243153异常处理编程244154在PL/SQL中使用SQLCODE,SQLERRM245第十六章存储过程和函数247161引言247162存储过程2471621创建过程2471622使用过程2481623开存储过程步骤24916231编辑存储过程源码25016232对存储过程程序进行解释25016233调试源码直到正确25016234授权执行权给相关的用户或角色2501624与过程相关数据字典251163创建函数251164过程和函数中的例外处理2531641使用系统定义的例外处理25316411没有例外处理的缺点25316412使用预定义的例外处理2531642使用用户定义的例外处理25616421定义的用户例外处理25616422使用户EXCEPTION_INIT处理25716423使用户RAISE_APPLICATION_ERROR处理257第十七章创建包和使用包258171引言258172包的定义258173包的开发步骤259174包的头部说明260175包体的说明260176删除过程、函数和包272177包的管理2731771包有关的数据字典2731772包中无效对象的查询和编译2741773包源代码的导出275第十八章触发器276181触发器类型2761811DML触发器2761812替代触发器2761813系统触发器276182创建触发器2771821创建DML触发器2771822创建替代INSTEAD_OF触发器2781823创建系统触发器2791824触发器触发次序2811825使用触发器谓词281183删除和使能触发器282184变异表2821831变异表典型例子2831832变异表错误的处理285185触发器数据字典与管理2861851触发器数据字典2861852无效触发器的编译287第十九章外部存储过程289191什么是外部例程289192C外部例程2891921调用步骤2901922参数映射转换295193JAVA外部例程297第二十章会话间通信298201DBMS_PIPE2982011发送消息3022012接收消息3032013示例304202DBMS_ALTER319203比较DBMS_PIPE和DBMS_ALTER321第二十一章数据库作业和文件I/O322211数据库作业3222111后台进程3222112运行作业3222113失效作业3242114删除作业3252115修改作业参数3262116与作业参数有关数据字典328212文件I/O3292121安全性3292122打开和关闭文件3292123文件输出3312123文件输入3322124文件操作例子333第二十二章在PL/SQL使用SQL语句333221在PL/SQL使用DML语句333222伪列335223GRANT,REVOKE和权限3362231对象和系统权限3362232GRANT和REVOKE337224事务控制3372241COMMIT和ROLLBACK3372242保留点SAVEPOINT338225在PL/SQL中使用SQL函数3392251错误处理函数3402252数字函数340第二十三章PL/SQL程序的测试和调试341231问题诊断3412311调试指南3412312显示在编译产生的错误341232插入测试表342233DBMS_OUTPUT的使用342234PL/SQL调试器3432341PROCEDUREBUILDER调试器3442342SQLSTATION调试器344235程序设计方法3442351模块化程序设计3442352自顶向下设计3442353数据抽象345第二十四章性能及其它问题346241共享池3462411共享池工作原理3462412估计共享池大小3472413将PL/SQL驻留在共享池中348242SQL语句调整349243网络问题352244在PL/SQL中查询单条记录352245PL/SQLWRAP转换器3532451运行WRAP实用程序3532452输入和输出文件353246DBMS_OUTPUT的使用354第二十五章对象类型356251对象类型定义3562511定义对象类型头3562512定义对象类型体3562513定义对象类型例子3572514初始化对象类型3582515使用对象类型359252对象类型修改360253对象类型删除361第二十六章动态PL/SQL简介363261概述3632611静态和动态SQL3632612DBMS_SQL概述363262执行非DML和DDL语句3652621打开光标3652622分析语句3652623联编输入变量3662624执行语句3682625关闭光标3682626示例3682627执行DDL语句369263执行PL/SQL371264使用PL/SQL执行任意内置过程371265PL/SQL80功能3712651分析大型SQL串372266将LONG写入FILE文件中372267权限和DBMS_SQL372第二十七章大型对象和DBMS_LOB包372271LOB类型一般使用3722711LOB类型存储3722712临时LOB类型3732713LOB类型的接口373第二十八章PL/SQL包374附录ASQL及SQLPLUS命令参考374FOUND374ISOPEN375NOTFOUND376ROWCOUNT376ROWTYPE377TYPE378379“AT”SIGN379379ABS380ACCEPT380ACOS381ADD_MONTHS381ALTERCLUSTER382ALTERDATABASE382ALTERFUNCTION383ALTERINDEX384ALTERPACKAGE384ALTERPROCEDURE385ALTERPROFILE385ALTERRESOURCECOST386ALTERROLE387ALTERROLLBACKSEGMENT387ALTERSEQUENCE387ALTERSESSION388ALTERSNAPSHOT389ALTERSNAPSHOTLOG390ALTERSYSTEM390ALTERTABLE391ALTERTABLESPACE392ALTERTRIGGER392ALTERTYPE393ALTERUSER394ALTERVIEW395ANALYZE395APPEND396ASCII396ASIN397ATAN397ATAN2398AUDIT398AVG399BFILENAME399BLOCK400BTITLE401CEIL402CHANGE403CHARTOROWID403CHR404CLEAR404CLOSE405COLUMN405COMMENT406COMMIT407COMPUTE407CONCAT408CONCATENATE408CONNECTBY409CONVERT409COPY410COS411COSH411COUNT412CREATECLUSTER412CREATECONTROLFILE413CREATEDATABASE414CREATEDATABASELINK415CREATEPROFILE415CREATEDIRECTORY416CREATEFUNCTION416CREATEINDEX417CREATELIBRARY418CREATEPACKAGE418CREATEPACKAGEBODY419CREATEPROCEDURE421CREATEROLE422CREATEROLLBACKSEGMENT422CREATESCHEMA423CREATESEQUENCE424CREATESNAPSHOT424CREATESNAPSHOTLOG425CREATESYNONYM426CREATETABLE426CREATETABLESPACE428CREATETRIGGER429CREATETYPE430CREATETYPEBODY431CREATEUSER431CREATEVIEW432CURRVAL433CURSOR_ALREADY_OPEN433DATATYPE434DATATYPECHAR434DATATYPEDATE435DATATYPEFLOAT435DATATYPELONG435DATATYPELONGRAW436DATATYPEMLSLABEL436DATATYPENUMBER436DATATYPERAW437DATATYPEROWID437DATATYPEVARCHAR437DATATYPEVARCHAR2437DECLARE438DECODE438DEFINE439DEL439DELETE440DEREF441DESCRIBE441DROPCLUSTER442DROPDATABASELINK442DROPDIRECTORY443DROPFUNCTION443DROPINDEX443DROPLIBRARY444DROPPACKAGE444DROPPROCEDURE445DROPPROFILE445DROPROLE446DROPROLLBACKSEGMENT446DROPSEQUENCE447DROPSNAPSHOT447DROPSNAPSHOTLOG447DROPSYNONYM448DROPTABLE448DROPTABLESPACE449DROPTRIGGER449DROPTYPE450DROPTYPEBODY450DROPUSER451DROPVIEW451DUMP452DUP_VAL_ON_INDEX452EDIT453EMPTY_BLOB453EMPTY_CLOB454EXCEPTIONINITPRAGMA454EXECUTE455EXISTS455EXIT456EXIT457EXITWHEN457EXP458EXPLAINPLAN458FETCH459FLOOR460FORLOOP460FORMAT461FORMATDATE461FORMATNUMBER462GET462GLB463GOTO463GRANT464GREATEST465GREATEST_LB465HEXTORAW466HOST466IFTHEN467IFTHENELSE467IFTHENELSEIF468INITCAP469INPUT469INSERT470INSTR470INSTRB471INTERSECT472INVALID_CURSOR472INVALID_NUMBER473KEYWORDS474LABELS475LAST_DAY476LEAST476LEAST_LB477LENGTH477LENGTHB477LIKE478LIST479LN480LOCKTABLE480LOG481LOGIN_DENIED481LOOP482LOWER483LPAD483LTRIM484LUB484MAKE_REF485MAX485MIN486MINUS486MOD487MONTHS_BETWEEN487NEW_TIME488NEXT_DAY489NEXTVAL489NLS_CHARSET_DECL_LEN490NLS_CHARSET_ID490NLS_CHARSET_NAME491NLS_INITCAP491NLS_LOWER492NLS_UPPER492NO_DATA_FOUND493NOAUDIT494NOT_LOGGED_ON494NULL495NVL496OPEN496OPENFOR497OPERATOR497OPERATOR498OPERATOR498OPERATOR499OPERATOR499OPERATOR500OPERATOR501OPERATOR501OPERATOR/502OPERATOR下发SETPAUSEON命令。由于SQLPLUS命令较多,下面仅给出最常用的几个命令的说明,详细的请参考附录。151等录到SQLPLUS可以用下面命令登录退出SQLPLUS,SQLPLUS命令的简单语法如下SQLPLUSLOGON|STARTLOGON可以是USERNAME/PASSWORDCONNECT_IDENTIFIER|/ASSYSOPER|SYSDBA|/NOLOG注1SQLPLUS主要是在命令方式下使用,在NT、WINDOWS/2000、UNIX的用法都一样。注2如果在UNIX下,SQLPLUS命令不被识别(不存在),则问题在环境变量PATH没有设置正确或者没有设置。SQLPLUS可执行程序在ORACLE_HOME/BIN目录下。152EXIT和QUIT可以用EXIT或QUIT来终止SQLPLUS的操作(会话)。语法如下EXIT|QUITSUCCESS|FAILURE|WARNINGEXIT|QUIT可以用EXIT或QUIT,目前它们的功能一样。SUCCESS正常退出FAILURE带提示错误代码的退出WARNING带提示警告代码的退出COMMIT退出前将未提交进行保存例如SQLEXIT153DESCRIBE显示表、视图结构DESCRIBE可以用只要用DESC即可来显示表、视图的列的定义,也可以显示同义词、函数或存储过程的说明。语法如下DESCRIBESCHEMAOBJECTCONNECT_IDENTIFIERSCHEMA用户名,如果省去,则为对象的所有者。OBJECT可以是表(TABLE),视图(VIEW),类型(TYPE),存储过程(PROCEDURE),函数(FUNCTION),包(PACKAGE)或同义词(SYNONYM)CONNECT_IDENTIFIER数据库连接字串例显示EMP表的结构SQLDESCEMP154LIST命令可以用LIST命令来列出当前SQL缓冲区中的一行或多行命令语句。LISTN|NM|N|NLAST|N|LAST|LASTN列出第N行NM列出N到M行N列出第N行到当前行NLAST列出第N行到最末行列出所有行N列出当前行到第N行LAST列出当前行到最末行LAST列出最末行例SQLLIST1SELECTENAME,DEPTNO,JOB2FROMEMP3WHEREJOBCLERK4ORDERBYDEPTNO155CHANGE改变字符串命令可以用CHANGE命令来改变字符串(即替换字符串)。语法如下CHANGESEPCHAROLDSEPCHARNEWSEPCHARSEPCHAR为分隔符,可以是”/”或”请使用者特别注意OLD旧字串NEW新字串例将除号/改为乘号(),则需要命令为C/。即SQLL1SELECTSAL,SAL/100FROMEMPSQLC/提醒对于修改/字符的只能用来作分隔符上例。例将乘号()改为加号(),则需要命令为C/。即SQLL1SELECTSAL,SAL100FROMEMPSQLC/1SELECTSAL,SAL100FROMEMPSQL156APPEND在末尾追加字符串命令可以用APPEND命令来完成在当前行的末尾追加字符串。语法如下APPENDTEXTTEXT所要求追加的字符串例在当前行SELECTSAL,SAL100FROMEMP后加WHERESAL2000,则SQLL1SELECTSAL,SAL100FROMEMPSQLAWHERESAL20001SELECTSAL,SAL100FROMEMPWHERESAL2000SQL157SAVE保存当前缓冲区命令到文件可以用SAVE命令将当前的命令行保存到操作系统的文件中。语法如下SAVEFILENAMEEXTCREATE|REPLACE|APPEND其中FILENAME你将把缓冲区中的内容存入到操作系统目录的文件名。EXT若使用文件后缀,缺省的文件后缀为SQL。例SQLSELECTTABLE_NAMEFROMDICTWHERETABLE_NAMELIKEROLESQLSAVECGET_ROLE158GET将命令文件读到缓冲区可以用GET命令将操作系统的目录下的命令文件读到缓冲区(但不执行)。语法如下GETFILENAMEEXTLIST|NOLIST其中FILENAME希望加载到SQL缓冲区的文件名EXT文件的扩展名,缺省为SQL例SQLGETCGET_ROLE159SPOOL将信息记录到文件中ORACLE的SPOOL命令可以实现将屏幕所出现的一切信息记录到操作系统的文件中直到SPOOLOFF为止。语法如下SPOOLFILENAMEEXT|OFF|OUT其中FILENAME你想输出(SPOOL)的文件名。EXT文件的后缀。缺省的后缀是LST(或LIS)。SQLCOLTABLE_NAMEFORA20SQLCOLCIMMNETSFORA80SQLSETLINESIZE110SQLSPOOLCALL_DICTSQLSELECTTABLE_NAME,COMMNETSFROMDICT系统查询信息SQLSPOOLOFF1510在运行当前缓冲区的命令在SQL方式下,如果希望在运行当前的命令,可用RUN或R或用/来实现,如SQLSETLIN120SQLSELECTTABLE_NAMEFROMDICTWHERETABLE_NAMELIKEROLETABLE_NAMEDBA_ROLESDBA_ROLE_PRIVSUSER_ROLE_PRIVSROLE_ROLE_PRIVSROLE_SYS_PRIVSROLE_TAB_PRIVSSESSION_ROLES已选择7行。SQLL1SELECTTABLE_NAMEFROMDICTWHERETABLE_NAMELIKEROLESQL/TABLE_NAMEDBA_ROLESDBA_ROLE_PRIVSUSER_ROLE_PRIVSROLE_ROLE_PRIVSROLE_SYS_PRIVSROLE_TAB_PRIVSSESSION_ROLES已选择7行。16常用数据字典简介ORACLE提供许多内部数据字典,用以管理系统的各种信息和参数(即数据库对象),下面列出几个常用的数据字典供初学者参考,其它方面的数据字典将在DBA管理中介绍。ORACLE数据字典的命名说明USER为前缀记录用户的所有对象信息ALL为前缀记录包括USER记录和授权给PUBLIC或该用户的所有对象的信息。DBA为前缀记录关于数据库对象(非用户对象)的信息。V公共系统动态视图,用于系统优化和调整参考V_动态性能视图你可用CATALOGSQL建立动态视图建立同义词。GV新ORACLE8的附加的固定视图GLOBALV在并行环境下反应的是V视图的信息。如SELECTFROMGVLOCKWHEREINST_ID2ORINST_ID5返回的是INSTANCES2和5的V的信息。所以GV反应一组INSTANCES的参数GV视图的限制是参数PARALLEL_MAX_SERVERS必须大于0。详见ORACLEENTERPRISEMANAGERADMINISTRATORSGUIDE注请注意下面的总结一般DBA_的视图内容都包含USER_和ALL_为前缀的视图;DBA_为前缀的视图的内容基本上是大写;以V_为前缀的视图的内容基本上是小写。1USER_TABLESTABS用户的所有表的信息。2USER_TAB_COLUMNS(COLS)有关各表的列(字段)的信息3USER_VIEWS用户的所有视图4USER_SYNONYMS(SYN)用户同义词5USER_SEQUENCESSEQ用户序列6USER_CONSTRAINTS记录在数据库时常用于检查数据有何限制。7USER_TAB_COMMENTS表的注释。如COMMENTONTABLEEMPIS职工表8USER_COL_COMMENTS列(字段)注释。如COMMENTONCOLUMNEMPENAMEIS姓名9USER_INDEXESIND用户索引的简要信息10USER_IND_COLUMNS用户索引的列信息11USER_TRIGGERS用户触发器信息12USER_SOURCE用户存储过程13USER_TABLESPACE用户可以使用的表空间信息14USER_TS_QUOTAS用户使用系统资源的信息15USER_SEGMENTS用户对象所使用空间信息16USER_EXTENTS用户的扩展段信息17USER_OBJECTS用户对象USER_TABLESUSER_VIEWSUSER_INDEXESUSER_SOURCEUSER_TRIGGERS18USER_PART_TABLES用户分区信息19USER_TAB_PARTITIONS20USER_PART_COL_STATISTICS21USER_IND_PARTITIONS22USER_FREE_SPACE23CATUSER_CATALOG用户可以访问的所有的基表。24TAB用户创建的所有基表,视图,同义词等。25DICT(DICTIONARY)构成数据字典的所有表的信息。提示虽然ORACLE提供可以用COMMENTONCOLUMNTABLENAMECOLUMNISXXXX等来实现对表或列进行注释,但不建议设计者采用这样的工作方式。而建议将注释写到脚本中更为直观。17ORACLE数据类型ORACLE数据库的数据类型与其它的数据库系统相比,它的数据类型不多,ORACLE在表示数据方面比其他数据库系统来说要省去许多关键字。ORACLE只用NUMBERM,N就可以表示任何负责和精度的数据。其它如日期类型等也简单得多,只DATE就表示日期和时间。下面以列表形式给出各个版本的ORACLE系统数据类型的表示方法。下面给出ORACLE旧版本的数据类型的目的是让读者了解ORACLE的变化,另外就是你在对旧版本进行升级或数据转换时要注意各个版本的差别。ORACLE5、ORACLE6数据类型数据类型说明CHAR可变长字符型,254VARCHAR2可变长字符型,2000NUMBERM,N数字类型,含整数、小数等DATE日期型,含时间,缺省格式为MMMDDYYYYHHMISS(占7字节)LONG存储大型可变长字符串,2GBRAW存储短二进制串,2GBLONGRAW存储长二进制串,2GBORACLE7数据类型数据类型说明CHAR定长字符,255个字符VARCHAR变长字符,2000个字符VARCHAR2变长字符,2000个字符NUMBERM,N数字类型,含整数、浮点、双精度等LONG存储大型可变长字符串,2GBRAW存储可变短二进制数,2000LONGRAW存储大型可变长二进制数,2GBORACLE8/8I数据类型数据类型说明CHAR定长字符,2000个字符VARCHAR(同VARCHAR2)可变字符,2000个字符VARCHAR2变长字符,2000个字符DATE固定长度(7字节)的日期型NUMBER数字型,可存放实型和整型LONG可变字符,2GB个字符RAW可变二进制数据,4000字节LONGRAW可变二进制数据,2GBMLSLABEL仅TRUSTEDORACLE用长度在25字节间BLOB大二进制对象,4GBCLOB大字符串对象,4GBNCLOB多字节字符集的CLOB,4GBBFILE外部二进制文件,大小由OS决定CHAR定长字符型(在ORACLE5、ORACLE6是变长),字符长度不够自动在右边加空格符号。当字符长度超出2000个则错误。不指定大小缺省为1。VARCHAR可变字符型,当前与VARCHAR2相同。VARCHAR2可变字符型,当前与VARCHAR相同。VARCHAR2类型的字段(列)可存放4000个字符;但是VARCHAR2变量可以存放32,767个字符。大小必须指定。NCHAR和NVARCHAR2NCHAR和NVARCHAR2分别与CHAR和VARCHAR2有相同的大小。并用于于存放NATIONALLANGUAGESUPPORTNLS数据,ORACLE允许以本地语言存放数据和查询数据。如果将列名声明成NCHAR、NVARCHAR2这样的类型,则INSERT和SELECT等语句中的具体值前加N,不能直接按照普通字符类型进行操作。看下面例子SQLCREATETABLENCHAR_TSTNAMENCHAR6,ADDRNVARCHAR216,SALNUMBER9,2表已创建。SQLINSERTINTONCHAR_TSTVALUESN赵元杰,N北京市海淀区,999999已创建1行。SQLSELECTFROMNCHAR_TSTWHERENAMELIKEN赵NAMEADDRSAL赵元杰北京市海淀区999999SQLSELECTFROMNCHAR_TSTWHERENAMELIKE赵SELECTFROMNCHAR_TSTWHERENAMELIKE赵ERROR位于第1行ORA12704字符集不匹配提示虽然ORACLE可以使用NCHAR,NVARCHAR2类型来存放字符数据,但建议设计者不要使用NCHAR和NVARCHAR2。因为CHAR和VARCHAR2就能存放汉字。NUMBER,是数据的整数,是数据的精度(即小数)部分,注意,部分可以表示负的精度。用可以表示从小数点往右或往左保留多少位。如下表实际值数据类型存储值123456789NUMBER123456789123456789NUMBER81234568123456789NUMBER6出错123456789NUMBER9,112345679123456789NUMBER9,3出错123456789NUMBER7,2出错123456789NUMBER5,21234600123451189NUMBER5,21234500123456789NUMBER5,41230000123456789NUMBER,112345679SALNUMBER7,2,表示5位整数,2位小数DATEORACLE的日期型用7个字节表示,每个日期型包含如下内容CENTURYYEARMONTHDAYHOURMINUTESECOND日期型字段有下面特点日期型字段的插入和更新可以数据型或字符并带TO_DATE函数说明即可。缺省的日期格式有NLS_DATE_FORMAT参数控制,它的缺省格式为DDMONYY。缺省的时间是夜里000000即0点0分0秒。SYSDATE返回的是服务器的时间,见下面例子。日期格式的显示可以设置,见下面例子。日期型可以运算,见下面例子。见下面例子。世纪用CC表示;年用YYYY表示,月用MM表示,日用DD表示,小时用HH24表示,分用MI表示,秒用SS表示。例子SQLCREATETABLESAVE_INFOPER_IDVARCHAR220,NAMEVARCHAR220,TRAN_DATEDATE,2TRAN_VALNUMBER12,2表已创建。SQLINSERTINTOSAVE_INFOVALUES110105540609811,赵元杰,2TO_DATE20010618,YYYYMMDD,1234566已创建1行。SQLSELECTFROMSAVE_INFOPER_IDNAMETRAN_DATETRAN_VAL110105540609811赵元杰186月011234566SQLSELECTPER_ID,NAME,TO_CHARTRAN_DATE,YYYY/MM/DD,TRAN_VALFROMSAVE_INFOPER_IDNAMETO_CHARTRTRAN_VAL110105540609811赵元杰2001/06/181234566SQLSHOWPARAMETERNLS_DATE_FORMATNAMETYPEVALUENLS_DATE_FORMATSTRINGSQLALTERSESSIONSETNLS_DATE_FORMAT2“公元“YYYY“年“MM“月“DD“日“会话已更改。SQLSELECTSYSDATEFROMDUALSYSDATE公元2001年05月18日SQLSELECTTO_CHARSYSDATE,CCYYYYMMDDFROMDUALTO_CHARSYSDA2120010518关于日期型的使用方法详细请参考ORACLE8INATIONALLANGUAGESUPPORTGUIDE。BLOB大二进制对象,每条记录可存储达4GB的数据,详细见后面章节。CLOB大字符对象,每条记录可存储达4GB的数据,详细见后面章节。BFILE外部二进制文件,每条记录可存储达4GB的数据(与OS有关),详细见后面章节。RAW非结构的二进制数据,这些数据不被数据库系统解释。RAW可以存储达2,000字节。LONGRAW大的二进制类型数据,LONGRAW是非结构的二进制数据,这些数据不被数据库系统解释。LONGRAW可以存储达2GB字节。LONGRAW不能被索引,而RAW可以被索引。ROWIDROWID在ORACLE数据库中是一个虚的列,即系统用的特殊的列,不是我们建立的列。属于用于对数据库中的每条记录进行定位。详细见“ROWID的使用”章节。UROWIDUROWID是UNIVERSALROWID的意思。即全球ROWID,它支持逻辑和物理ROWID,也作为外部表的(通过GETWAY访问的非ORACLE表)的ROWID。UROWID类型可以存储所有的ROWID类型的数据。TYPE类型的匹配BOOKS_PRINTEDNUMBER6;BOOKS_SOLDBOOKS_PRINTEDTYPE;BOOKS_SOLD的数据类型与BOOK_PRINTED的类型一致;TYPE类型在PL/SQL中介绍。空值与字符型、数字型的运算NULLNULL(空值数字仍是空值)NULLNULL(空值与数字比较结果为空值)NULL|字符串字符串NUMBER类型与以下类型具有同等的值域DECDECIMALDOUBLEPRECISIONFLOATINTEGERINTNUMERICREALSMALLINT提示虽然ORACLE可以使用上面的子数据类型,但建议还是采用NUMBERN,M为好。因为如果使用子数据类型定义字段类型不当,可能引起数据在运算方面的问题。LONG数据类型的限制SELECT中可以用LONG;UPDATE中可以用SELECT子句;INSERT中可以用VALUS子句;每个表只能允许一个LONG列;LONG列不能列出完整性约束(NULL、NOTNULL除外);LONG列不能被索引;过程或存储函数不能接收LONG型函数;存储函数不能返回LONG型值。LONG目前不能出现在以下情况中SELECT中的WHERE,GROUPBY,ORDERBY,CONNECTBY,DISTINCT;不能对LONG列作SUBSTR,INSTR;表达式或条件;子查询或集合中不能用LONG;CREATETABLEASSELECT中不能用LONG;18SQL语句基础181SQL语句所用符号操作符用途例子表示正数或负数,正数可省去123456将两个数或表达式进行相加ACB将两个数或表达式进行相减3412将两个数或表达式进行相乘1234/除以一个数或表达式1811NULL空值判断WHERENAMEISNULL|字符串连接101|TEL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国舌下免疫治疗行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国自动呼叫分配软件行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国胶原蛋白行业市场深度调研及竞争格局与投资研究报告
- 2025-2030年中国胃食管反流病药物及器械行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国股票投资组合管理软件行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国肉禽行业市场深度分析及前景趋势与投资机会研究报告
- 2025-2030年中国网络金融行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国网店行业发展分析及投资风险预警与发展策略研究报告
- 2025-2030年中国绿色超级米行业市场发展分析及发展趋势与投资风险研究报告
- 2025-2030年中国纸巾产品行业市场现状供需分析及投资评估规划分析研究报告
- 暗挖开挖技术交底
- 语言学概论知到课后答案智慧树章节测试答案2025年春湖州师范学院
- 2025年中国万寿菊干花颗粒行业市场发展前景及发展趋势与投资战略研究报告
- 盐城吉电绿氢制储运加用一体化(一期)示范项目报告书
- 2025年离婚协议书模板模板
- 学校环境对儿童成长的影响研究
- 2024年湖北省生态环保有限公司招聘33人笔试参考题库附带答案详解
- 2025年陕西汉水电力实业(集团)有限责任公司招聘笔试参考题库附带答案详解
- 第15课《青春之光》课件-2024-2025学年统编版语文七年级下册
- 2025年起重装卸机械操作工(天车)职业技能理论考试题库资料-下(多选、判断题)
- 2025年中考历史总复习-讲练测-主题17 常考图片识记(中国古代史)
评论
0/150
提交评论