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语言都不能回滚,运行完就默认提交