Oracle数据库表与视图
时间:2007-12-23 来源:不详 作者:迈克DB
表和视图
Oracle中表是数据存储的基本结构。ORACLE8引入了分区表和对象表,ORACLE8i引入了临时表,使表的功能更强大。视图是一个或多个表中数据的逻辑表达式。本文我们将讨论怎样创建和治理简单的表和视图。
治理表
表可以看作有行和列的电子数据表,表是关系数据库中一种拥有数据的结构。用CREATETABLE语句建立表,在建立表的同时,必须定义表名,列,以及列的数据类型和大小。例如:
CREATETABLEproducts
(PROD_IDNUMBER(4),
PROD_NAMEVAECHAR2(20),
STOCK_QTYNUMBER(5,3)
);
这样我们就建立了一个名为products的表,要害词CREATETABLE后紧跟的表名,然后定义了三列,同时规定了列的数据类型和大小。
在创建表的同时你可以规定表的完整性约束,也可以规定列的完整性约束,在列上普通的约束是NOTNULL,关于约束的讨论我们在以后进行。
在建立或更改表时,可以给表一个缺省值。缺省值是在增加行时,增加的数据行中某一项值为null时,oracle即认为该值为缺省值。
dedecms.com
下列数据字典视图提供表和表的列的信息:
.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个字符串。表名应该以字母开始,可以在表名中包含数字、下划线、#、$等。
从其它表中建立表
可以使用查询从基于一个或多个表中建立表,表的列的数据类型和大小有查询结果决定。建立这种形式的表的查询可以选择其他表中所有的列或者只选择部分列。在CREATETABLE语句中使用要害字AS,例如:
SQL>CREATETABLEempASSELECT*FROMemployee
TABLECREATED
SQL>CREATETABLEYASSELECT*FROMXWHEREno=2
需要注重的是假如查询涉及LONG数据类型,那么CREATETABLE....ASSELECT....将不会工作。
更改表定义
在建立表后,有时候我们可能需要修改表,比如更改列的定义,更改缺省值,增加新列,删除列等等。ORACLE使用ALTERTABLE语句来更改表的定义
1、增加列 内容来自dedecms
语法:
ALTERTABLE[schema.]table_nameADDcolumn_definition
例:
ALTERTABLEordersADDorder_dateDATE;
TABLEALTER
对于已经存在的数据行,新列的值将是NULL.
2、更改列
语法:
ALTERTABLE[schema.]table_nameMODIFYcolumn_namenew_attributes;
例:
ALTERTABLEordersMODITY(quantitynumber(10,3),statusvarchar2(15));
这个例子中我们修改了表orders,将STATUS列的长度增加到15,将QUANTITY列减小到10,3;
修改列的规则如下:
.可以增加字符串数据类型的列的长度,数字数据类型列的精度。
.减少列的长度时,该列应该不包含任何值,所有数据行都为NULL.
.改变数据类型时,该列的值必须是NULL.
.对于十进制数字,可以增加或减少但不能降低他的精度。
织梦好,好织梦
上一篇:Oracle 常用技巧和脚本 下一篇:使用Oracle实现实时通信
文章评论
共有位Admini5网友发表了评论 查看完整内容