首页 > 代码库 > ORACLE_创建和管理表

ORACLE_创建和管理表



ORACLE_创建和管理表

①常见的数据库对象
表:基本的数据存储集合,由行和列组成。
视图:从表中抽出的逻辑上相关的数据集合。
序列:提供有规律的数值。
索引:提高查询的效率
同义词:给对象起别名

②Oracle 数据库中的表
1.用户定义的表:
用户自己创建并维护的一组表,包含了用户所需的信息
如:SELECT * FROM user_tables;查看用户创建的表
2.数据字典:
由 Oracle Server 自动创建的一组表
包含数据库信息

③查询数据字典
查看用户定义的表.
SELECT table_name FROM user_tables ;
查看用户定义的各种数据库对象
SELECT DISTINCT object_type FROM user_objects ;
查看用户定义的表, 视图, 同义词和序列
SELECT * FROM user_catalog

④表名和列名命名规则:
1.必须以字母开头
2.必须在 1–30 个字符之间
3.必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
4.必须不能和用户定义的其他对象重名
5.必须不能是Oracle 的保留字

⑤CREATE TABLE 语句
必须具备:
1.CREATE TABLE权限
2.存储空间
CREATE TABLE [schema.]table
     (column datatype [DEFAULT expr][, ...]);

3.必须指定:
    表名
    列名, 数据类型, 尺寸

4.数据类型:描述
VARCHAR2(size):可变长字符数据
CHAR(size):定长字符数据
NUMBER(p,s):可变长数值数据
DATE:日期型数据
LONG:可变长字符数据,最大可达到2G
CLOB:字符数据,最大可达到4G
RAW (LONG RAW):原始的二进制数据
BLOB:二进制数据,最大可达到4G
BFILE:存储外部文件的二进制数据,最大可达到4G
ROWID:行地址

5.使用子查询创建表
使用 AS subquery 选项,将创建表和插入数据结合起来
CREATE TABLE table
     [(column, column...)]
AS subquery;
指定的列和子查询中的列要一一对应
通过列名和默认值定义列

注:原来表中的数据会插入到新创建的表中,若不需要数据,添加一个FALSE条件即可

⑥ALTER TABLE 语句
1.使用 ALTER TABLE 语句追加, 修改, 或删除列的语法
追加列
ALTER TABLE table
ADD     (column datatype [DEFAULT expr]
     [, column datatype]...);

修改列
ALTER TABLE table
MODIFY    (column datatype [DEFAULT expr]
     [, column datatype]...);

注:如果列中有数据是不能修改类型的,默认值只对后添加的数据有效

删除列
ALTER TABLE table
DROP COLUMN  column_name;

重命名列
ALTER TABLE table_name
RENAME COLUMM old_column_name TO new_column_name

设置列不可用
ALTER TABLE table_name
set unused COLUMM column_name

⑦删除表
数据和结构都被删除
所有正在运行的相关事务被提交
所有相关索引被删除
DROP TABLE 语句不能回滚

DROP TABLE table_name;

⑧清空表
TRUNCATE TABLE 语句:
删除表中所有的数据
释放表的存储空间
TRUNCATE语句不能回滚
可以使用 DELETE 语句删除数据,可以回滚

TRUNCATE TABLE table_name;

⑨改变对象的名称
执行RENAME语句改变表, 视图, 序列, 或同义词的名称
必须是对象的拥有者

RENAME old_object_name TO new_object_name;

注:以上DDL语言都不能回滚,执行完就默认提交

ORACLE_创建和管理表