如何查询oracle数据库表字段

如何查询oracle数据库表字段,第1张

这里涉及到两个系统视图的应用dba_tab_cols和user_tab_cols;

dba_tab_cols包含所有用户下表字段信息;user_tab_cols包含当前用户下表信息;使用tba_tab_clos查询表字段类型需要指定owner(用户)

上述两个表中,table_name,column_name,data_type就可以满足需要查询表字段类型了,具体类型对应其他字段还有另外定义,比如varchar2,date,number还对应在data_length字段有值,说明类型其长度

user_tab_columns和user_tab_cols都可以满足问题要求,但是两张视图还是有区别的,主要是包含字段的区别等,具体区别可以度娘哈,这里就不赘述。

一个表一个表,一个字段一个字段的去查,比如:select

from

表1

where

字段1=值

把表导入到sql文件里面,然后打开这个文件,用"查找"的功能找这个值。但是如果表和数据库很大的话,恐怕也不容易导出和打开这个sql文件。

查看可用如下方法:

1、创建测试表,插入数据:

1

2

3

4

5

6

7

8

9

10

11

12

13

create table product

(id int,

name varchar(10),

totol int)

insert into product values (1,'香蕉',100)

insert into product values (2,'橘子',67)

insert into product values (3,'葡萄',89)

insert into product values (4,'苹果',235)

insert into product values (5,'香蕉',77)

insert into product values (6,'芒果',34)

insert into product values (7,'葡萄',78)

insert into product values (8,'梨',24)

表中数据如:

2、如果查询name列有重复的数据,可执行sql语句:

1

select from product where name in (select name from product group by name having COUNT()>1)

说明:查询的结果就是香蕉和葡萄在表中是有重复的,要把香蕉和葡萄的所有记录都查询出来,结果如图:

1查询数据库中的所有数据库名:

SELECT Name FROM MasterSysDatabases ORDER BY Name

2查询某个数据库中所有的表名:

SELECT Name FROM SysObjects Where XType='U' ORDER BY Name

3查询表结构信息:

1 SELECT (case when acolorder=1 then dname else null end) 表名,

2 acolorder 字段序号,aname 字段名,

3 (case when COLUMNPROPERTY( aid,aname,'IsIdentity')=1 then '√'else '' end) 标识,

4 (case when (SELECT count() FROM sysobjects

5 WHERE (name in (SELECT name FROM sysindexes

6 WHERE (id = aid) AND (indid in

7 (SELECT indid FROM sysindexkeys

8 WHERE (id = aid) AND (colid in

9 (SELECT colid FROM syscolumns WHERE (id = aid) AND (name = aname)))))))

10 AND (xtype = 'PK'))>0 then '√' else '' end) 主键,bname 类型,alength 占用字节数,

11 COLUMNPROPERTY(aid,aname,'PRECISION') as 长度,

12 isnull(COLUMNPROPERTY(aid,aname,'Scale'),0) as 小数位数,(case when aisnullable=1 then '√'else '' end) 允许空,

13 isnull(etext,'') 默认值,isnull(g[value], ' ') AS [说明]

14 FROM syscolumns a

15 left join systypes b on axtype=bxusertype

16 inner join sysobjects d on aid=did and dxtype='U' and dname<>'dtproperties'

17 left join syscomments e on acdefault=eid

18 left join sysextended_properties g on aid=gmajor_id AND acolid=gminor_id

19 left join sysextended_properties f on did=fclass and fminor_id=0

20 where bname is not null

21 --WHERE dname='要查询的表' --如果只查询指定表,加上此条件

22 order by aid,acolorder

1、打开您 *** 作数据库的可视化工具(我现在用的是DbVisualizer)。

2、在sql窗口中编写查询语句,我之前遇到这个问题的时候,找了好久都是说使用value,nvl,decode等等函数去 *** 作,这样用法确实可以,但是不适用于我遇到的这个情况,那些方法只适用于存在此条记录,但是某一字段可能为null的情况。

3、在sql窗口中可使用迂回的方式进行查询设定默认值。可先查询是否含有此条记录存在,如果不存在就给查询的字段设定默认值,如果存在就使用子查询去取该字段真正的值。

当button1点击的时候,先清理掉dataSet11中的所有表,然后重新填充数据源dataSet11的表student,绑定

datagridview

当button2点击的时候,你只是定义了一个查询字符串,数据源dataSet11的数据表student内容并没有发生改变,你再次绑定的

datagridview话,没有任何变化的。建议你在button2点击后,根据新的sql,重新填充数据源

并重新

绑定到datagridview即可。

数据库表中字段类型有以下几种:

1

二进制数据类型

binary、varbinary、image

2字符数据类型

char,varchar和

text

3unicode数据类型

包括nchar,nvarchar和ntext

4日期和时间数据类型

包括datetime,

smalldatetime,

date,

timestamp

5数字数据类型

数字数据类型包括正数和负数、小数和整数

6货币数据类型

表示正的或者负的货币数量。

7特殊数据类型

特殊的数据类型有3种,即timestamp、bit

uniqueidentifier。

根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等。

具体步骤如下:/导致这种情况的原因主要是……

以上就是关于如何查询oracle数据库表字段全部的内容,包括:如何查询oracle数据库表字段、如何查找数据库中某一字段的某一内容、如何查询数据库中有相同字段的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9518910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存