转:oracle 子查询创建表,表的重命名,给表和列添加注释,显示当前用户所有表,复制已存在表结构到新表

来源:互联网 发布:淘宝小米旗舰店 客服 编辑:程序博客网 时间:2024/06/05 18:50

原文链接:http://heisetoufa.iteye.com/blog/364422


通过子查询创建表
如果要创建一个同已有的表结构相同或部分相同的表,可以采用以下的语法:
CREATE TABLE 表名(列名...) AS SQL查询语句;
该语法既可以复制表的结构,也可以复制表的内容,并可以为新表命名新的列名。新的列名在表名后的括号中给出,如果省略将采用原来表的列名。复制的内容由查询语句的WHERE条件决定。
通过子查询创建新的图书表
步骤1:完全复制图书表到“图书1”,输入并执行以下命令:
Sql代码  收藏代码
  1. CREATE TABLE 图书1 AS SELECT * FROM 图书;  

执行结果:
表已创建。
步骤2:创建新的图书表“图书2”,只包含书名和单价,输入并执行以下命令:
Sql代码  收藏代码
  1. CREATE TABLE 图书2(书名,单价) AS SELECT 图书名称,单价 FROM 图书;  

执行结果:
表已创建。
步骤3:创建新的图书表“图书3”,只包含书名和单价,不复制内容,输入并执行以下命令:
Sql代码  收藏代码
  1. CREATE TABLE 图书3(书名,单价) AS SELECT 图书名称,单价 FROM 图书 WHERE 1=2;  

执行结果:
表已创建。
说明:“图书1”表的内容和结构同“图书”表完全一致,相当于表的复制。
“图书2”表只包含“图书”表的两列    “图书名称”和“单价”,并且对字段重新进行了命名,“图书2”表的“书名”对应“图书”表的“图书名称”,“图书2”表的“单价”对应“图书”表的“单价”。
“图书3”表同“图书2”表的结构一样,但表的内容为空。因为WHERE条件始终为假,没有满足条件的记录,所以没有复制表的内容。

表的重命名
语法如下:
RENAME 旧表名 TO 新表名;
只有表的拥有者,才能修改表名。
修改“图书”表为“图书5”表:
Sql代码  收藏代码
  1. RENAME 图书 TO 图书5;  

执行结果:
表已重命名。
添加注释
(1) 为表添加注释的语法为:
COMMENT ON TABLE 表名 IS '...';
该语法为表添加注释字符串。如IS后的字符串为空,则清除表注释。
为emp表添加注释:“公司雇员列表”。
Sql代码  收藏代码
  1. COMMENT ON TABLE emp IS '公司雇员列表';  

执行结果:
注释已创建。
  (2) 为列添加注释的语法为:
Sql代码  收藏代码
  1. COMMENT ON COLUMN 表名.列名 IS '...'  

该语法为列添加注释字符串。如IS后的字符串为空,则清除列注释。
为emp表的deptno列添加注释:“部门编号”。
Sql代码  收藏代码
  1. COMMENT ON COLUMN emp.deptno IS '部门编号';  

执行结果:
注释已创建。
可以通过对数据字典USER_OBJECTS的查询,显示当前模式用户的所有表
显示当前用户的所有表。
Sql代码  收藏代码
  1. SELECT object_name FROM user_objects WHERE object_type='TABLE';  

执行结果:
Sql代码  收藏代码
  1. OBJECT_NAME  
  2. ---------------------  
  3. BONUS  
  4. DEPT  
  5. EMP  
  6. SALGRADE  
  7. 出版社  
  8. 图书  

0 0
原创粉丝点击