首页 > 代码库 > 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_创建和管理表