Oracle公司内部数据库培训资料-Les09-chinese课件_第1页
Oracle公司内部数据库培训资料-Les09-chinese课件_第2页
Oracle公司内部数据库培训资料-Les09-chinese课件_第3页
Oracle公司内部数据库培训资料-Les09-chinese课件_第4页
Oracle公司内部数据库培训资料-Les09-chinese课件_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

创建和管理表创建和管理表目标通过本章学习,您将可以:

描述主要的数据库对象。创建表。描述各种数据类型。修改表的定义。删除,重命名和清空表。目标通过本章学习,您将可以:常见的数据库对象对象 描述表基本的数据存储集合,由行和列组成。视图 从表中抽出的逻辑上相关的数据集合。序列 提供有规律的数值。索引 提高查询的效率同义词 给对象起别名常见的数据库对象对象 描述命名规则表名和列名:必须以字母开头必须在1–30个字符之间必须只能包含A–Z,a–z,0–9,_,$,和#必须不能和用户定义的其他对象重名必须不能是Oracle的保留字命名规则表名和列名:CREATETABLE

语句必须具备:CREATETABLE权限存储空间必须指定:表名列名,数据类型,尺寸CREATETABLE[schema.]table (column

datatype[DEFAULTexpr][,...]);CREATETABLE语句必须具备:CREATETAB引用其他用户的表其他用户定义的表不在当前用户的方案中应该使用用户名座位前缀,引用其他用户定义的对象引用其他用户的表其他用户定义的表不在当前用户的方案中DEFAULT

选项插入时为一个列指定默认值字符串,表达式,或SQL函数都是合法的其它列的列名和伪列是非法的默认值必须满足列的数据类型定义...hire_dateDATEDEFAULTSYSDATE,...

DEFAULT选项插入时为一个列指定默认值...hire语法确认创建表

CREATETABLEdept

(deptno NUMBER(2), dname VARCHAR2(14), loc VARCHAR2(13));Tablecreated.

DESCRIBEdept语法创建表CREATETABLEdept

(deptOracle数据库中的表用户定义的表:用户自己创建并维护的一组表包含了用户所需的信息数据字典:由OracleServer自动创建的一组表包含数据库信息Oracle数据库中的表用户定义的表:

SELECTtable_nameFROM user_tables;SELECT *FROM user_catalog;查询数据字典查看用户定义的各种数据库对象查看用户定义的表,视图,同义词和序列SELECTDISTINCTobject_typeFROM user_objects;查看用户定义的表.SELECTtable_nameSELECT *查询数数据类型数据类型 描述VARCHAR2(size)

可变长字符数据CHAR(size) 定长字符数据NUMBER(p,s)

可变长数值数据DATE

日期型数据LONG

可变长字符数据,最大可达到2GCLOB

字符数据,最大可达到4GRAWandLONGRAW

裸二进制数据BLOB

二进制数据,最大可达到4GBFILE 存储外部文件的二进制数据,最大可达到4GROWID

行地址数据类型数据类型 描述Oracle公司内部数据库培训资料_Les09_chinese课件日期数据类型数据类型 描述TIMESTAMP 时间撮INTERVALYEARTOMONTH 若干年月INTERVALDAYTOSECOND 若干天到秒Oracle9i对日期的改进:加入了新的日期型数据类型.有效的存储新数据类型.提高对时区和本地时区的支持.日期数据类型数据类型 描述Oracle9i日期数据类型TIMESTAMP

数据类型是对DATE

数据类型的扩展按DATE数据类型存放年,月,日,小时,分钟,秒以及微秒甚至纳秒TIMESTAMP

数据类型的一般形式:TIMESTAMP[(fractional_seconds_precision)]日期数据类型TIMESTAMP数据类型是对DATE数据TIMESTAMP

WITH

TIME

ZONETIMESTAMPWITHTIMEZONE

是一个带有时区的TIMESTAMP

时区部分按照小时和分钟显示本地时区与UTC的时差TIMESTAMP[(fractional_seconds_precision)]WITHTIMEZONETIMESTAMPWITHTIMEZONETIMESTTIMESTAMP

WITH

LOCAL

TIMETIMESTAMP

WITH

LOCAL

TIMEZONE

是一种带有本地时区的TIMESTAMP

数据库按照数据库的本地时区存放数据时区不显示在数据后面,Oracle自动将数据转换为用户所在的时区TIMESTAMPWITHLOCALTIMEZONE

的一般形式TIMESTAMP[(fractional_seconds_precision)]WITHLOCALTIMEZONETIMESTAMPWITHLOCALTIMETIMESINTERVAL

YEAR

TO

MONTH

数据INTERVAL

YEAR

TO

MONTH

存放若干年和若干月的一个时间段。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.INTERVALYEARTOMONTH数据INTERINTERVAL

DAY

TO

SECOND

数据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.INTERVALDAYTOSECOND数据INTERINTERVAL

DAY

TO

SECOND

数据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.INTERVALDAYTOSECOND数据INTER使用子查询创建表时候用ASsubquery

选项,将创建表和插入数据结合起来指定的列和子查询中的列要一一对应通过列名和默认值定义列CREATETABLEtable [(column,column...)]ASsubquery;使用子查询创建表时候用ASsubquery选项,将创建使用子查询创建表举例DESCRIBEdept80CREATETABLE dept80AS

SELECTemployee_id,last_name,salary*12ANNSAL,hire_date

FROMemployees

WHEREdepartment_id=80;Tablecreated.使用子查询创建表举例DESCRIBEdept80CREATALTER

TABLE

语句使用ALTER

TABLE

语句可以:追加新的列修改现有的列为新追加的列定义默认值删除一个列ALTERTABLE语句使用ALTERTABLE语ALTER

TABLE

语句使用ALTERTABLE

语句追加,修改,或删除列的语法.ALTERTABLEtableADD (columndatatype[DEFAULTexpr] [,columndatatype]...);ALTERTABLEtableMODIFY (columndatatype[DEFAULTexpr] [,columndatatype]...);ALTERTABLEtableDROP (column);ALTERTABLE语句使用ALTERTABLE语追加一个新列DEPT80追加一个新列DEPT80新列追加一个新列DEPT80追加一个新列DEPT80新列追加一个新列使用ADD

子句追加一个新列新列是表中的最后一列ALTERTABLEdept80ADD (job_idVARCHAR2(9));Tablealtered.追加一个新列使用ADD子句追加一个新列ALTERTAB修改一个列可以修改列的数据类型,尺寸,和默认值对默认值的修改只影响今后对表的修改ALTERTABLE dept80MODIFY (last_nameVARCHAR2(30));Tablealtered.修改一个列可以修改列的数据类型,尺寸,和默认值ALTER删除一个列使用DROPCOLUMN

子句删除不再需要的列.ALTERTABLEdept80DROPCOLUMNjob_id;Tablealtered.删除一个列使用DROPCOLUMN子句删除不再需要的列ALTERTABLE tableSETUNUSED (column);

ALTERTABLEtableSETUNUSEDCOLUMNcolumn;SET

UNUSED

选项使用SETUNUSED

使一个或多个列被标记为不可用使用DROPUNUSEDCOLUMNS

选项删除不可用的列ORALTERTABLEtableDROPUNUSEDCOLUMNS;SETUNUSED选项使用SETUNUSED使一个删除表数据和结构都被删除所有正在运行的相关事物被提交所有相关索引被删除DROPTABLE

语句不能回滚DROPTABLEdept80;Tabledropped.删除表数据和结构都被删除DROPTABLEdept80;改变对象的名称执行RENAME语句改变表,视图,序列,或同义词的名称必须是对象的拥有者RENAMEdeptTOdetail_dept;Tablerenamed.改变对象的名称执行RENAME语句改变表,视图,序列,清空表TRUNCATETABLE

语句:删除表中所有的数据释放表的存储空间TRUNCATE语句不能回滚可以使用DELETE

语句删除数据TRUNCATETABLEdetail_dept;Tabletruncated.清空表TRUNCATETABLE语句:TRUNCATE表的注释使用COMMENT

语句给表或列添加注释可以通过下列数据字典视图查看所添加的注释:ALL_COL_COMMENTSUSER_COL_COMMENTSALL_TAB_COMMENTSUSER_TAB_COMMENTSCOMMENTONTABLEemployeesIS'EmployeeInformation';Commentcreated.表的注释使用COMMENT语句给表或列添加注释COMMEN总结语句 描述CREATETABLE

创建表ALTERTABLE

修改表结构DROPTABLE

删除表RENAME

重命名表TRUNCATE

删除表中的所有数据,并释放存储空间COMMENT

给对象加注释通过本章学习,您已经学会如何使用DDL语句创建,修改,删除,和重命名表.总结语句 描述通过本章学习,您已经学会如何使用DDL语句创建Oracle公司内部数据库培训资料_Les09_chinese课件Oracle公司内部数据库培训资料_Les09_chinese课件Oracle公司内部数据库培训资料_Les09_chinese课件Oracle公司内部数据库培训资料_Les09_chinese课件创建和管理表创建和管理表目标通过本章学习,您将可以:

描述主要的数据库对象。创建表。描述各种数据类型。修改表的定义。删除,重命名和清空表。目标通过本章学习,您将可以:常见的数据库对象对象 描述表基本的数据存储集合,由行和列组成。视图 从表中抽出的逻辑上相关的数据集合。序列 提供有规律的数值。索引 提高查询的效率同义词 给对象起别名常见的数据库对象对象 描述命名规则表名和列名:必须以字母开头必须在1–30个字符之间必须只能包含A–Z,a–z,0–9,_,$,和#必须不能和用户定义的其他对象重名必须不能是Oracle的保留字命名规则表名和列名:CREATETABLE

语句必须具备:CREATETABLE权限存储空间必须指定:表名列名,数据类型,尺寸CREATETABLE[schema.]table (column

datatype[DEFAULTexpr][,...]);CREATETABLE语句必须具备:CREATETAB引用其他用户的表其他用户定义的表不在当前用户的方案中应该使用用户名座位前缀,引用其他用户定义的对象引用其他用户的表其他用户定义的表不在当前用户的方案中DEFAULT

选项插入时为一个列指定默认值字符串,表达式,或SQL函数都是合法的其它列的列名和伪列是非法的默认值必须满足列的数据类型定义...hire_dateDATEDEFAULTSYSDATE,...

DEFAULT选项插入时为一个列指定默认值...hire语法确认创建表

CREATETABLEdept

(deptno NUMBER(2), dname VARCHAR2(14), loc VARCHAR2(13));Tablecreated.

DESCRIBEdept语法创建表CREATETABLEdept

(deptOracle数据库中的表用户定义的表:用户自己创建并维护的一组表包含了用户所需的信息数据字典:由OracleServer自动创建的一组表包含数据库信息Oracle数据库中的表用户定义的表:

SELECTtable_nameFROM user_tables;SELECT *FROM user_catalog;查询数据字典查看用户定义的各种数据库对象查看用户定义的表,视图,同义词和序列SELECTDISTINCTobject_typeFROM user_objects;查看用户定义的表.SELECTtable_nameSELECT *查询数数据类型数据类型 描述VARCHAR2(size)

可变长字符数据CHAR(size) 定长字符数据NUMBER(p,s)

可变长数值数据DATE

日期型数据LONG

可变长字符数据,最大可达到2GCLOB

字符数据,最大可达到4GRAWandLONGRAW

裸二进制数据BLOB

二进制数据,最大可达到4GBFILE 存储外部文件的二进制数据,最大可达到4GROWID

行地址数据类型数据类型 描述Oracle公司内部数据库培训资料_Les09_chinese课件日期数据类型数据类型 描述TIMESTAMP 时间撮INTERVALYEARTOMONTH 若干年月INTERVALDAYTOSECOND 若干天到秒Oracle9i对日期的改进:加入了新的日期型数据类型.有效的存储新数据类型.提高对时区和本地时区的支持.日期数据类型数据类型 描述Oracle9i日期数据类型TIMESTAMP

数据类型是对DATE

数据类型的扩展按DATE数据类型存放年,月,日,小时,分钟,秒以及微秒甚至纳秒TIMESTAMP

数据类型的一般形式:TIMESTAMP[(fractional_seconds_precision)]日期数据类型TIMESTAMP数据类型是对DATE数据TIMESTAMP

WITH

TIME

ZONETIMESTAMPWITHTIMEZONE

是一个带有时区的TIMESTAMP

时区部分按照小时和分钟显示本地时区与UTC的时差TIMESTAMP[(fractional_seconds_precision)]WITHTIMEZONETIMESTAMPWITHTIMEZONETIMESTTIMESTAMP

WITH

LOCAL

TIMETIMESTAMP

WITH

LOCAL

TIMEZONE

是一种带有本地时区的TIMESTAMP

数据库按照数据库的本地时区存放数据时区不显示在数据后面,Oracle自动将数据转换为用户所在的时区TIMESTAMPWITHLOCALTIMEZONE

的一般形式TIMESTAMP[(fractional_seconds_precision)]WITHLOCALTIMEZONETIMESTAMPWITHLOCALTIMETIMESINTERVAL

YEAR

TO

MONTH

数据INTERVAL

YEAR

TO

MONTH

存放若干年和若干月的一个时间段。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.INTERVALYEARTOMONTH数据INTERINTERVAL

DAY

TO

SECOND

数据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.INTERVALDAYTOSECOND数据INTERINTERVAL

DAY

TO

SECOND

数据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.INTERVALDAYTOSECOND数据INTER使用子查询创建表时候用ASsubquery

选项,将创建表和插入数据结合起来指定的列和子查询中的列要一一对应通过列名和默认值定义列CREATETABLEtable [(column,column...)]ASsubquery;使用子查询创建表时候用ASsubquery选项,将创建使用子查询创建表举例DESCRIBEdept80CREATETABLE dept80AS

SELECTemployee_id,last_name,salary*12ANNSAL,hire_date

FROMemployees

WHEREdepartment_id=80;Tablecreated.使用子查询创建表举例DESCRIBEdept80CREATALTER

TABLE

语句使用ALTER

TABLE

语句可以:追加新的列修改现有的列为新追加的列定义默认值删除一个列ALTERTABLE语句使用ALTERTABLE语ALTER

TABLE

语句使用ALTERTABLE

语句追加,修改,或删除列的语法.ALTERTABLEtableADD (columndatatype[DEFAULTexpr] [,columndatatype]...);ALTERTABLEtableMODIFY (columndatatype[DEFAULTexpr] [,columndatatype]...);ALTERTABLEtableDROP (column);ALTERTABLE语句使用ALTERTABLE语追加一个新列DEPT80追加一个新列DEPT80新列追加一个新列DEPT80追加一个新列DEPT80新列追加一个新列使用ADD

子句追加一个新列新列是表中的最后一列ALTERTABLEdept80ADD (job_idVARCHAR2(9));Tablealtered.追加一个新列使用ADD子句追加一个新列ALTERTAB修改一个列可以修改列的数据类型,尺寸,和默认值对默认值的修改只影响今后对表的修改ALTERTABLE dept80MODIFY (last_nameVARCHAR2(30));Tablealtered.修改一个列可以修改列的数据类型,尺寸,和默认值ALTER删除一个列使用DROPCOLUMN

子句删除不再需要的列.ALTERTABLEdept80DROPCOLUMNjob_id;Tablealtered.删除一个列使用DROPCOL

温馨提示

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

评论

0/150

提交评论