动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.Oracle PL/SQL语言基础.
.Re: 关于ORACLE用户权限的问题!.
.10g即时客户端在不同系统环境下的.
.数据仓库产品综述.
.Unix下卸载Oracle表结构到文本中.
.Oracle作业(JOB)更新next_date的.
.我的oracle笔记二(pl/sql 编程方.
.Oracle 8i中回滚段使用和ORA-1555.
.Create Table建表时,Storage含义.
.ORACLE常用傻瓜問題1000問(之十一.
.关于在ORACLE下开发JAVA的几个问.
.Oracle9i的全文检索技术.
.学好Oracle的六条总结.
.Oracle PL/SQL入门之慨述.
.Oralcle 10g Fedora Core X上快速.
.Oracle数据库配置错误信息.
.红旗4.0b版最新使用方法.
.如何使用Logmnr方法分析数据库日.
.哪些初始化参数影响Oracle系统性.
.oracle数据库备份与恢复 a piece.

Oracle数据库数据对象分析

发表日期:2008-2-9 |



  Oracle数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过程、包、触发器等。对数据库的操作可以基本归结为对数据对象的操作,理解和把握Oracle数据库对象是学习Oracle的捷径。
  表和视图
  Oracle中表是数据存储的基本结构。ORACLE8引入了分区表和对象表,ORACLE8i引入了临时表,使表的功能更强大。视图是一个或多个表中数据的逻辑表达式。本文我们将讨论怎样创建和治理简单的表和视图。
  治理表
  表可以看作有行和列的电子数据表,表是关系数据库中一种拥有数据的结构。用CREATE TABLE语句建立表,在建立表的同时,必须定义表名,列,以及列的数据类型和大小。例如:
  CREATE TABLE prodUCts
  ( PROD_ID NUMBER(4),
   PROD_NAME VAECHAR2(20),
   STOCK_QTY NUMBER(5,3)
  );
  这样我们就建立了一个名为products的表, 要害词CREATE TABLE后紧跟的表名,然后定义了三列,同时规定了列的数据类型和大小。
  在创建表的同时你可以规定表的完整性约束,也可以规定列的完整性约束,在列上普通的约束是NOT NULL,关于约束的讨论我们在以后进行。
  在建立或更改表时,可以给表一个缺省值。缺省值是在增加行时,增加的数据行中某一项值为null时,oracle即认为该值为缺省值。
  下列数据字典视图提供表和表的列的信息:
  . DBA_TABLES
  . DBA_ALL_TABLES
  . USER_TABLES
  . USER_ALL_TABLES
  . ALL_TABLES
  . ALL_ALL_TABLES
  . DBA_TAB_COLUMNS
  . USER_TAB_COLUMNS
  . ALL_TAB_COLUMNS
  表的命名规则
  表名标识一个表,所以应尽可能在表名中描述表,oracle中表名或列名最长可以达30个字符串。表名应该以字母开始,可以在表名中包含数字、下划线、#、$等。
  从其它表中建立表
  可以使用查询从基于一个或多个表中建立表,表的列的数据类型和大小有查询结果决定。建立这种形式的表的查询可以选择其他表中所有的列或者只选择部分列。在CREATE TABLE语句中使用要害字AS,例如:
  SQL>CREATE TABLE emp AS SELECT * FROM employee
  TABLE CREATED
  SQL> CREATE TABLE Y AS SELECT * FROM X WHERE no=2
  需要注重的是假如查询涉及LONG数据类型,那么CREATE TABLE....AS SELECT....将不会工作。
  更改表定义
  在建立表后,有时候我们可能需要修改表,比如更改列的定义,更改缺省值,增加新列,删除列等等。ORACLE使用ALTER TABLE语句来更改表的定义
  1、增加列
  语法:
  ALTER TABLE [schema.] table_name ADD column_definition
  例:
  ALTER TABLE orders ADD order_date DATE;
  TABLE ALTER
  对于已经存在的数据行,新列的值将是NULL.
  
  2、更改列
  
  语法:
  
  ALTER TABLE [schema.] table_name MODIFY column_name new_attributes;
  例:
  ALTER TABLE orders MODITY (quantity number(10,3),status varchar2(15));
  这个例子中我们修改了表orders,将STATUS列的长度增加到15,将QUANTITY列减小到10,3;
  修改列的规则如下:
  . 可以增加字符串数据类型的列的长度,数字数据类型列的精度。
  . 减少列的长度时,该列应该不包含任何值,所有数据行都为NULL.
  . 改变数据类型时,该列的值必须是NULL.
  . 对于十进制数字,可以增加或减少但不能降低他的精度。
  3、删除数据列
  优化ORACLE数据库,唯一的方法是删除列,重新建立数据库。在ORACLE8i中有很多方法删除列,你可以删除未用数据列或者可以标示该列为未用数据列然后删除。
  删除数据列的语法是:
  ALTER TABLE [schema.] table_name DROP {COLUM column_names (column_names)}[CASCADE CONSTRAINS]
  要注重的是在删除列时关于该列的索引和完整性约束也同时删除。注重要害字CASCADE CONSTRAINS,假如删除的列是多列约束的一部分,那么这个约束条件相对于其他列也同时删除。
  假如用户担心在大型数据库中删除列要花太多时间,可以先将他们标记为未用数据列,标记未用数据列的语法如下:
  
  ALTER TABLE [schema.] table_name SET UNUSED {COLUM column_names (column_names)}[CASCADE CONSTRAINS]
  这个语句将一个或多个数据列标记为未用数据列,但并不删除数据列中的数据,也不释放占用的磁盘空间。
但是,未用数据列在视图和数据字典中并不显示,并且该数据列的名称将被删除,新的数据列可以使用这个名称。基于该数据列的索引、约束,统计等都将被删除。
  删除未用数据列的语句是:
  ALTER TABLE [schema.] table_name DROP {UNUSED COLUM COLUMN CONTINUE}
  删除表和更改表名
  删除表非常简单,但它是一个不可逆转的行为。
  语法:
  DROP TABLE [schema.] table_name [CASCADE CONSTRAINTS]
  删除表后,表上的索引、触发器、权限、完整性约束也同时删除。ORACLE不能删除视图,或其他程序单元,但oracle将标示他们无效。假如删除的表涉及引用主键或唯一要害字的完整性约束时,那么DROP TABLE语句就必须包含CASCADE CONSTRAINTS子串。
  更改表名
  RENAME命令用于给表和其他数据库对象改名。ORACLE系统自动将基于旧表的完整性约束、索引、权限转移到新表中。ORACLE同时使所有基于旧表的数据库对象,比如视图、程序、函数等,为不合法。
  语法:
  RENAME old_name TO new_name;
  例:
  SQL> RENAME orders TO purchase_orders;
  TABLE RENAMED
  截短表
  TRUNCATE命令与DROP命令相似, 但他不是删除整个数据表,所以索引、完整性约束、触发器、权限等都不会被删除。缺省情况下将释放部分表和视图空间,假如用户不希望释放表空间,TRUNCATE语句中要包含REUSE STORAGE子串。TRUNCATE命令语法如下:
  TRUNCATE {TABLECLUSTER} [schema.] name {DROPREUSE STORAGE}
  例:
  SQL> TRUNCATE TABLE t1;
  TABLE truncate.
  治理视图
  视图是一个或多个表中的数据的简化描述,用户可以将视图看成一个存储查询(stored query)或一个虚拟表(virtual table).查询仅仅存储在oracle数据字典中,实际的数据没有存放在任何其它地方,所以建立视图不用消耗其他的空间。视图也可以隐藏复杂查询,比如多表查询,但用户只能看见视图。视图可以有与他所基于表的列名不同的列名。用户可以建立限制其他用户访问的视图。
  建立视图
  CREATE VIEW命令创建视图,定义视图的查询可以建立在一个或多个表,或其他视图上。查询不能有FOR UPDATE子串,在早期的ORACLE8i版本中不支持ORDER BY子串,现在的版本中CREATE VIEW可以拥有ORDER BY子串。
  例:
  SQL> CREATE VIEW TOP_EMP AS
  SELECT empno EMPLOYEE_ID,ename EMPLOYEE_NAME,salary
  FROM emp
  WHERE salary >2000
  用户可以在创建视图的同时更改列名,方法是在视图名后立即加上要命名的列名。重新定义视图需要包含OR REPLACE子串。
  SQL> CREATE VIEW TOP_EMP
  (EMPLOYEE_ID,EMPLOYEE_NAME,SALARY) AS
  SELECT empno ,ename ,salary
  FROM emp
  WHERE salary >2000
  假如在创建的视图包含错误在正常情况下,视图将不会被创建。但假如你需要创建一个带错误的视图必须在CREATE VIEW语句中带上FORCE选项。如:
  CREATE FORCE VIEW ORDER_STATUS AS
  SELECT * FROM PURCHASE_ORDERS
  WHERE STATUS='APPPOVE';
  SQL>/
  warning :View create with compilation errors
  这样将创建了一个名为ORDER_STATUS的视图,但这样的视图的状态是不合法的,假如以后状态发生变化则可以重新编译,其状态也变成合法的。
  从视图中获得数据
  从视图中获得数据与从表中获得数据基本一样,用户可以在连接和子查询中使用视图,也可以使用SQL函数,以及所有SELECT语句的字串。
  插入、更新、删除数据
  用户在一定的限制条件下可以通过视图更新、插入、删除数据。假如视图连接多个表,那么在一个时间里只能更新一个表。所有的能被更新的列可以在数据字典USER_UPDATETABLE_COLUMNS中查到。
  用户在CREATE VIEW中可以使用了WITH子串。WITH READ ONLY子串表示创建的视图是一个只读视图,不能进行更新、插入、删除操作。WITH CHECK OPTION表示可以进行插入和更新操作,但应该满足WHERE子串的条件。这个条件就是创建视图WHERE子句的条件,比如在上面的例子中用户创建了一个视图TOP_EMP,在这个视图中用户不能插入salary小于2000的数据行。
  删除视图
  删除视图使用DROP VIEW命令。同时将视图定义从数据字典中删除,基于视图的权限也同时被删除,其他涉及到该视图的函数、视图、程序等都将被视为非法。
  例:
  DROP VIEW TOP_EMP;
  完整性约束
  完整性约束用于增强数据的完整性,Oracle提供了5种完整性约束:
    Check
    NOT NULL
    Unique
    Primary
    Foreign key
  完整性约束是一种规则,不占用任何数据库空间。完整性约束存在数据字典中,在执行SQL或PL/SQL期间使用。用户可以指明约束是启用的还是禁用的,当约束启用时,他增强了数据的完整性,否则,则反之,但约束始终存在于数据字典中。
  禁用约束,使用ALTER语句
  ALTER TABLE table_name DISABLE CONSTRAINT constraint_name;
  或
  ALTER TABLE policies DISABLE CONSTRAINT chk_gender
上一篇:Oracle 9i 数据库管理实务讲座(一)之I部分 人气:485
下一篇:Oracle中的汉字显示 人气:499
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-9-5 Coppermine Photo Gallery v1.4.
2008-9-5 清松网络日记本 v2.4
2008-9-5 AyWeb企业网站管理系统 v2.3 bui
2008-9-5 美女写真小偷程序联盟 v3.0 buil
2008-9-5 老Y文章管理系统 v2.1
2008-9-5 SiteDynamic企业网站管理系统 v1
2008-9-5 MyCOM企业网站管理系统 v1.0 Bui
2008-9-5 乐风CMS影视版 2008
2008-9-5 幻影电影视频系统TvsCms v1.3 伪
2008-8-23 Mini WinMount V0.4
2008-8-23 Vista优化大师3.11正式版
2008-8-23 Wine 1.13
2008-8-23 KlipFolio 5.0 Build 5899-80
2008-8-23 Windows Sysinternals Desktops
2008-8-23 OneTap Movies1.2破解版
2008-8-23 AnnotaterPDF阅读1.1.503 破解版
2008-8-23 SoundMeter分贝测量仪 v1.0汉化破
2008-8-23 iDrum音乐节拍1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵