Oracle创建和管理表

常见的数据库对象

image-20210608163918615

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权限

    • 存储空间

  • 必须指定:

    • 表名
  • 列名, 数据类型, 尺寸

数据类型

image-20210608164939935

使用子查询创建表

  • 使用 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的命令,操作外,皆不可回滚!

posted @ 2021-06-08 17:09  Cherish°  阅读(268)  评论(0编辑  收藏  举报