Oracle数据库数据对象分析

2016-01-29 14:49 9 1 收藏

Oracle数据库数据对象分析,Oracle数据库数据对象分析

【 tulaoshi.com - Oracle教程 】

  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、更改列

  语法:

来源:https://www.tulaoshi.com/n/20160129/1494359.html

延伸阅读
 Oracle数据库的自动导入与导出,在许多地方有广泛的应用.例如:一个Oracle数据库应用系统开发结束后,假如要将系统安装到客户计算机上,就需要将初始数据导入到用户的Oracle数据库中. 最近项目中也需要实现以上功能,花了点时间搜索实验,整理如下:   先把要安装的初始数据文件导出为initial.dmp,然后在客户计算上安装好oracle,接着...
数据库安全性问题一直是围绕着数据库管理员的恶梦,数据库数据的丢失以及数据库被非法用户的侵入使得数据库管理员身心疲惫不堪。围绕数据库的安全性问题提出了一些安全性策略,希望对数据库管理员有所帮助。对于数据库数据的安 全问题,数据库管理员可以参考有关系统双机热备份功能以及数据库的备份和恢复的资料。 一、组和安全性: ...
如果你有两个数据 创建表的声明追踪, 经过TKPROF 解析后,输出结果如下: CREATE TABLE TABLE_ROWNUM AS SELECT * FROM (SELECT ID, ROWNUM AS rownum_a FROM TABLE_A) ALIAS_A, (SELECT ID AS id_b, ROWNUM AS rownum_b FROM TABLE_B) ALIAS_B WHERE ALIAS_A.rownum_a = ALIAS_B.rownum_b call count cpu elapsed disk query curren...

经验教程

115

收藏

94
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部