如何使用sql语句,查询oracle的表注释等信息?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用sql语句,查询oracle的表注释等信息?相关的知识,希望对你有一定的参考价值。

select comments
from USER_COL_COMMENTS
where table_name= 'student'
and column_name= 'stunum'

Oracle 下读取表/字段的备注信息
Oracle 通过COMMENT ON TABLE / COMMENT ON COLUMN 追加表/字段的备注。

CREATE TABLE "MR_DEPT" (
"DEPT_ID" NUMBER NOT NULL ,
"PARENT_ID" NUMBER,
"DEPT_NAME" CHAR(20) NOT NULL ,
"STATUS" NUMBER DEFAULT 1 NOT NULL ,
PRIMARY KEY ("DEPT_ID")
);

COMMENT ON TABLE "MR_DEPT" IS '部门表';
COMMENT ON COLUMN "MR_DEPT"."DEPT_ID" IS '部门编号';
COMMENT ON COLUMN "MR_DEPT"."PARENT_ID" IS '上级部门编号';
COMMENT ON COLUMN "MR_DEPT"."DEPT_NAME" IS '部门名';
COMMENT ON COLUMN "MR_DEPT"."STATUS" IS '状态';

备注加好以后,如何在查询中检索呢?

查询表的备注信息
SELECT
TABLE_NAME,
TABLE_TYPE,
COMMENTS
FROM
USER_TAB_COMMENTS
WHERE
TABLE_NAME = 'MR_DEPT;

查询字段的备注信息

SELECT
TABLE_NAME,
COLUMN_NAME,
COMMENTS
FROM
USER_COL_COMMENTS
WHERE
TABLE_NAME = 'MR_DEPT;

参考资料:http://hi.baidu.com/wangzhiqing999/blog/item/6e081531bbef0e0790ef39dc.html

参考技术A 看看了网上的好多的sql查询语句,但是感觉那些都很简单,有谁能给我些高级这是我做过的几个SQL面试题,我写好了表并添加了测试数据,有兴趣的话试一 参考技术B SELECT
a.table_name,
a.column_name,
a.data_type,
CASE WHEN a.data_precision is null THEN a.data_length ||'' else a.data_precision||','||a.data_scale END data_precision_scale,
a.column_id,b.comments
FROM all_tab_columns a,all_col_comments b
WHERE a.owner=b.owner
AND a.table_name=b.table_name
AND a.column_name=b.column_name
AND lower(a.table_name) = ''student'
参考技术C 你就直接执行这个即可
select * from user_tab_comments;
参考技术D USER_TAB_COMMENTS

Oracle数据库中如何查询一个用户A下面所有的表的信息

1、打开pl/sql客户端,登录oracle数据库;

2、编写sql,select * from user_tables t where table_name like 'TEST%' order by 1;即可查看该用户下所有的表;

3、编写sql,select * from all_tables t;即可查看该库下所有用户所有的表;

4、编写sql;select * from user_tab_cols t where table_name like 'TEST%' order by 1, column_id;即可查看该用户下所有表的字段信息;

参考技术A 1、看用户的表的信息如同marliuang所说,不再赘述。当然了你用A登录后也可以用命令(select tname from tab;)查看。
2、显示乱码是因为oracle中的回收站(recyclebin)的缘故,为了防止用户误删除,oracle引入了回收站这一概念,你可以使用命令:purge recyclebin;(用户A登录)或者purge dbarecyclebin;(dba用户登录)这样就看不到这个表了。当然了你在删除表的时候直接写“drop table tablename purge;” 也是一样的。本回答被提问者采纳
参考技术B 方法一:以A用户登录数据库,执行select table_name from user_tables;
方法二:以system用户登录数据,执行select table_name from dba_tables where owner='A';追问

为什么我之前删除了用户A下的表info,现在查询用户A下面所有的表的信息,里面应该没有表的,但是却显示出了一段乱码,我在Sql/Plus上面执行的

追答

把显示的乱码贴出来看看

参考技术C select * from tab; 参考技术D select * from A

以上是关于如何使用sql语句,查询oracle的表注释等信息?的主要内容,如果未能解决你的问题,请参考以下文章

oracle 怎样查询某用户下的所有表的表名

oracle 怎样查询某用户下的所有表的表名

如何MyBatis中使用动态SQL查询与注释

oracle 查看建表语句

用SQL语句查询出数据表中的字段名以及注释(Oracle)

oracle/ms sql 系统表