MySQL、Oracle 通过SQL查看表注释、字段信息

本文介绍了如何在MySQL、Oracle和SQL Server 2005中查询表注释及字段信息的方法,包括查看表的注释、字段的数据类型、长度、是否为空及字段的注释等详细信息。

目录

1.MySQL

1.1查看表注释

1.2查看字段信息

2.Oracle

2.1查看表注释

2.2查看字段信息

3.sqlsever 2005

3.1查看字段信息


 

1.MySQL

      1.1查看表注释

         用 SHOW TABLE STATUS [FROM db_name]

SHOW TABLE STATUS; --数据库下所有表注释
SHOW TABLE STATUS FROM 'dbname'; --数据库[dbname]下所有表注释
SHOW TABLE STATUS FROM 'dbname' WHERE NAME = 'table'; --查看表[table]的注释

      1.2查看字段信息

-- 查询数据库 db_name 的 表 table_name 的字段信息
select * from information_schema.columns T
  where table_schema ='db_name' and table_name = 'table_name';

2.Oracle

      2.1查看表注释

        user_tab_comments 

SELECT * FROM user_tab_comments t WHERE t.table_name='TABLE_NAME';
eg: 
SELECT * FROM user_tab_comments t WHERE t.table_name='USER_INFO';

      2.2查看字段信息

        user_col_comments(字段注释) 、user_tab_columns(当前用户,字段其他信息)、all_tab_columns(所有用户)

-- 查询 字段名称、注释
SELECT t.column_name, t.comments
  FROM user_col_comments t
  WHERE t.table_name='USER_INFO';

-- 查询 字段名称、类型、长度、是否为空
SELECT t.column_name, t.data_type, t.data_length, t.nullable
  FROM user_tab_columns t 
  WHERE t.table_name='USER_INFO';

-- 查询 字段名称、类型、长度、是否为空、注释
SELECT t1.column_name, t1.data_type, t1.data_length, t1.nullable, t.comments
  FROM user_col_comments t 
  LEFT JOIN user_tab_columns t1 ON t1.table_name = t.table_name AND t1.column_name = t.column_name
  WHERE t.table_name='USER_INFO';

3.sqlsever 2005

      3.1查看字段信息

-- 查询 表名称、字段名称、注释
SELECT
  A.name AS table_name,
  B.name AS column_name,
  C.value AS column_description
FROM sys.tables A
INNER JOIN sys.columns B ON B.object_id = A.object_id
LEFT JOIN sys.extended_properties C ON C.major_id = B.object_id AND C.minor_id = B.column_id
WHERE A.name = 'table_name'
 
<think>嗯,用户想了解MySQLOracle如何根据名称或字段注释查找名。我需要先回忆这两个数据库的系统结构。 对于MySQL,我记得信息模式(INFORMATION_SCHEMA)里有COLUMNS,里面存储了字段注释。所以,如果要根据字段注释,应该查询COLUMNS,用COLUMN_COMMENT字段过滤。而根据名的话,可能用TABLES的TABLE_NAME字段。不过用户可能需要的是模糊查询,所以得用LIKE操作符。 然后是OracleOracle的数据字典视图比较复杂。字段注释应该在ALL_COL_COMMENTS,注释在ALL_TAB_COMMENTS。所以根据字段注释查询时,需要连接ALL_TAB_COLUMNS和ALL_COL_COMMENTS,或者直接查ALL_COL_COMMENTS的COMMENTS字段名的话,查ALL_TABLES中的TABLE_NAME,或者结合注释的话用ALL_TAB_COMMENTS。 需要注意权限问题,比如ALL_开头的视图只能看到用户有权限访问的对象,如果需要包括所有,可能需要用DBA_视图,但需要更高权限。另外,用户可能需要模糊查询的例子,所以示例中应该包含%符号,比如LIKE '%关键字%'。 可能用户实际应用场景是在数据库维护或逆向工程时,根据注释快速定位结构。要确保给出的SQL示例正确,并且解释清楚每个部分的作用,避免用户执行时报错。还要提醒注释是否填写,因为如果注释为空,查询可能不会有结果。最后,检查语法是否正确,比如Oracle的字符串连接符||的使用,以及别名是否正确。</think>以下是MySQLOracle根据名称或字段注释查找名的SQL写法: --- ### 一、MySQL实现方式 #### 1. 根据**字段注释**查找名 ```sql SELECT TABLE_SCHEMA AS '数据库名', TABLE_NAME AS '名', COLUMN_NAME AS '字段名', COLUMN_COMMENT AS '字段注释' FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_COMMENT LIKE '%关键词%'; ``` #### 2. 根据**名**查找 ```sql SELECT TABLE_SCHEMA AS '数据库名', TABLE_NAME AS '名', TABLE_COMMENT AS '注释' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%关键词%'; ``` --- ### 二、Oracle实现方式 #### 1. 根据**字段注释**查找名 ```sql SELECT OWNER AS "所属用户", TABLE_NAME AS "名", COLUMN_NAME AS "字段名", COMMENTS AS "字段注释" FROM ALL_COL_COMMENTS WHERE COMMENTS LIKE '%关键词%'; ``` #### 2. 根据**名或注释**查找 ```sql SELECT OWNER AS "所属用户", TABLE_NAME AS "名", COMMENTS AS "注释" FROM ALL_TAB_COMMENTS WHERE TABLE_NAME LIKE '%关键词%' OR COMMENTS LIKE '%关键词%'; ``` --- ### 三、关键说明 1. **模糊查询**:`LIKE '%关键词%'`中的`%`为通配符,示任意字符 2. **权限差异**: - `ALL_`开头的视图:显示当前用户有权限访问的对象 - `DBA_`开头的视图:需要DBA权限(显示所有对象) - `USER_`开头的视图:仅显示当前用户拥有的对象 3. **注释为空的情况**:如果字段/未设置注释,则不会出现在查询结果中 --- ### 四、扩展用法示例 #### 同时查询表名和字段注释Oracle) ```sql SELECT a.TABLE_NAME AS "名", a.COLUMN_NAME AS "字段名", b.COMMENTS AS "字段注释" FROM ALL_TAB_COLUMNS a LEFT JOIN ALL_COL_COMMENTS b ON a.OWNER = b.OWNER AND a.TABLE_NAME = b.TABLE_NAME AND a.COLUMN_NAME = b.COLUMN_NAME WHERE b.COMMENTS LIKE '%订单%'; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值