视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Oracle查询数据表结构(字段,类型,大小,备注)
2020-11-09 08:28:33 责编:小采
文档


创建表的SQL语句如下 -- 创建数据表 create table TABLE_TEST ( NAME varchar2(40) not null, SEX varchar2(1) default ''''Y'''' not null, BIRTHDAY date not null, HEIGHT number(3,2), WEIGHT number(3,2), MEMO blob ); -- 给列添加备注 comment on col

创建表的SQL语句如下
-- 创建数据表
create table TABLE_TEST
(
NAME varchar2(40) not null,
SEX varchar2(1) default ''''Y'''' not null,
BIRTHDAY date not null,
HEIGHT number(3,2),
WEIGHT number(3,2),
MEMO blob
);
-- 给列添加备注
comment on column TABLE_TEST.NAME is ''''姓名'''';
comment on column TABLE_TEST.SEX is ''''性别'''';
comment on column TABLE_TEST.BIRTHDAY is ''''生日'''';
comment on column TABLE_TEST.HEIGHT is ''''身高'''';
comment on column TABLE_TEST.WEIGHT is ''''体重'''';
comment on column TABLE_TEST.MEMO is ''''备注'''';
-- 创建约束关系 主键 外键 其他
alter table TABLE_TEST add constraint TB_TEST_P_NAME primary key (NAME);

数据表创建完毕,执行下列SQL语句:
select
A.column_name 字段名,A.data_type 数据类型,A.data_length 长度,A.data_precision 整数位,
A.Data_Scale 小数位,A.nullable 允许空值,A.Data_default 缺省值,B.comments 备注
from
user_tab_columns A,user_col_comments B
where
A.Table_Name = B.Table_Name
and A.Column_Name = B.Column_Name
and A.Table_Name = ''''TABLE_TEST''''

我们可以得出一下结果:

字段名
数据类型
长度
整数位
小数位
允许空值
缺省值
备注
NAME
VARCHAR2
40


N
姓名
SEX
VARCHAR2
1


N
性别
BIRTHDAY
DATE
7


N
生日
HEIGHT
NUMBER
22
3
2
Y
身高
WEIGHT
NUMBER
22
3
2
Y
体重
MEMO
BLOB
4000


Y
备注

这样,我们在进行程序设计时,通过一条简单的SQL语句,然好通过Ole调用Word,便可为最终用户导出完整的数据库表字典文档。
再执行下列SQL语句:
select
INDEX_NAME 索引名,INDEX_TYPE 索引类型,UNIQUENESS 索引类别
from
user_indexes
where
TABLE_NAME = ''''TABLE_TEST''''

得到结果如下(注:SYS_IL0000031226C00006$$索引为系统在创建数据库表时自动创建的,用于数据库表内容的维护):

 
索引名
索引类型
索引类别
1
SYS_IL0000031226C00006$$
LOB
UNIQUE
2
TB_TEST_P_NAME
NORMAL
UNIQUE

 

执行下列SQL语句,我们将得到更多的关于数据库表结构的信息:
select
A.column_name 字段名,A.data_type 数据类型,A.data_length 长度,A.data_precision 整数位,
A.Data_Scale 小数位,A.nullable 允许空值,A.Data_default 缺省值,B.comments 备注,
C.IndexCount 索引次数
from
user_tab_columns A,
user_col_comments B,
(select count(*) IndexCount,Column_Name from User_Ind_Columns where Table_Name = ''''TABLE_TEST'''' group by Column_Name) C
where
A.Table_Name = B.Table_Name
and A.Column_Name = B.Column_Name
and A.Column_Name = C.Column_Name(+)
and A.Table_Name = ''''TABLE_TEST''''

得到结果如下:

字段名
数据类型
长度
整数位
小数位
允许空值
缺省值
备注
索引次数
BIRTHDAY
DATE
7


N
生日

HEIGHT
NUMBER
22
3
2
Y
身高

MEMO
BLOB
4000


Y
备注

NAME
VARCHAR2
40


N
姓名
1
SEX
VARCHAR2
1


N
性别

WEIGHT
NUMBER
22
3
2
Y
体重

 

当然Oracle数据字典的应用远不止这些,通过Oracle数据库字典的支持,我们可以得到Oracle数据库结构的所有信息,著名的数据库开发工具PL/SQL Developer完全就是基于Oracle的数据库字典实现的。

下载本文
显示全文
专题