45.4.4 列:USER_TAB_COLUMNS(COLS)
本文来自51CTO,本文原作者有一系列文章:
http://book.51cto.com/art/201007/212393.htm
尽管用户不从列中进行查询,但显示列的数据字典视图与表的数据字典视图仍然密切相关。USER_TAB_COLUMNS 视图列出了特定于列的信息。也可以通过公有同义词COLS 查询USER_TAB_COLUMNS 视图。
可从USER_TAB_COLUMNS 视图查询的列可以主要分为3 类:
标识列,如Table_Name、Column_Name 及Column_ID
与定义有关的列,如Data_Type、Data_Length、Data_Precision、Data_Scale、Nullable及Default_Length
与统计信息有关的列,如Num_Distinct、Low_Value、High_Value、Density、Num_Nulls及其他列
Table_Name 列和Column_Name 列包含表和列的名称。与定义有关的列的用法在附录A中的“DATATYPE”项中描述。与统计信息有关的列在分析表时填充。列的统计信息也在USER_TAB_COL_STATISTICS 视图(稍后介绍)中提供。
要查看表的列定义,可查询USER_TAB_COLUMNS 视图,并在where 子句中指定Table_Name:
select Column_Name, Data_Type from USER_TAB_COLUMNS where Table_Name = 'NEWSPAPER'; COLUMN_NAME DATA_TYPE | FEATURE VARCHAR2 SECTION CHAR PAGE NUMBER |
本示例中的信息还可通过SQL*Plus 中的describe 命令获得。但是,describe 命令不提供查看列的默认值和统计信息的选项。ALL_TAB_COLUMNS 视图显示用户拥有的和授权该用户(直接授权或者通过授权给PUBLIC(所有用户)) 访问的所有表和视图的列。由于ALL_TAB_COLUMNS 能包含多个用户的项,因此,除了USER_TAB_COLUMNS 视图中的列,它还包含一个Owner 列。DBA_TAB_COLUMNS 视图与ALL_TAB_COLUMNS 视图有相同的列定义,DBA _TAB_COLUMNS 视图列出了数据库中所有表和视图的列定义。
1. 列统计信息
大多数的列统计信息可从USER_TAB_COLUMNS 视图( 以前的存放地点) 和USE_TAB_COL_ STATISTICS 视图中得到。用于USER_TAB_COL_STATISTICS 视图的列就是USER_TAB_COLUMNS 视图中与统计信息有关的列,以及Table_Name 列和Column_Name 列。USER_TAB_COL_STATISTICS 视图包含由USER_TAB_COLUMNS 视图提供的向后兼容的统计信息列。可以通过USER_TAB_COL_STATISTICS 视图访问这些列。
2. 列值直方图
可以使用直方图改善基于成本的优化程序所使用的分析。USER_TAB_HISTOGRAMS 视图包含每一列的直方图信息,包括Table_Name 、Column_Name 、Endpoint_Number 、Endpoint_Value 和Endpoint_Actual_Value。USER_TAB_HISTOGRAMS 视图中的值由优化程序使用,以确定表中列值的分布。USER_TAB_HISTOGRAMS 视图的“ALL”版本和“DBA”版本都是可用的版本。
3. 可更新的列
可以在视图中更新记录,该视图包含它们在视图查询中的连接,只要该连接满足某种特定的条件即可。 USER_UPDATABLE_COLUMNS 视图列出了可更新的所有列。可以查询该列的Owner、 Table_Name 和Column_Name。如果列能够更新,则Updatable 列有一个值为YES;如果列不能更新,则有一个值为NO。还可以进行查询,以确定是否能通过Insertable列和Deletable 列在视图中插入或删除记录。
分享到:
相关推荐
USER_COL_COMMENTS ON USER_COL_COMMENTS.TABLE_NAME = USER_TAB_COLS.TABLE_NAME AND USER_COL_COMMENTS.COLUMN_NAME = USER_TAB_COLS.COLUMN_NAME; ``` #### 3. 查询表的注释信息 如果需要获取表的注释信息,...
查询dba_tab_columns 代码如下: select COLUMN_NAME,DATA_TYPE,DATA_LENGTH from dba_tab_columns where table_name =upper(‘表名’) order by COLUMN_NAME –这种方法需要有DBA权限 –第二种方法: 查询user_...
SELECT * FROM user_tab_cols WHERE table_name LIKE '%STH%'; ``` 这里的关键在于`LIKE`操作符,它允许你在字符串中进行模式匹配。`%`是通配符,表示任意数量的字符。因此,`'%STH%'`意味着在表名中的任何位置查找...
17. ALL_TAB_COLUMNS:用户可存取的表、视图、聚集的列 18. ALL_TAB_COMMENTS:用户可存取的表或视图上的注释 19. ALL_TAB_PRIVS:在对象上授权,该用户或PUBLIC 是被授与者 20. ALL_TRIGGERS:用户可存取的触发器 ...
- 使用`user_TAB_COLUMNS`视图查询指定表的所有列名和数据类型。 - 将查询结果转换为Type的定义格式(列名+数据类型)并拼接起来。 4. **构造并执行SQL语句**: - 根据`cols_s`构建完整的Type定义语句。 - 使用...
Oracle数据库维护了一系列系统表,如`USER_TAB_COLS`, `USER_COL_COMMENTS`, `USER_CONSTRAINTS`, 和 `USER_CONS_COLUMNS`,这些表存储了关于用户对象的信息。通过联合查询这些表,可以获取到更为详细的表结构信息...
20. **ALL_TAB_COLUMNS** - 描述:列出用户可以访问的表、视图和聚集的列。 - 用途:详细了解表结构。 21. **ALL_TAB_COMMENTS** - 描述:提供用户可以访问的表或视图上的注释。 - 用途:增强可读性和文档化。 ...
- **DBA_TAB_COLS**, **USER_TAB_COLS**: 包含各表的列信息。 - **DBA_IND_COLUMNS**, **USER_IND_COLUMNS**: 存储索引列的详细信息。 - **DBA_SEGMENTS**: 记录表和索引占用的存储空间情况。 通过这些系统对象,...
- **列信息**: `USER_TAB_COLS` 显示用户表的所有列信息。 - **会话信息**: `NLS_SESSION_PARAMETERS`, `V$NLS_PARAMETERS`, `V$SESSION` 分别提供当前会话的信息、系统级NLS参数和用户会话信息。 #### 五、数据...
- `DBA_TAB_COLUMNS` 或 `COLS`:提供所有用户表的列信息。 - `DBA_VIEWS`:列出所有用户的视图信息。 - `DBA_SEQUENCES` 或 `SEQ`:展示所有用户的序列信息。 - `DBA_SYNONYMS` 或 `SYN`:显示所有用户的同义词信息...
* 返回查询头几行/随机几行:`SELECT cols FROM tab ORDER BY random() LIMIT 1 ;` * 更改字段类型:`ALTER TABLE ALTER COLUMN TYPE` GPload 工具 * 编写 load.yml 文件: ``` VERSION: 1.0.0.1 USER: gpadmin ...