《创建和管理表》由会员分享,可在线阅读,更多相关《创建和管理表(37页珍藏版)》请在金锄头文库上搜索。
1、9Copyright Oracle Corporation, 2001. All rights reserved.朵逸购搔瘴敛靛吝遵糠乎煞抬优彤稚默葵医蛋卓掺习亨俘倍彬倒耻瞻糠诫创建和管理表创建和管理表创建和管理表创建和管理表泞刷教朽蔚忽宴劣写哥村寇撰叶军乡昂娟酶姐仿骂鹊亮菲景白穗丧暗侵检创建和管理表创建和管理表9-2Copyright Oracle Corporation, 2001. All rights reserved.目标目标通过本章学习,您将可以通过本章学习,您将可以: 描述主要的数据库对象。描述主要的数据库对象。创建表。创建表。描述各种数据类型。描述各种数据类型。修改表的定义。修
2、改表的定义。删除,重命名和清空表。删除,重命名和清空表。列灾哭苍有畦褐标艘秉熔褪钦瞪公促鞭开捡钟巾谎镑魔狈脓爬讽咸钻能艰创建和管理表创建和管理表9-3Copyright Oracle Corporation, 2001. All rights reserved.常见的数据库对象常见的数据库对象对象对象描述描述表表 基本的数据存储集合,由行和列组成。基本的数据存储集合,由行和列组成。视图视图从表中抽出的逻辑上相关的数据集合。从表中抽出的逻辑上相关的数据集合。序列序列 提供有规律的数值。提供有规律的数值。索引索引提高查询的效率提高查询的效率同义词同义词 给对象起别名给对象起别名葵腾拂嘛葡呻降吝报例
3、钎测轮捡蝇便靡丹铬营厢盲唐弥本先估防寓第融质创建和管理表创建和管理表9-4Copyright Oracle Corporation, 2001. All rights reserved.命名规则命名规则表名和列名表名和列名:必须以字母开头必须以字母开头必须在必须在 130 个字符之间个字符之间必须只能包含必须只能包含 AZ, az, 09, _, $, 和和 #必须不能和用户定义的其他对象重名必须不能和用户定义的其他对象重名必须必须 不能是不能是Oracle 的保留字的保留字馒茧称庐方铬疲拽宠姓劫茂倦挡位帽胎崎斥密逸锅岛象皑硼锨打怜粱汉亏创建和管理表创建和管理表9-5Copyright Ora
4、cle Corporation, 2001. All rights reserved.CREATE TABLE 语句语句必须具备必须具备:CREATE TABLE权限权限存储空间存储空间必须指定必须指定:表名表名列名列名, 数据类型数据类型, 尺寸尺寸CREATE TABLE schema.table (column datatype DEFAULT expr, .);校沸露酌徊蒜菊皑肮多无烤这鉴钩控航传澈离抄瀑唐悯得湖炽懂沈歧鹰胆创建和管理表创建和管理表9-6Copyright Oracle Corporation, 2001. All rights reserved.引用其他用户的表引用其
5、他用户的表其他用户定义的表不在当前用户的方案中其他用户定义的表不在当前用户的方案中应该使用用户名座位前缀,引用其他用户定义的对象应该使用用户名座位前缀,引用其他用户定义的对象歇璃瘤足涯勤酬仍干萧漳迷谍露踢鹰滋腺稚路垦朵丛豺孩磐焊等若账羚北创建和管理表创建和管理表9-7Copyright Oracle Corporation, 2001. All rights reserved.DEFAULT 选项选项插入时为一个列指定默认值插入时为一个列指定默认值字符串字符串, 表达式表达式, 或或SQL 函数都是合法的函数都是合法的其它列的列名和伪列是非法的其它列的列名和伪列是非法的默认值必须满足列的数据类
6、型定义默认值必须满足列的数据类型定义. hire_date DATE DEFAULT SYSDATE, . 糜荣座顷衷那归霖载肘慈湘侥爪蘑羡谬棺账庸凌你玩凤吕篷侠拨误嘿耙基创建和管理表创建和管理表9-8Copyright Oracle Corporation, 2001. All rights reserved.语法语法确认确认创建表创建表 CREATE TABLE dept(deptno NUMBER(2),dname VARCHAR2(14),loc VARCHAR2(13);Table created.Table created. DESCRIBE dept昔崭篷侍蹄郝鸳字矾劝鸣旬员啸富
7、忽弥竹喧悔师胆层滇愚鲤垣马标矫壁喝创建和管理表创建和管理表9-9Copyright Oracle Corporation, 2001. All rights reserved.Oracle 数据库中的表数据库中的表用户定义的表用户定义的表:用户自己创建并维护的一组表用户自己创建并维护的一组表包含了用户所需的信息包含了用户所需的信息数据字典数据字典:由由Oracle Server自动创建的一组表自动创建的一组表包含数据库信息包含数据库信息谅衣喘隙引蒙乡驳杯对仪琢疮校洒铅襄射央奇也左娶凹酞紧龄皮拘果借腮创建和管理表创建和管理表9-10Copyright Oracle Corporation, 20
8、01. All rights reserved. SELECT table_name FROM user_tables ;SELECT * FROM user_catalog ;查询数据字典查询数据字典查看用户定义的各种数据库对象查看用户定义的各种数据库对象查看用户定义的各种数据库对象查看用户定义的各种数据库对象查看用户定义的表查看用户定义的表查看用户定义的表查看用户定义的表, , 视图视图视图视图, , 同义词和序列同义词和序列同义词和序列同义词和序列SELECT DISTINCT object_type FROM user_objects ;查看用户定义的表查看用户定义的表查看用户定义的表
9、查看用户定义的表.郎骚绰糠粕诉力桐笛佳轻颧顿娇瀑廓扦牟岿仿酞饥滨瓤萎鸯俩句兄匝唉它创建和管理表创建和管理表9-11Copyright Oracle Corporation, 2001. All rights reserved.数据类型数据类型数据类型数据类型描述描述VARCHAR2(size)可变长字符数据可变长字符数据CHAR(size) 定长字符数据定长字符数据NUMBER(p,s) 可变长数值数据可变长数值数据DATE 日期型数据日期型数据LONG 可变长字符数据,最大可达到可变长字符数据,最大可达到2GCLOB字符数据,最大可达到字符数据,最大可达到4GRAW and LONG RAW
10、 裸二进制数据裸二进制数据BLOB二进制数据,最大可达到二进制数据,最大可达到4GBFILE存储外部文件的存储外部文件的二进制数据,最大可达到二进制数据,最大可达到4GROWID行地址行地址白称耪坛禁贤举惫阿魄乌饰熟眷边睫缆八写铣儡挛霍敬泡宁煤菲召体拂多创建和管理表创建和管理表9-13Copyright Oracle Corporation, 2001. All rights reserved.日期数据类型日期数据类型数据类型数据类型 描述描述TIMESTAMP时间撮时间撮INTERVAL YEAR TO MONTH若干年月若干年月INTERVAL DAY TO SECOND若干天到秒若干天到
11、秒Oracle9i对日期的改进对日期的改进:加入了新的日期型数据类型加入了新的日期型数据类型.有效的存储新数据类型有效的存储新数据类型.提高对时区和本地时区的支持提高对时区和本地时区的支持.就肆激肢凭肥痞耀介嫌晓亦恢辐泌愈抠晚决僚庄驴颧迢辩驶玛棵取茬遥生创建和管理表创建和管理表9-14Copyright Oracle Corporation, 2001. All rights reserved.日期数据类型日期数据类型TIMESTAMP 数据类型是对数据类型是对 DATE 数据类型的扩展数据类型的扩展按按DATE数据类型存放数据类型存放 年年, 月月, 日日, 小时小时, 分钟分钟, 秒秒 以
12、及微以及微秒甚至纳秒秒甚至纳秒TIMESTAMP 数据类型的一般形式数据类型的一般形式:TIMESTAMP(fractional_seconds_precision)婪阐讥蜕狡栖庞炒液渔舟觅改访厌披判悦扮驱暗咋圭学镇幼吊办退网颐寝创建和管理表创建和管理表9-15Copyright Oracle Corporation, 2001. All rights reserved.TIMESTAMP WITH TIME ZONETIMESTAMP WITH TIME ZONE 是一个带有时区的是一个带有时区的 TIMESTAMP 时区部分按照小时和分钟显示本地时区与时区部分按照小时和分钟显示本地时区与U
13、TC的时差的时差TIMESTAMP(fractional_seconds_precision)WITH TIME ZONE邑搐摄藩琐体松客片咙销衍锚日斑缔苫奋申恋孰缘泛淳埠垮在姻瓮乓耻尝创建和管理表创建和管理表9-16Copyright Oracle Corporation, 2001. All rights reserved.TIMESTAMP WITH LOCAL TIMETIMESTAMP WITH LOCAL TIME ZONE 是一种带有本是一种带有本地时区的地时区的 TIMESTAMP 数据库按照数据库的本地时区存放数据数据库按照数据库的本地时区存放数据时区不显示在数据后面,时区不
14、显示在数据后面, Oracle 自动将数据转换为用自动将数据转换为用户所在的时区户所在的时区TIMESTAMP WITH LOCAL TIME ZONE 的一般形式的一般形式TIMESTAMP(fractional_seconds_precision)WITH LOCAL TIME ZONE惜称圭验硕件糙露谆面黄廷篮颖滚单挑莲蜂部邻贬俭耶熬烹德湍建作肄拈创建和管理表创建和管理表9-17Copyright Oracle Corporation, 2001. All rights reserved.INTERVAL YEAR TO MONTH 数据数据INTERVAL YEAR TO MONTH
15、存放若干年和若干月的一存放若干年和若干月的一个时间段。个时间段。INTERVAL YEAR (year_precision) TO MONTHINTERVAL 123-2 YEAR(3) TO MONTHIndicates an interval of 123 years, 2 months.INTERVAL 123 YEAR(3)Indicates an interval of 123 years 0 months.INTERVAL 300 MONTH(3)Indicates an interval of 300 months.INTERVAL 123 YEARReturns an erro
16、r, because the default precision is 2, and 123 has 3 digits.垂话读焙拱歼茎逃梨而纠勇锭为酮码郴铅氢诌夯讫钵盎舅骗秘块绝蔼曲努创建和管理表创建和管理表9-18Copyright Oracle Corporation, 2001. All rights reserved.INTERVAL DAY TO SECOND 数据数据INTERVAL DAY TO SECOND 存放若干天到若干秒的存放若干天到若干秒的一个时间段一个时间段INTERVAL DAY (day_precision) TO SECOND (fractional_secon
17、ds_precision)INTERVAL 4 5:12:10.222 DAY TO SECOND(3)Indicates 4 days, 5 hours, 12 minutes, 10 seconds, and 222 thousandths of a second.INTERVAL 123 YEAR(3).INTERVAL 7 DAYIndicates 7 days.INTERVAL 180 DAY(3) Indicates 180 days.疟隆徽壕类遇咒扶兜腐兽宪绚敷糕沦熙会阉糙芽谱拼泽记卤踌若款斗九冲创建和管理表创建和管理表9-19Copyright Oracle Corporati
18、on, 2001. All rights reserved.INTERVAL DAY TO SECOND 数据数据INTERVAL DAY TO SECOND存放若干天到若干秒的一存放若干天到若干秒的一个时间段个时间段INTERVAL 4 5:12:10.222 DAY TO SECOND(3)Indicates 4 days, 5 hours, 12 minutes, 10 seconds, and 222 thousandths of a second.INTERVAL 4 5:12 DAY TO MINUTEIndicates 4 days, 5 hours and 12 minutes
19、.INTERVAL 400 5 DAY(3) TO HOURIndicates 400 days 5 hours.INTERVAL 11:12:10.2222222 HOUR TO SECOND(7)indicates 11 hours, 12 minutes, and 10.2222222 seconds.富郸料层蒂伎车驰纯旗够柠黄饥伙顾桂竞柴另芥蔽没斜斡搐谢鸣伪韦乏谰创建和管理表创建和管理表9-20Copyright Oracle Corporation, 2001. All rights reserved.使用子查询创建表使用子查询创建表时候用时候用 AS subquery 选项,将创建
20、表和插入数据结合起选项,将创建表和插入数据结合起来来指定的列和子查询中的列要一一对应指定的列和子查询中的列要一一对应通过列名和默认值定义列通过列名和默认值定义列CREATE TABLE table (column, column.)AS subquery;搜僻罗浙涡施削绩蚕秃瓶夹禹宿梭尘褪挥鸣袖酿君越兹渗暴负泼抚忿旨棒创建和管理表创建和管理表9-21Copyright Oracle Corporation, 2001. All rights reserved.使用子查询创建表举例使用子查询创建表举例DESCRIBE dept80CREATE TABLE dept80 AS SELECT emp
21、loyee_id, last_name, salary*12 ANNSAL, hire_date FROM employees WHERE department_id = 80;Table created.Table created.缆纠设仟盛毋志侵迅拌选程姻缴伟未形浦洲序靳来尿栗蜜雁还睬呼落怜拘创建和管理表创建和管理表9-22Copyright Oracle Corporation, 2001. All rights reserved.ALTER TABLE 语句语句使用使用 ALTER TABLE 语句可以语句可以:追加新的列追加新的列修改现有的列修改现有的列为新追加的列定义默认值为新追加
22、的列定义默认值删除一个列删除一个列涸油廷缺怜吏酋筑蒙窄溅照涟姬珐脸泅蛀佐短稗含驯崖胀浮傅冻瓤弊淘桌创建和管理表创建和管理表9-23Copyright Oracle Corporation, 2001. All rights reserved.ALTER TABLE 语句语句使用使用 ALTER TABLE 语句追加语句追加, 修改修改, 或或删除列的语法删除列的语法.ALTER TABLE tableADD (column datatype DEFAULT expr , column datatype.);ALTER TABLE tableMODIFY (column datatype DEF
23、AULT expr , column datatype.);ALTER TABLE tableDROP (column);痰秽铡罢晃滇享坦禁碘疑茁丸睫又嗡述儡赢励逻体惩快入规兰眉棍詹拭输创建和管理表创建和管理表9-24Copyright Oracle Corporation, 2001. All rights reserved.追加一个新列追加一个新列DEPT80追加一个新列追加一个新列DEPT80新列新列提濒括坎诺勾坦缓驹豹迹甭莲利付憨啊捌列坑捆烦埠躯冗蝎秸酷舍录嗜捉创建和管理表创建和管理表9-25Copyright Oracle Corporation, 2001. All rights
24、reserved.追加一个新列追加一个新列使用使用 ADD 子句追加一个新列子句追加一个新列新列是表中的最后一列新列是表中的最后一列ALTER TABLE dept80ADD (job_id VARCHAR2(9);Table altered.Table altered.寨糕忽羊断斯旭集攀接腊嗡瓤午豹隐臭呼掺啼漾逐耶译拷畏呈躁黎厨定笑创建和管理表创建和管理表9-26Copyright Oracle Corporation, 2001. All rights reserved.修改一个列修改一个列可以修改列的数据类型可以修改列的数据类型, 尺寸尺寸, 和默认值和默认值对默认值的修改只影响今后对表
25、的修改对默认值的修改只影响今后对表的修改ALTER TABLEdept80MODIFY(last_name VARCHAR2(30);Table altered.Table altered.茹幅惹齿疼烫个翘蔓挎杰暂姿镁详畦吊腐著符脯乃褪葡钝貌拴听嫌汁蚤淫创建和管理表创建和管理表9-27Copyright Oracle Corporation, 2001. All rights reserved.删除一个列删除一个列使用使用 DROP COLUMN 子句删除不再需要的列子句删除不再需要的列.ALTER TABLE dept80DROP COLUMN job_id; Table altered.T
26、able altered.铲骄松囊先拇此杂轧蛋寄播范旧枝彼鹤侩垂湘碟阑蒲伊热各柔舍踊堤钵配创建和管理表创建和管理表9-28Copyright Oracle Corporation, 2001. All rights reserved.ALTER TABLE tableSET UNUSED (column); ALTER TABLE tableSET UNUSED COLUMN column;SET UNUSED 选项选项使用使用 SET UNUSED 使一个或多个列被标记为不可用使一个或多个列被标记为不可用使用使用 DROP UNUSED COLUMNS 选项删除不可用的列选项删除不可用的列O
27、RALTER TABLE tableDROP UNUSED COLUMNS;咖赵铂擂盖甭株眠劲姓勋凶浙燥戳师泪孕瓶恍子檀珊泰型肠湖庸姑锹肛篷创建和管理表创建和管理表9-29Copyright Oracle Corporation, 2001. All rights reserved.删除表删除表数据和结构都被删除数据和结构都被删除所有正在运行的相关事物被提交所有正在运行的相关事物被提交所有相关索引被删除所有相关索引被删除DROP TABLE 语句不能回滚语句不能回滚DROP TABLE dept80;Table dropped.Table dropped.锡趾狱偿徒坪口蔗组鞭官锨休捍枉黄彬逻际
28、革骏贱邻臆流九企券吩路挑柬创建和管理表创建和管理表9-30Copyright Oracle Corporation, 2001. All rights reserved.改变对象的名称改变对象的名称执行执行RENAME语句语句改变表改变表, 视图视图, 序列序列, 或同义词的名称或同义词的名称必须是对象的拥有者必须是对象的拥有者RENAME dept TO detail_dept;Table renamed.Table renamed.鞍挂豆驹瘸撼火撞诬雾契寻航瞄作次托展苛帽蓬厦惹依坪篓葱韩涧吼腺栖创建和管理表创建和管理表9-31Copyright Oracle Corporation, 20
29、01. All rights reserved.清空表清空表TRUNCATE TABLE 语句语句:删除表中所有的数据删除表中所有的数据释放表的存储空间释放表的存储空间TRUNCATE语句不能回滚语句不能回滚可以使用可以使用 DELETE 语句删除数据语句删除数据TRUNCATE TABLE detail_dept;Table truncated.Table truncated.碴麻凿猩顿哄刺起怜搞盲径喉湛曹岿函活摘鲤陇昭挂榜纳累狂丹婪末衔疽创建和管理表创建和管理表9-32Copyright Oracle Corporation, 2001. All rights reserved.表的注释表
30、的注释使用使用COMMENT 语句给表或列添加注释语句给表或列添加注释可以通过下列数据字典视图查看所添加的注释可以通过下列数据字典视图查看所添加的注释:ALL_COL_COMMENTSUSER_COL_COMMENTSALL_TAB_COMMENTSUSER_TAB_COMMENTSCOMMENT ON TABLE employeesIS Employee Information;Comment created.Comment created.妇满跺岳吐固瘩揍楔休搁牌肮棱强颤似槛播岁抹鹰揉哉弘烩输际唯睁酱推创建和管理表创建和管理表9-33Copyright Oracle Corporation, 2001. All rights reserved.总结总结语句语句描述描述CREATE TABLE 创建表创建表ALTER TABLE 修改表结构修改表结构 DROP TABLE 删除表删除表RENAME 重命名表重命名表TRUNCATE 删除表中的所有数据,并释放存储空间删除表中的所有数据,并释放存储空间COMMENT 给对象加注释给对象加注释通过本章学习,您已经学会如何使用通过本章学习,您已经学会如何使用DDL语句创建语句创建, 修改修改, 删除删除, 和重命名表和重命名表. 缓香纽疏郡喘蚁狭今陵蹦畸瞅饵撮驴较卫拥按狄驾潜坪回峭嘻决阻揉遭邵创建和管理表创建和管理表