編輯于2018.10.3
一、查詢表結(jié)構(gòu)
查詢所有表名:
select t.table_name from user_tables t;查詢所有字段名:
select t.column_name from user_col_comments t;查詢指定字段名:
select t.* from user_col_comments t where t.COLUMN_NAME = '';
查詢指定表的所有字段名:
select t.column_name from user_col_comments t where t.table_name = 'BIZ_DICT_XB';查詢指定表的所有字段名和字段說明:
select t.column_name, t.column_name from user_col_comments t where t.table_name = 'BIZ_DICT_XB';查詢所有表的表名和表說明:
select t.table_name,f.comments from user_tables t inner join user_tab_comments f on t.table_name = f.table_name;查詢模糊表名的表名和表說明:
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%';查詢表的數(shù)據(jù)條數(shù)、表名、中文表名:
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;
二、復(fù)制表(除oracle以外的數(shù)據(jù)庫)
復(fù)制表結(jié)構(gòu)及數(shù)據(jù)到新表
CREATE TABLE 新表 SELECT * FROM 舊表只復(fù)制表結(jié)構(gòu)到新表
CREATE TABLE 新表 SELECT * FROM 舊表 WHERE 1=2
即:讓W(xué)HERE條件不成立.復(fù)制舊表的數(shù)據(jù)到新表(假設(shè)兩個(gè)表結(jié)構(gòu)一樣)
INSERT INTO 新表 SELECT * FROM 舊表復(fù)制舊表的數(shù)據(jù)到新表(假設(shè)兩個(gè)表結(jié)構(gòu)不一樣)
INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 舊表
三、Oracle復(fù)制表
只復(fù)制表結(jié)構(gòu)的sql
create table 新表 as select * from 舊表 where 1<>1即復(fù)制表結(jié)構(gòu)又復(fù)制表中數(shù)據(jù)的sql
create table 新表 as select * from 舊表Oracle復(fù)制表的指定字段的sql
create table 新表 as select row_id,name,age from 舊表 where 1<>1
前提是row_id,name,age都是a表的列復(fù)制表的指定字段及這些指定字段的數(shù)據(jù)的sql
create table 新表 as select row_id,name,age from 舊表
以上語句雖然能夠很容易的根據(jù)a表結(jié)構(gòu)復(fù)制創(chuàng)建b表,但是a表的索引等卻復(fù)制不了,需要在b中手動(dòng)建立。insert into 會(huì)將查詢結(jié)果保存到已經(jīng)存在的表中
insert into 新表(column1, column2, ....) select column1, column2, .... from 舊表