oracle使用总结

编辑于2018.10.3

一、查询表结构

  1. 查询所有表名:
    select t.table_name from user_tables t;

  2. 查询所有字段名:
    select t.column_name from user_col_comments t;

  3. 查询指定字段名:

select t.* from user_col_comments t where t.COLUMN_NAME = '';
  1. 查询指定表的所有字段名:
    select t.column_name from user_col_comments t where t.table_name = 'BIZ_DICT_XB';

  2. 查询指定表的所有字段名和字段说明:
    select t.column_name, t.column_name from user_col_comments t where t.table_name = 'BIZ_DICT_XB';

  3. 查询所有表的表名和表说明:
    select t.table_name,f.comments from user_tables t inner join user_tab_comments f on t.table_name = f.table_name;

  4. 查询模糊表名的表名和表说明:
    select t.table_name from user_tables t where t.table_name like 'BIZ_DICT%';
    select t.table_name,f.comments from user_tables t inner join user_tab_comments f on t.table_name = f.table_name where t.table_name like 'BIZ_DICT%';

  5. 查询表的数据条数、表名、中文表名:

select a.num_rows, a.TABLE_NAME, b.COMMENTS
from user_tables a, user_tab_comments b
WHERE a.TABLE_NAME = b.TABLE_NAME
order by TABLE_NAME;

二、复制表(除oracle以外的数据库)

  1. 复制表结构及数据到新表
    CREATE TABLE 新表 SELECT * FROM 旧表

  2. 只复制表结构到新表
    CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
    即:让WHERE条件不成立.

  3. 复制旧表的数据到新表(假设两个表结构一样)
    INSERT INTO 新表 SELECT * FROM 旧表

  4. 复制旧表的数据到新表(假设两个表结构不一样)
    INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表

三、Oracle复制表

  1. 只复制表结构的sql
    create table 新表 as select * from 旧表 where 1<>1

  2. 即复制表结构又复制表中数据的sql
    create table 新表 as select * from 旧表

  3. Oracle复制表的指定字段的sql
    create table 新表 as select row_id,name,age from 旧表 where 1<>1
    前提是row_id,name,age都是a表的列

  4. 复制表的指定字段及这些指定字段的数据的sql
    create table 新表 as select row_id,name,age from 旧表
    以上语句虽然能够很容易的根据a表结构复制创建b表,但是a表的索引等却复制不了,需要在b中手动建立。

  5. insert into 会将查询结果保存到已经存在的表中
    insert into 新表(column1, column2, ....) select column1, column2, .... from 旧表

你可能感兴趣的:(oracle使用总结)