认证PL_SQL学习笔记(五)

文章作者 100test 发表时间 2007:03:26 17:54:55
来源 100Test.Com百考试题网


创建和管理表
对象:
表(TABLE)基本的存储单位,由行和列组成。
表名和列名(使用规则):
必须是字母开头;
必须是1-30的字符长度;
只能包括A-Z,a-z,0-9,_,$,#;
在同一个用户下不能头重名的对象;
不能是ORACLE的保留字;
创建需求
必须有:
CREATE TABLE 权限;
足够的存储空间;
语法:
CREATE TABLE [SCHEMA(方案).]TABLE
(COL DATATYPE [DEFAULT默认值][]);
当前用户所有的表
0select table_name from user_tables.
当前用户所有的对象:
desc user_objects
当前用户对象的别名:
0select * from cat.
字段类型:
VARCHAR(size) 变长字符串类型
CHAR(size) 定长字符串类型
NUMBER(p,s)p位整数,s位小数
DATE
DATETIME 秒级最多可以到小数点后的9位
TIMESTAMP 带有小数秒的日期
TIMESTAMP WITH TIME ZONE 带时区的类型
TIMESTAMP WITH LOCAL TIME ZONE 带时区的并会进行时区转换的类型(同一时间在不 同地区看到的时间)
INTERVAL YEAR TO MONTH 按年和月的间隔存储的类型
INTERVAL ‘123-2’ TEAR(3) TO MONTH

INTERVAL DAY TO SECOND 按天、小时、分和秒的间隔存储的类型
INTERVAL
LONG 变长的长字符串类型
CLOB 字符类型 4GIGABYTES
RAW 二进制类型与CHAR对应
LONG RAW 二进制类型与LONG对应
BLOB
BFILE 以文件的形式存储在操作系统中
ROWID 表中行的唯一地址(行地址)
方案:一个用户所有对象的命名集合。
如果想访问其他用户或方案的表要加上用户或方案作为前缀。
必须指明:
表名称;
列名,列类型和长度;
用户表:
被用户创建和维护的一些表;
包括了用户自己的信息;
数据字典表:
被ORACLE数据库创建和维护的一些表;
包括了数据库的信息;
CTAS(子查询建表):
CREATE TABLE table_name
[(col,coltype,..)]
as subquery(子查询).
创建的表的列的数目匹配子查询的列的数目。
使用子查询的列的名字和默认值定义表。
注:
*、被创建表的字段名要遵循如果没有字段别名和子查询中没设置别名的话,使用子查询中的列名;
如果有别名,使用别名;如果有字段列表([(col,coltype,..)]),在被创建的表中使用字段列表;
*、有字段列表与子查询的列要匹配。
*、当没有字段列表的时候,而在子查询中有表达式的时候一定要在表达式后要加上别名。
*、只会把属性当中的非空属性复制过来,其他的比如约束条件、关联...都不会复制过来。
使用ALTER TABLE 语句可以:
*、在表中增加一个新列
语法:ALTER TABLE table add (col datatype [default],...,....).
新增加的字段一定是放在表的最后。
*、修改表字段的类型和长度
ALTER TABLE table modify (col datatype [default],...,....).
对默认值的修改只会影响到新插入的行。
如果字段下有值的话,类型的修改成功率很小(要修改数据类型,要修改的列必须为空,即没有数据项)。
CHAR类型不能修改长度。
*、删除表字段
ALTER TABLE table DROP COLUMN (COLUMN_NAME_LIST).
9I2版可以修改列名
*、SET UNUSED 设置字段为不可用。
原理:清楚掉字典信息(撤消存储空间),不可恢复。
可以使用 SET UNUSED 选项标记一列或者多列不可用。
使用DROP SET UNUSED 选项删除被被标记为不可用的列。
语法:
ALTER TABLE table SET UNUSED (COLlist多个) 或者 ALTER TABLE table SET UNUSED COLUMN col单个.

ALTER TABLE table DROP UNUSED COLUMNS.
删除表:
删除关联:0drop table table_name cascade.
改对象名:
RENAME 对象原名 TO 要改的对象名;
注:
必须是对象的所有者才能进行改名的操作。

截取:
不能回滚;
删除表中所有数据;
释放存储空间;
语法:
TRUNCATE TABLE 表名称;
DELETE 也可以删除所有行,但:
可以回滚。
不释放存储空间。


给表加注释:COMMENT
comment on table table_name is 注释内容.



约束条件:
如果经常用到约束条件的话,最好自己命名。
当定义约束的时候可以将定义的语句作为CREATE TABLE 中的参数的一部分来完成。
表级别约束定义:
CONSTRAINT 约束名 约束条件(字段名)
约束在表上强制了规则。
如果有参照的花,约束防止表的删除。
ORACLE支持的约束条件:
NOT NULL 非空
特点:唯一一个只能在列级定义的约束条件。
UNIQUE 唯一
允许有空值(空值不做比较);
特点:当创建约束的时候,系统会自动创建对应其的索引。

相关文章


认证PL_SQL学习笔记(三)
认证PL_SQL学习笔记(五)
认证PL_SQL学习笔记(二)
认证PL_SQL学习笔记(一)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛