您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > les09_创建和管理表
Copyright©OracleCorporation,2001.Allrightsreserved.创建和管理表9-2Copyright©OracleCorporation,2001.Allrightsreserved.目标通过本章学习,您将可以:•描述主要的数据库对象。•创建表。•描述各种数据类型。•修改表的定义。•删除,重命名和清空表。9-3Copyright©OracleCorporation,2001.Allrightsreserved.常见的数据库对象对象描述表基本的数据存储集合,由行和列组成。视图从表中抽出的逻辑上相关的数据集合。序列提供有规律的数值。索引提高查询的效率同义词给对象起别名9-4Copyright©OracleCorporation,2001.Allrightsreserved.命名规则表名和列名:•必须以字母开头•必须在1–30个字符之间•必须只能包含A–Z,a–z,0–9,_,$,和#•必须不能和用户定义的其他对象重名•必须不能是Oracle的保留字9-5Copyright©OracleCorporation,2001.Allrightsreserved.CREATETABLE语句•必须具备:–CREATETABLE权限–存储空间•必须指定:–表名–列名,数据类型,尺寸CREATETABLE[schema.]table(columndatatype[DEFAULTexpr][,...]);9-6Copyright©OracleCorporation,2001.Allrightsreserved.引用其他用户的表•其他用户定义的表不在当前用户的方案中•应该使用用户名座位前缀,引用其他用户定义的对象9-7Copyright©OracleCorporation,2001.Allrightsreserved.DEFAULT选项•插入时为一个列指定默认值•字符串,表达式,或SQL函数都是合法的•其它列的列名和伪列是非法的•默认值必须满足列的数据类型定义...hire_dateDATEDEFAULTSYSDATE,...9-8Copyright©OracleCorporation,2001.Allrightsreserved.•语法•确认创建表CREATETABLEdept(deptnoNUMBER(2),dnameVARCHAR2(14),locVARCHAR2(13));Tablecreated.DESCRIBEdept9-9Copyright©OracleCorporation,2001.Allrightsreserved.Oracle数据库中的表•用户定义的表:–用户自己创建并维护的一组表–包含了用户所需的信息•数据字典:–由OracleServer自动创建的一组表–包含数据库信息9-10Copyright©OracleCorporation,2001.Allrightsreserved.SELECTtable_nameFROMuser_tables;SELECT*FROMuser_catalog;查询数据字典•查看用户定义的各种数据库对象•查看用户定义的表,视图,同义词和序列SELECTDISTINCTobject_typeFROMuser_objects;•查看用户定义的表.9-11Copyright©OracleCorporation,2001.Allrightsreserved.数据类型数据类型描述VARCHAR2(size)可变长字符数据CHAR(size)定长字符数据NUMBER(p,s)可变长数值数据DATE日期型数据LONG可变长字符数据,最大可达到2GCLOB字符数据,最大可达到4GRAWandLONGRAW裸二进制数据BLOB二进制数据,最大可达到4GBFILE存储外部文件的二进制数据,最大可达到4GROWID行地址9-13Copyright©OracleCorporation,2001.Allrightsreserved.日期数据类型数据类型描述TIMESTAMP时间撮INTERVALYEARTOMONTH若干年月INTERVALDAYTOSECOND若干天到秒Oracle9i对日期的改进:•加入了新的日期型数据类型.•有效的存储新数据类型.•提高对时区和本地时区的支持.9-14Copyright©OracleCorporation,2001.Allrightsreserved.日期数据类型•TIMESTAMP数据类型是对DATE数据类型的扩展•按DATE数据类型存放年,月,日,小时,分钟,秒以及微秒甚至纳秒•TIMESTAMP数据类型的一般形式:TIMESTAMP[(fractional_seconds_precision)]9-15Copyright©OracleCorporation,2001.Allrightsreserved.TIMESTAMPWITHTIMEZONE•TIMESTAMPWITHTIMEZONE是一个带有时区的TIMESTAMP•时区部分按照小时和分钟显示本地时区与UTC的时差TIMESTAMP[(fractional_seconds_precision)]WITHTIMEZONE9-16Copyright©OracleCorporation,2001.Allrightsreserved.TIMESTAMPWITHLOCALTIME•TIMESTAMPWITHLOCALTIMEZONE是一种带有本地时区的TIMESTAMP•数据库按照数据库的本地时区存放数据•时区不显示在数据后面,Oracle自动将数据转换为用户所在的时区•TIMESTAMPWITHLOCALTIMEZONE的一般形式TIMESTAMP[(fractional_seconds_precision)]WITHLOCALTIMEZONE9-17Copyright©OracleCorporation,2001.Allrightsreserved.INTERVALYEARTOMONTH数据•INTERVALYEARTOMONTH存放若干年和若干月的一个时间段。INTERVALYEAR[(year_precision)]TOMONTHINTERVAL'123-2'YEAR(3)TOMONTHIndicatesanintervalof123years,2months.INTERVAL'123'YEAR(3)Indicatesanintervalof123years0months.INTERVAL'300'MONTH(3)Indicatesanintervalof300months.INTERVAL'123'YEARReturnsanerror,becausethedefaultprecisionis2,and'123'has3digits.9-18Copyright©OracleCorporation,2001.Allrightsreserved.INTERVALDAYTOSECOND数据•INTERVALDAYTOSECOND存放若干天到若干秒的一个时间段INTERVALDAY[(day_precision)]TOSECOND[(fractional_seconds_precision)]INTERVAL'45:12:10.222'DAYTOSECOND(3)Indicates4days,5hours,12minutes,10seconds,and222thousandthsofasecond.INTERVAL'123'YEAR(3).INTERVAL'7'DAYIndicates7days.INTERVAL'180'DAY(3)Indicates180days.9-19Copyright©OracleCorporation,2001.Allrightsreserved.INTERVALDAYTOSECOND数据•INTERVALDAYTOSECOND存放若干天到若干秒的一个时间段INTERVAL'45:12:10.222'DAYTOSECOND(3)Indicates4days,5hours,12minutes,10seconds,and222thousandthsofasecond.INTERVAL'45:12'DAYTOMINUTEIndicates4days,5hoursand12minutes.INTERVAL'4005'DAY(3)TOHOURIndicates400days5hours.INTERVAL'11:12:10.2222222'HOURTOSECOND(7)indicates11hours,12minutes,and10.2222222seconds.9-20Copyright©OracleCorporation,2001.Allrightsreserved.使用子查询创建表•时候用ASsubquery选项,将创建表和插入数据结合起来•指定的列和子查询中的列要一一对应•通过列名和默认值定义列CREATETABLEtable[(column,column...)]ASsubquery;9-21Copyright©OracleCorporation,2001.Allrightsreserved.使用子查询创建表举例DESCRIBEdept80CREATETABLEdept80ASSELECTemployee_id,last_name,salary*12ANNSAL,hire_dateFROMemployeesWHEREdepartment_id=80;Tablecreated.9-22Copyright©OracleCorporation,2001.Allrightsreserved.ALTERTABLE语句使用ALTERTABLE语句可以:•追加新的列•修改现有的列•为新追加的列定义默认值•删除一个列9-23Copyright©OracleCorporation,2001.Allrightsreserved.ALTERTABLE语句使用ALTERTABLE语句追加,修改,或删除列的语法.ALTERTABLEtableADD(columndatatype[DEFAULTexpr][,columndatatype]...);ALTERTABLEtableMODIFY(columndatatype[DEFAULTexpr][,columndatatype]...);ALTERTABLEtableDROP(column);9-24Copyright©OracleCorporation,2001.Allrightsreserved.追加一个新列DEPT80追加一个新列DEPT80新列9-25Copyright©OracleCorporation,2001.Allrightsreserved.追加一个新列•使用ADD子句追加一个新列•新列是表中的最后一列ALTERTABLEdept80ADD(job_idVARCHAR2(9));Tablealtered.9-26Copyright©OracleCorporation,2001.Allrightsreserved.修改一个列•可以修改列的数据类型,尺寸,和默认值•对默认值的修改只影响今后对表的修改ALTERTABLEdept80MODIFY(last_nameVARCHAR2(30));Tablealtered.9-27Copyright©OracleCorporation,2001.Allrightsreserved.删除一个列使用DROPCOLUMN子句删除不再需要的列.ALTERTABLEdept80DROPCOLUMNjob_id;Tablealtered.9-28Copyright©OracleCorporation,2001.Allrightsreserved.ALTERTABLEtableSETUNUSED(column);ALTERTABLEtableSETUNUSEDCOLUMNcolumn;SETU
本文标题:les09_创建和管理表
链接地址:https://www.777doc.com/doc-1060060 .html