求一SQL

yjdfff 2008-12-01 10:15:16

CREATE TABLE AB
(AA VARCHAR2(22))

CREATE TABLE ABC1
( ID NUMBER(22),
NAME VARCHAR2(20) NOT NULL ENABLE,
PRIMARY KEY (ID));


--这是列出来的两个表,还有很多。我想查看出表结构,得出如下结果
表名 列名 类型 是否主健 是否为空
AB AA VARCHAR2(22) 否 是
ABC ID NUMBER(22) 是 否
ABC NAME VARCHAR2(20) 否 否
...全文
158 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjdfff 2008-12-01
  • 打赏
  • 举报
回复
谢谢了哈
wfqqwer5213 2008-12-01
  • 打赏
  • 举报
回复
默认就是建表的时候的顺序,顺序不一样,可能是建表之后又调整了
yf520gn 2008-12-01
  • 打赏
  • 举报
回复
select tc.table_name 表名,
tc.column_name 列名,
tc.data_type 类型,
decode(p.column_name, null, '否', '是') 是否主健,
DECODE(TC.NULLABLE, 'Y', '是', '否') 是否可为空
from USER_TAB_COLS tc,
(select c.table_name, cc.column_name
from user_constraints c, user_cons_columns cc
where c.constraint_name = cc.constraint_name
and c.constraint_type = 'P') P
where tc.table_name = p.table_name(+)
and tc.column_name = p.column_name(+)
order by tc.table_name,tc.column_name
yjdfff 2008-12-01
  • 打赏
  • 举报
回复
如何按我表中的字段排序呢?
microsoft_fly 2008-12-01
  • 打赏
  • 举报
回复
数据库有问题,否则不可能这么慢
yjdfff 2008-12-01
  • 打赏
  • 举报
回复
wfqqwer5213语句能查出来了,现在查出来的字段是顺序是乱的,如何按表中字段顺序显示呢?
yjdfff 2008-12-01
  • 打赏
  • 举报
回复
wfqqwer5213 这语句怎么这么慢哟,我都跑了快10分钟了。
cyxin2121921 2008-12-01
  • 打赏
  • 举报
回复
mark
wfqqwer5213 2008-12-01
  • 打赏
  • 举报
回复
试下
select tc.table_name 表名,
tc.column_name 列名,
tc.data_type 类型,
decode(p.column_name, null, '否', '是') 是否主健,
DECODE(TC.NULLABLE, 'Y', '是', '否') 是否可为空
from USER_TAB_COLS tc,
(select c.table_name, cc.column_name
from user_constraints c, user_cons_columns cc
where c.constraint_name = cc.constraint_name
and c.constraint_type = 'P') P
where tc.table_name = p.table_name(+)
and tc.column_name = p.column_name(+)
wfqqwer5213 2008-12-01
  • 打赏
  • 举报
回复
select tc.table_name 表名,
tc.column_name 列名,
tc.data_type 类型,
decode(p.column_name, null, '否', '是') 是否主健,
DECODE(TC.NULLABLE, 'Y', '是', '否') 是否可为空
from USER_TAB_COLS tc,
(select c.table_name, cc.column_name
from user_constraints c, user_cons_columns cc
where c.constraint_name = cc.constraint_name
and c.constraint_type = 'P') P
where tc.table_name = p.table_name(+)
and tc.column_name = p.column_name(+)
yjdfff 2008-12-01
  • 打赏
  • 举报
回复
帮帮忙呀,怎么不回复了呢?
yjdfff 2008-12-01
  • 打赏
  • 举报
回复
wfqqwer5213 查出来的是笛卡尔积了。
yjdfff 2008-12-01
  • 打赏
  • 举报
回复
查一张表是没问题的,我要的是所有表。
sleepzzzzz 2008-12-01
  • 打赏
  • 举报
回复
6楼的差不多了,再拼一个字段长度就OK了.
yjdfff 2008-12-01
  • 打赏
  • 举报
回复
wfqqwer5213 写的不对呀,一个表中的字段重复了好多次
sleepzzzzz 2008-12-01
  • 打赏
  • 举报
回复
查看是否主键:

SQL> select CONSTRAINT_TYPE from dba_constraints where table_name = 'ABC1';

当值为P时,是主键约束.
wfqqwer5213 2008-12-01
  • 打赏
  • 举报
回复
select tc.table_name 表名,
tc.column_name 列名,
tc.data_type 类型,
DECODE(c.constraint_type, 'P', '是', '否') 是否主健,
DECODE(TC.NULLABLE, 'Y', '是', '否') 是否可为空
from USER_TAB_COLS tc, user_constraints c, user_cons_columns cc
where tc.table_name = c.table_name
and c.constraint_name = cc.constraint_name
yjdfff 2008-12-01
  • 打赏
  • 举报
回复
--这是我写的,有问题,请帮忙改一下
SELECT B.TABLE_NAME 表名,b.column_name 字段代码,
(select a.comments
from user_col_comments a
where a.table_name =B.TABLE_NAME
and a.column_name = b.column_name) 字段名称,
b.data_type || '(' || b.DATA_LENGTH || ')' 字段类型,
decode(b.column_name, c.column_name, '是', '否') 是否主键,
decode(b.nullable, 'Y', '是', '否')  是否为空
FROM user_tab_columns b,
( SELECT column_name FROM user_cons_columns A
WHERE EXISTS(SELECT constraint_name FROM user_constraints B
where constraint_type = 'P')) C
yjdfff 2008-12-01
  • 打赏
  • 举报
回复
desc TABLENAME 是显示一个表,我要显出上百张表
sleepzzzzz 2008-12-01
  • 打赏
  • 举报
回复
user_tab_cols
加载更多回复(3)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧