一、查询所有表信息
获取当前用户所有表
select table_name from user_tables;
获取该数据库下的所有表
select table_name from all_tables;
获取该数据库下的所有表(包含系统表)
select table_name from dba_tables;
获取该数据库下某个用户的所有表(包含系统表)
select table_name from dba_tables where owner='用户名';
二、查询某个表的所有字段
获取当前用户某个表的所有列
select * from user_tab_columns where Table_Name='用户表';
同理还有all_tab_columns、dba_tab_columns
重要字段解释
table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id
表名,列名称(英文),列类型,类型长度,类型整数位,类型小数位,是否为空,列id
举例说明:
alter table 表名 add price decimal(12, 2) not null;
column_name: price;data_type: decimal;data_length: 22;data_precision: 12;data_scale: 2;nullable: N
三、查询表注释
select * from user_tab_comments
同理还有:all_tab_comments、dba_tab_comments
四、查询列注释
select * from user_col_comments
同理还有:all_col_comments、dba_col_comments
五、查询某个表的所有列的类型和注释
select aa.COLUMN_NAME 列名,
aa.DATA_TYPE 字段类型,
ss.comments 描述,
data_length 类型长度,
data_precision 整数位,
data_scale 小数位,
nullable 是否非空
from all_tab_columns aa
inner join all_col_comments ss on ss.COLUMN_NAME = aa.COLUMN_NAME and ss.Table_Name = aa.Table_Name
where aa.Table_Name = '表名'
and aa.owner = '用户名'
order by aa.column_id;
查询当前用户下的表类型和注释
select aa.COLUMN_NAME 列名,
aa.DATA_TYPE 字段类型,
ss.comments 描述,
data_length 类型长度,
data_precision 整数位,
data_scale 小数位,
nullable 是否非空
from user_tab_columns aa
inner join user_col_comments ss on ss.COLUMN_NAME = aa.COLUMN_NAME and ss.Table_Name = aa.Table_Name
where aa.Table_Name = '表名'
order by aa.column_id;