
达梦文档论坛链接是:https://eco.dameng.com/search/ (你一定会用得到!)
入门信息查询
获取表名、表注释
需要权限
SELECT
TABLE_NAME AS "表名",
COMMENTS AS "表中文名",
TABLE_TYPE AS "表类型"
FROM
USER_TAB_COMMENTS
WHERE
TABLE_TYPE IN ('VIEW','TABLE')
LIMIT 10;
获取表字段信息
需要权限
SELECT
TABLE_NAME AS "表名",
COLUMN_NAME AS "字段名",
DATA_TYPE AS "字段类型",
DATA_LENGTH AS "字段长度",
NULLABLE AS "可为空",
COLUMN_ID AS "字段排序",
DATA_DEFAULT AS "默认值"
FROM
USER_TAB_COLUMNS;
LIMIT 10;
表 名长度检测SQL
需要权限
-- 表名长度检测SQL
SELECT
TABLE_NAME AS "表名",
char_length(TABLE_NAME) AS "表名长度"
FROM
USER_TAB_COMMENTS
ORDER BY
"表名长度" DESC;
LIMIT 10;
表 中文注释长度检测SQL
SELECT
t.TABLE_NAME AS "表名",
c.COMMENTS AS "表中文名",
char_length(c.COMMENTS) AS "表中文长度"
FROM
ALL_TABLES t
LEFT JOIN
ALL_TAB_COMMENTS c
ON
t.OWNER = c.OWNER AND t.TABLE_NAME = c.TABLE_NAME
WHERE
t.OWNER LIKE '%DEV%'
ORDER BY
t.TABLE_NAME
LIMIT 10;
检测表 字段 长度超长约束检测
-- 检测字段长度超长约束检测
SELECT
t.TABLE_NAME,
c.COLUMN_NAME,
char_length(c.COLUMN_NAME) as charLength,
c.DATA_TYPE,
c.DATA_LENGTH
FROM
USER_TABLES t
JOIN USER_TAB_COLUMNS c ON t.TABLE_NAME = c.TABLE_NAME
ORDER BY
t.TABLE_NAME,
c.COLUMN_ID
LIMIT 10;
检测字段列表 主键、非空标识
SELECT
t.TABLE_NAME AS 表名, -- 直接从字段表取表名,永不丢失
t.COLUMN_NAME AS 字段名,
LENGTH(t.COLUMN_NAME) AS 字段名长度,
t.DATA_TYPE AS 字段类型,
t.DATA_LENGTH AS 字段类型长度,
-- 主键判断
(CASE WHEN EXISTS (
SELECT 1 FROM USER_CONSTRAINTS uc
JOIN USER_CONS_COLUMNS ucc
ON uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
WHERE uc.TABLE_NAME = t.TABLE_NAME
AND ucc.COLUMN_NAME = t.COLUMN_NAME
AND uc.CONSTRAINT_TYPE = 'P'
) THEN 'Y' ELSE 'N' END) AS 是否主键,
-- 非空判断
(CASE WHEN t.NULLABLE = 'N' THEN 'Y' ELSE 'N' END) AS 是否非空
FROM
USER_TAB_COLUMNS t
-- 筛选表名(按需打开)
-- WHERE t.TABLE_NAME LIKE '%你的表名称%'
ORDER BY
t.TABLE_NAME,
t.COLUMN_ID;
完整表信息✅✅✅ 每次查询仅支持一个 SCHNAME
注意:不支持任何形式多模式下查询。仅支持单模式下查询!
注意:这里需要权限哦,如果不是本账号所持有的库,可能有些字段是空,建议不要通过SYSCOLUMNCOMMENTS 表的 SCHNAME 来筛选查询
「全能版本」部分表需要权限
-- 达梦数据库表结构信息查询
SELECT
-- 基本信息
t.OWNER AS "模式名",
t.TABLE_NAME AS "表名",
tc.COMMENTS AS "表注释",
c.COLUMN_NAME AS "字段名",
cc.COMMENTS AS "字段注释",
-- 字段类型信息
CASE
WHEN c.DATA_TYPE IN ('NUMBER', 'DECIMAL', 'NUMERIC') AND c.DATA_PRECISION IS NOT NULL THEN
c.DATA_TYPE || '(' || c.DATA_PRECISION ||
CASE WHEN c.DATA_SCALE > 0 THEN ',' || c.DATA_SCALE ELSE '' END || ')'
WHEN c.DATA_TYPE IN ('VARCHAR', 'VARCHAR2', 'CHAR', 'NVARCHAR2', 'NCHAR') THEN
c.DATA_TYPE || '(' || c.DATA_LENGTH || ')'
WHEN c.DATA_TYPE = 'CLOB' THEN 'CLOB'
WHEN c.DATA_TYPE = 'BLOB' THEN 'BLOB'
WHEN c.DATA_TYPE LIKE 'TIMESTAMP%' THEN c.DATA_TYPE
ELSE c.DATA_TYPE
END AS "完整字段类型",
c.DATA_TYPE AS "字段类型",
c.DATA_LENGTH AS "字段长度",
c.DATA_PRECISION AS "数值精度",
c.DATA_SCALE AS "小数位数",
-- 约束信息
CASE
WHEN pk.COLUMN_NAME IS NOT NULL THEN '是'
ELSE '否'
END AS "是否主键",
CASE
WHEN uk.COLUMN_NAME IS NOT NULL THEN '是'
ELSE '否'
END AS "是否唯一键",
CASE
WHEN fk.COLUMN_NAME IS NOT NULL THEN '是'
ELSE '否'
END AS "是否外键",
fk.R_TABLE_NAME AS "引用表名",
fk.R_COLUMN_NAME AS "引用字段",
-- 字段属性
CASE c.NULLABLE
WHEN 'Y' THEN '是'
WHEN 'N' THEN '否'
ELSE c.NULLABLE
END AS "可为空",
c.DATA_DEFAULT AS "默认值",
c.COLUMN_ID AS "字段排序",
-- 表信息
t.NUM_ROWS AS "表行数",
t.TABLESPACE_NAME AS "表空间",
t.LAST_ANALYZED AS "最后分析时间"
FROM
DBA_TABLES t
INNER JOIN DBA_TAB_COLUMNS c ON t.OWNER = c.OWNER AND t.TABLE_NAME = c.TABLE_NAME
LEFT JOIN DBA_TAB_COMMENTS tc ON t.OWNER = tc.OWNER AND t.TABLE_NAME = tc.TABLE_NAME
LEFT JOIN DBA_COL_COMMENTS cc ON c.OWNER = cc.OWNER AND c.TABLE_NAME = cc.TABLE_NAME AND c.COLUMN_NAME = cc.COLUMN_NAME
-- 主键约束
LEFT JOIN (
SELECT
uc.OWNER, uc.TABLE_NAME, ucc.COLUMN_NAME, uc.CONSTRAINT_NAME
FROM DBA_CONSTRAINTS uc
JOIN DBA_CONS_COLUMNS ucc ON uc.OWNER = ucc.OWNER
AND uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
WHERE uc.CONSTRAINT_TYPE = 'P'
) pk ON c.OWNER = pk.OWNER AND c.TABLE_NAME = pk.TABLE_NAME AND c.COLUMN_NAME = pk.COLUMN_NAME
-- 唯一约束
LEFT JOIN (
SELECT
uc.OWNER, uc.TABLE_NAME, ucc.COLUMN_NAME, uc.CONSTRAINT_NAME
FROM DBA_CONSTRAINTS uc
JOIN DBA_CONS_COLUMNS ucc ON uc.OWNER = ucc.OWNER
AND uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
WHERE uc.CONSTRAINT_TYPE = 'U'
) uk ON c.OWNER = uk.OWNER AND c.TABLE_NAME = uk.TABLE_NAME AND c.COLUMN_NAME = uk.COLUMN_NAME
-- 外键约束
LEFT JOIN (
SELECT
uc.OWNER, uc.TABLE_NAME, ucc.COLUMN_NAME, uc.CONSTRAINT_NAME,
r_uc.TABLE_NAME AS R_TABLE_NAME, r_ucc.COLUMN_NAME AS R_COLUMN_NAME
FROM DBA_CONSTRAINTS uc
JOIN DBA_CONS_COLUMNS ucc ON uc.OWNER = ucc.OWNER
AND uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
LEFT JOIN DBA_CONSTRAINTS r_uc ON uc.R_CONSTRAINT_NAME = r_uc.CONSTRAINT_NAME
LEFT JOIN DBA_CONS_COLUMNS r_ucc ON r_uc.OWNER = r_ucc.OWNER
AND r_uc.CONSTRAINT_NAME = r_ucc.CONSTRAINT_NAME
WHERE uc.CONSTRAINT_TYPE = 'R'
) fk ON c.OWNER = fk.OWNER AND c.TABLE_NAME = fk.TABLE_NAME AND c.COLUMN_NAME = fk.COLUMN_NAME
WHERE
-- 可以根据需要添加过滤条件
t.OWNER LIKE 'SOME_SCHEMA%' -- 模式过滤
-- AND t.TABLE_NAME LIKE '%USER%' -- 表名过滤
-- AND t.TABLE_TYPE = 'TABLE' -- 只查询表,不包括视图
GROUP BY
t.OWNER, t.TABLE_NAME, tc.COMMENTS, c.COLUMN_NAME, cc.COMMENTS,
c.DATA_TYPE, c.DATA_LENGTH, c.DATA_PRECISION, c.DATA_SCALE,
pk.COLUMN_NAME, uk.COLUMN_NAME, fk.COLUMN_NAME, fk.R_TABLE_NAME, fk.R_COLUMN_NAME,
c.NULLABLE, c.DATA_DEFAULT, c.COLUMN_ID, t.NUM_ROWS, t.TABLESPACE_NAME, t.LAST_ANALYZED
ORDER BY
t.OWNER, t.TABLE_NAME, c.COLUMN_ID;
「基础版」不需要权限(少了表分析)
不需要再修改了。核心表没权限只能获取到这些!
SELECT
columnComment.SCHNAME AS "表模式所属",
tabInfo.TABLE_NAME AS "表名",
tabComment.COMMENTS AS "表注释",
tabInfo.COLUMN_NAME AS "字段名",
columnComment.COMMENT$ AS "字段注释",
tabInfo.DATA_TYPE AS "字段类型",
tabInfo.DATA_LENGTH AS "字段长度",
(CASE WHEN EXISTS (
SELECT 1 FROM USER_CONSTRAINTS uc
JOIN USER_CONS_COLUMNS ucc
ON uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
WHERE uc.TABLE_NAME = tabInfo.TABLE_NAME
AND ucc.COLUMN_NAME = tabInfo.COLUMN_NAME
AND uc.CONSTRAINT_TYPE = 'P'
) THEN '是' ELSE '否' END) AS 是否主键,
tabInfo.NULLABLE AS "可为空",
tabInfo.COLUMN_ID AS "字段排序",
tabInfo.DATA_DEFAULT AS "默认值"
FROM
USER_TAB_COLUMNS tabInfo
LEFT JOIN USER_TAB_COMMENTS tabComment
ON tabInfo.TABLE_NAME = tabComment.TABLE_NAME
LEFT JOIN SYSCOLUMNCOMMENTS columnComment
ON tabInfo.TABLE_NAME = columnComment.TVNAME
AND tabInfo.COLUMN_NAME = columnComment.COLNAME
WHERE
columnComment.SCHNAME = '你的库名称'
ORDER BY
tabInfo.TABLE_NAME,
tabInfo.COLUMN_ID
LIMIT 10000;
「基础优化版」
减少子查询,注意:每次查询仅支持一个 SCHNAME
SELECT
sc.SCHNAME AS "表模式所属",
tc.TABLE_NAME AS "表名",
tab.COMMENTS AS "表注释",
tc.COLUMN_NAME AS "字段名",
sc.COMMENT$ AS "字段注释",
tc.DATA_TYPE AS "字段类型",
tc.DATA_LENGTH AS "字段长度",
NVL(pk.IS_PRIMARY, '否') AS 是否主键,
tc.NULLABLE AS "可为空",
tc.COLUMN_ID AS "字段排序",
tc.DATA_DEFAULT AS "默认值"
FROM
USER_TAB_COLUMNS tc
LEFT JOIN USER_TAB_COMMENTS tab
ON tc.TABLE_NAME = tab.TABLE_NAME
LEFT JOIN SYSCOLUMNCOMMENTS sc
ON tc.TABLE_NAME = sc.TVNAME
AND tc.COLUMN_NAME = sc.COLNAME
LEFT JOIN (
-- 一次性查出所有主键,只查1次!性能提升巨大
SELECT DISTINCT
ucc.TABLE_NAME,
ucc.COLUMN_NAME,
'是' AS IS_PRIMARY
FROM USER_CONSTRAINTS uc
JOIN USER_CONS_COLUMNS ucc
ON uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
WHERE uc.CONSTRAINT_TYPE = 'P'
) pk ON tc.TABLE_NAME = pk.TABLE_NAME AND tc.COLUMN_NAME = pk.COLUMN_NAME
WHERE
sc.SCHNAME = '你的库名称' -- 固定模式,速度最快
ORDER BY
tc.TABLE_NAME,
tc.COLUMN_ID
LIMIT 10000;
物理模型
反推物理模型版1 每次查询仅支持一个 SCHNAME
-- 获取所有的表结构
SELECT
columnComment.SCHNAME AS "表模式所属",
tabInfo.TABLE_NAME AS "表代码",
tabComment.COMMENTS AS "表名称",
tabComment.COMMENTS AS "表说明",
tabInfo.COLUMN_NAME AS "字段代码",
columnComment.COMMENT$ AS "字段名",
columnComment.COMMENT$ AS "字段注释",
tabInfo.DATA_TYPE AS "数据类型",
tabInfo.DATA_LENGTH AS "数据长度",
(CASE WHEN EXISTS (
SELECT 1 FROM USER_CONSTRAINTS uc JOIN USER_CONS_COLUMNS ucc
ON uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
WHERE uc.TABLE_NAME = tabInfo.TABLE_NAME AND ucc.COLUMN_NAME = tabInfo.COLUMN_NAME AND uc.CONSTRAINT_TYPE = 'P'
) THEN '是' ELSE '否' END) AS "是否主键",
tabInfo.NULLABLE AS "可为空",
tabInfo.DATA_DEFAULT AS "默认值",
tabInfo.COLUMN_ID AS "字段排序"
FROM
USER_TAB_COLUMNS AS tabInfo
LEFT JOIN USER_TAB_COMMENTS AS tabComment ON
tabInfo.TABLE_NAME = tabComment.TABLE_NAME
LEFT JOIN SYSCOLUMNCOMMENTS AS columnComment ON
tabInfo.COLUMN_NAME = columnComment.COLNAME
AND tabInfo.TABLE_NAME = columnComment.TVNAME
AND columnComment.SCHNAME LIKE '%你的模式名称%'
WHERE
tabInfo.TABLE_NAME LIKE '%你的表名称%'
ORDER BY
tabInfo.TABLE_NAME ASC,
tabInfo.COLUMN_ID ASC,
tabInfo.COLUMN_NAME ASC
反推物理模型版2 每次查询仅支持一个 SCHNAME
GPT 说通过连接查询,减少不必要的子查询。
SELECT
columnComment.SCHNAME AS "表模式所属",
tabInfo.TABLE_NAME AS "表代码",
tabComment.COMMENTS AS "表名称",
tabComment.COMMENTS AS "表说明",
tabInfo.COLUMN_NAME AS "字段代码",
columnComment.COMMENT$ AS "字段名",
columnComment.COMMENT$ AS "字段注释",
tabInfo.DATA_TYPE AS "数据类型",
tabInfo.DATA_LENGTH AS "数据长度",
CASE
WHEN pk_info.COLUMN_NAME IS NOT NULL THEN '是'
ELSE '否'
END AS "是否主键",
tabInfo.NULLABLE AS "可为空",
tabInfo.DATA_DEFAULT AS "默认值",
tabInfo.COLUMN_ID AS "字段排序"
FROM
USER_TAB_COLUMNS AS tabInfo
LEFT JOIN USER_TAB_COMMENTS AS tabComment
ON tabInfo.TABLE_NAME = tabComment.TABLE_NAME
LEFT JOIN SYSCOLUMNCOMMENTS AS columnComment
ON tabInfo.COLUMN_NAME = columnComment.COLNAME
AND tabInfo.TABLE_NAME = columnComment.TVNAME
AND columnComment.SCHNAME LIKE '%你的模式名称%'
LEFT JOIN (
SELECT
ucc.COLUMN_NAME,
uc.TABLE_NAME
FROM
USER_CONSTRAINTS uc
JOIN
USER_CONS_COLUMNS ucc
ON uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
WHERE
uc.CONSTRAINT_TYPE = 'P'
) pk_info ON
tabInfo.TABLE_NAME = pk_info.TABLE_NAME
AND tabInfo.COLUMN_NAME = pk_info.COLUMN_NAME
WHERE
tabInfo.TABLE_NAME LIKE '%你的表名称%'
ORDER BY
tabInfo.TABLE_NAME ASC,
tabInfo.COLUMN_ID ASC,
tabInfo.COLUMN_NAME ASC;
达梦数据库如何将字段的非空删除掉
在达梦数据库中,要将表中某个字段的非空限制删除,您可以使用ALTER TABLE语句来更改表结构。具体来说,您可以使用以下语法:
ALTER TABLE table_name MODIFY column_name data_type [NULL|NOT NULL];
其中,table_name是要更改的表名,column_name是要更改的字段名,data_type是字段的数据类型,NULL或NOT NULL表示是否允许字段为空。
如果要将字段的非空限制删除,只需将NOT NULL更改为NULL即可。例如,如果要将表my_table中的字段my_column的非空限制删除,可以使用以下语句:
ALTER TABLE my_table MODIFY my_column varchar(50) NULL;
执行上述语句后,my_column字段将不再具有非空限制。请注意,如果该字段中已经存在非空值,您需要先将这些值更改为NULL或其他允许的值,然后才能将非空限制删除。
其他案例
达梦数据库8如何检测字段是否是主键、非空
SELECT
t.TABLE_NAME,
c.COLUMN_NAME,
char_length(c.COLUMN_NAME) AS charLength,
c.DATA_TYPE,
c.DATA_LENGTH
FROM
USER_TABLES t
JOIN USER_TAB_COLUMNS c ON
t.TABLE_NAME = c.TABLE_NAME
ORDER BY
t.TABLE_NAME,
c.COLUMN_ID;
请在此基础上修改
要检测达梦数据库8中表中字段是否是主键、非空或SELECT,您可以使用以下SQL查询语句:
SELECT
t.TABLE_NAME,
c.COLUMN_NAME,
char_length(c.COLUMN_NAME) AS charLength,
c.DATA_TYPE,
c.DATA_LENGTH,
(CASE
WHEN EXISTS (
SELECT
1
FROM
USER_CONSTRAINTS uc
JOIN USER_CONS_COLUMNS ucc ON
uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
WHERE
uc.TABLE_NAME = t.TABLE_NAME
AND ucc.COLUMN_NAME = c.COLUMN_NAME
AND uc.CONSTRAINT_TYPE = 'P' ) THEN 'Y'
ELSE 'N'
END) AS isPrimaryKey,
(CASE
WHEN c.NULLABLE = 'N' THEN 'Y'
ELSE 'N'
END) AS isNotNull,
(CASE
WHEN c.COLUMN_NAME IN (
SELECT
COLUMN_NAME
FROM
USER_TAB_COLS
WHERE
TABLE_NAME = t.TABLE_NAME
AND HIDDEN_COLUMN = 'NO' ) THEN 'Y'
ELSE 'N'
END) AS isSelectable
FROM
USER_TABLES t
JOIN USER_TAB_COLUMNS c ON
t.TABLE_NAME = c.TABLE_NAME
ORDER BY
t.TABLE_NAME,
c.COLUMN_ID;
上述查询语句基于您提供的查询语句,并添加了三个新的列:isPrimaryKey、isNotNull和isSelectable。这三个列分别指示每个字段是否是主键、非空或SELECT。
isPrimaryKey列使用子查询来检查每个字段是否是表的主键。如果字段是主键,则将该列设置为'Y',否则设置为'N'。
isNotNull列检查每个字段是否允许为空。如果字段不允许为空,则将该列设置为'Y',否则设置为'N'。
isSelectable列检查每个字段是否可以在SELECT语句中使用。如果字段是可选的,则将该列设置为'Y',否则设置为'N'。注意,此列还会检查隐藏列,因为隐藏列不能在SELECT语句中使用。
请注意,如果表中存在复合主键,则需要对子查询进行修改以检查所有主键列。此外,如果表中存在外键,则可以使用类似的方法检查外键列是否是非空的。
「本篇核心原理」达梦数据库的 字段注释字段存储在那张表中?
在达梦数据库中,字段注释存储在系统表USER_COL_COMMENTS中。该表包含了所有用户定义的表和视图中的列的注释信息。您可以使用以下SQL查询语句来检索特定表的所有列的注释信息:
SELECT TABLE_NAME, COLUMN_NAME, COMMENTS FROM USER_COL_COMMENTS WHERE TABLE_NAME = 'your_table_name';
在上述语句中,将your_table_name替换为您要检索注释信息的表名即可。该查询将返回指定表的所有列的注释信息,包括列名、注释内容和所属表名。
如果您想查看所有表的列注释信息,可以使用以下查询语句:
SELECT TABLE_NAME, COLUMN_NAME, COMMENTS FROM USER_COL_COMMENTS;
上述查询将返回所有用户定义的表和视图中的列的注释信息,包括列名、注释内容和所属表名。
请你帮我列出 SELECT * from USER_TABLES 每个字段的含义
在达梦数据库中,USER_TABLES是一个系统表,用于存储当前用户拥有的所有表的信息。该表包含以下字段:
TABLE_NAME:表名。TABLE_TYPE:表类型,包括“TABLE”(普通表)和“VIEW”(视图)。TABLESPACE_NAME:表所在的表空间名称。CLUSTER_NAME:表所在的簇名称。IOT_NAME:表所在的索引有组织表名称。STATUS:表的状态,包括“VALID”(有效)和“INVALID”(无效)。PCT_FREE:表中空闲块的百分比。PCT_USED:表中已使用块的百分比。INI_TRANS:表中事务的初始数。MAX_TRANS:表中事务的最大数。INITIAL_EXTENT:表的初始大小。NEXT_EXTENT:表的下一个大小。MIN_EXTENTS:表的最小扩展数。MAX_EXTENTS:表的最大扩展数。PCT_INCREASE:表的扩展百分比。FREELISTS:表的自由列表数。FREELIST_GROUPS:表的自由列表组数。LOGGING:表的日志记录模式,包括“YES”(记录)和“NO”(不记录)。BACKED_UP:表是否已备份,包括“YES”(已备份)和“NO”(未备份)。NUM_ROWS:表中的行数。BLOCKS:表占用的块数。EMPTY_BLOCKS:表中空块的数目。AVG_SPACE:表的平均空间。CHAIN_CNT:表中的行链接计数。AVG_ROW_LEN:表的平均行长度。AVG_SPACE_FREELIST_BLOCKS:自由列表块的平均空间。NUM_FREELIST_BLOCKS:自由列表块的数量。DEGREE:并发访问表的最大数。INSTANCES:表的实例数。
以上是USER_TABLES表中的所有字段及其含义。注意,不同版本的达梦数据库可能会有所不同,您可以参考官方文档以获取更准确的信息。
请你帮我列出 SELECT * from USER_TABLES 每个字段的含义,以表格形式
好的,以下是USER_TABLES表中每个字段的含义,以表格形式呈现:
| 字段名 | 含义 |
|---|---|
| TABLE_NAME | 表名 |
| TABLE_TYPE | 表类型,包括“TABLE”(普通表)和“VIEW”(视图) |
| TABLESPACE_NAME | 表所在的表空间名称 |
| CLUSTER_NAME | 表所在的簇名称 |
| IOT_NAME | 表所在的索引有组织表名称 |
| STATUS | 表的状态,包括“VALID”(有效)和“INVALID”(无效) |
| PCT_FREE | 表中空闲块的百分比 |
| PCT_USED | 表中已使用块的百分比 |
| INI_TRANS | 表中事务的初始数 |
| MAX_TRANS | 表中事务的最大数 |
| INITIAL_EXTENT | 表的初始大小 |
| NEXT_EXTENT | 表的下一个大小 |
| MIN_EXTENTS | 表的最小扩展数 |
| MAX_EXTENTS | 表的最大扩展数 |
| PCT_INCREASE | 表的扩展百分比 |
| FREELISTS | 表的自由列表数 |
| FREELIST_GROUPS | 表的自由列表组数 |
| LOGGING | 表的日志记录模式,包括“YES”(记录)和“NO”(不记录) |
| BACKED_UP | 表是否已备份,包括“YES”(已备份)和“NO”(未备份) |
| NUM_ROWS | 表中的行数 |
| BLOCKS | 表占用的块数 |
| EMPTY_BLOCKS | 表中空块的数目 |
| AVG_SPACE | 表的平均空间 |
| CHAIN_CNT | 表中的行链接计数 |
| AVG_ROW_LEN | 表的平均行长度 |
| AVG_SPACE_FREELIST_BLOCKS | 自由列表块的平均空间 |
| NUM_FREELIST_BLOCKS | 自由列表块的数量 |
| DEGREE | 并发访问表的最大数 |
| INSTANCES | 表的实例数 |
希望这个表格能够帮助您更好地理解USER_TABLES表中每个字段的含义。
好的,以下是USER_TAB_COLUMNS表中每个字段的含义,以表格形式呈现:
| 字段名 | 含义 |
|---|---|
| TABLE_NAME | 列所属表的名称 |
| COLUMN_NAME | 列的名称 |
| DATA_TYPE | 列的数据类型 |
| DATA_LENGTH | 列的数据长度 |
| DATA_PRECISION | 数值列的精度 |
| DATA_SCALE | 数值列的小数位数 |
| NULLABLE | 列是否允许为空,包括“Y”(允许)和“N”(不允许) |
| COLUMN_ID | 列的序号 |
| DEFAULT_LENGTH | 默认值的长度 |
| DATA_DEFAULT | 列的默认值 |
| NUM_DISTINCT | 列中不同值的数量 |
| LOW_VALUE | 列中的最小值 |
| HIGH_VALUE | 列中的最大值 |
| DENSITY | 列中值的密度 |
| NUM_NULLS | 列中的空值数量 |
| NUM_BUCKETS | 直方图的桶数 |
| LAST_ANALYZED | 列的最后分析日期 |
| SAMPLE_SIZE | 用于直方图的样本大小 |
| CHARACTER_SET_NAME | 列的字符集名称 |
| CHAR_COL_DECL_LENGTH | 列的字符长度 |
| GLOBAL_STATS | 是否为全局统计信息 |
| USER_STATS | 是否为用户统计信息 |
| AVG_COL_LEN | 列的平均长度 |
| CHAR_LENGTH | 列的字符长度 |
| CHAR_USED | 列的字符是否使用 |
| V80_FMT_IMAGE | 列的V80格式图像 |
| DATA_UPGRADED | 列的数据是否已升级 |
希望这个表格能够帮助您更好地理解USER_TAB_COLUMNS表中每个字段的含义。
脚本生成:
SELECT
t.TABLE_NAME AS 表名,
c.COLUMN_NAME AS 字段名,
char_length(c.COLUMN_NAME) AS 字段名长度,
zhushi.COMMENT$ AS 字段注释,
c.DATA_TYPE AS 字段类型,
c.DATA_LENGTH AS 字段类型长度,
(CASE WHEN EXISTS (
SELECT 1 FROM USER_CONSTRAINTS uc JOIN USER_CONS_COLUMNS ucc
ON uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
WHERE uc.TABLE_NAME = t.TABLE_NAME AND ucc.COLUMN_NAME = c.COLUMN_NAME AND uc.CONSTRAINT_TYPE = 'P'
) THEN '是' ELSE '否' END) AS 主键,
(CASE WHEN c.NULLABLE = 'N' THEN '是' ELSE '否' END) AS 非空
FROM
USER_TABLES t
JOIN USER_TAB_COLUMNS c ON t.TABLE_NAME = c.TABLE_NAME
LEFT JOIN SYSCOLUMNCOMMENTS AS zhushi ON zhushi.TVNAME = c.TABLE_NAME and zhushi.COLNAME = c.COLUMN_NAME
ORDER BY
t.TABLE_NAME,
c.COLUMN_ID
表内存使用情况
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤
免责声明: 本站文章旨在总结学习互联网技术过程中的经验与见解。任何人不得将其用于违法或违规活动!所有违规内容均由个人自行承担,与作者无关。
