Oracle创建和管理表
常见的数据库对象
Oracle 数据库中的表
-
用户定义的表:
用户自己创建并维护的一组表
-
包含了用户所需的信息
如:SELECT ***** FROM user_tables;查看用户创建的表
-
数据字典:
由 Oracle Server 自动创建的一组表
包含数据库信息
-
查看用户定义的表
SELECT table_name
FROM user_tables ;
- 查看用户定义的各种数据库对象
SELECT DISTINCT object_type
FROM user_objects ;
- 查看用户定义的表****, 视图****, 同义词和序列
SELECT *
FROM user_catalog ;
命名规则
表名和列名:
-
必须以字母开头
-
必须在 1–30 个字符之间
-
必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
-
必须不能和用户定义的其他对象重名
-
必须不能是Oracle 的保留字
CREATE TABLE 语句
-
必须具备:
-
CREATE TABLE权限
-
存储空间
-
-
必须指定:
- 表名
-
列名, 数据类型, 尺寸
数据类型
使用子查询创建表
-
使用 AS subquery 选项,将创建表和插入数据结合起来
-
指定的列和子查询中的列要一一对应
通过列名和默认值定义列
create table emp1 as select * from employees; --完全复制包括数据
create table emp2 as select * from employees where 1=2;
--创建的emp2是空表
ALTER TABLE 语句
使用 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
删除表
-
数据和结构都被删除
-
所有正在运行的相关事务被提交
-
所有相关索引被删除
-
DROP TABLE 语句不能回滚
清空表
- TRUNCATE TABLE 语句:
- 删除表中所有的数据
- 释放表的存储空间
TRUNCATE TABLE detail_dept;
Table truncated.
TRUNCATE语句不能回滚
可以使用 DELETE 语句删除数据,可以回滚
对比:
delete from emp2;
select * from emp2;
rollback;
select * from emp2;
改变对象的名称
-
执行RENAME语句改变表, 视图, 序列, 或同义词的名称
-
•必须是对象的拥有者
RENAME dept TO detail_dept;
Table renamed.
总结
语句 | 描述 |
---|---|
CREATE TABLE | 创建表 |
ALTER TABLE | 修改表结构 |
DROP TABLE | 删除表 |
TRUNCATE TABLE | 删除表中的所有数据,并释放存储空间 |
RENAME TO | 重命名表 |
以上这些DDL的命令,操作外,皆不可回滚!
努力学习java的Cherish