oracle主键如何判断,oracle主键对应的关键字

oracle怎么查询所有的表有没有主键

1、查找表的所有索引(包括索引名,类型,构成列):

目前成都创新互联已为成百上千家的企业提供了网站建设、域名、雅安服务器托管网站托管、企业网站设计、武陟网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

select

t.*,i.index_type

from

user_ind_columns

t,user_indexes

i

where

t.index_name

=

i.index_name

and

t.table_name

=

i.table_name

and

t.table_name

=

要查询的表

2、查找表的主键(包括名称,构成列):

select

cu.*

from

user_cons_columns

cu,

user_constraints

au

where

cu.constraint_name

=

au.constraint_name

and

au.constraint_type

=

'P'

and

au.table_name

=

要查询的表

3、查找表的唯一性约束(包括名称,构成列):

select

column_name

from

user_cons_columns

cu,

user_constraints

au

where

cu.constraint_name

=

au.constraint_name

and

au.constraint_type

=

'U'

and

au.table_name

=

要查询的表

4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):

select

*

from

user_constraints

c

where

c.constraint_type

=

'R'

and

c.table_name

=

要查询的表

查询外键约束的列名:

select

*

from

user_cons_columns

cl

where

cl.constraint_name

=

外键名称

查询引用表的键的列名:

select

*

from

user_cons_columns

cl

where

cl.constraint_name

=

外键引用表的键名

5、查询表的所有列及其属性

select

t.*,c.COMMENTS

from

user_tab_columns

t,user_col_comments

c

where

t.table_name

=

c.table_name

and

t.column_name

=

c.column_name

and

t.table_name

=

要查询的表

6、Oracle中每个用户表的表名和行数

select

table_name,num_rows

from

user_tables;

7、Oracle查询用户表空间:select

*

from

user_all_tables

8、Oracle查询所有函数和储存过程:select

*

from

user_source

9、Oracle查询所有用户:

select

*

from

all_users;

select

*

from

dba_users

10、Oracle查看当前用户连接:select

*

from

v$Session

11、Oracle查看当前用户权限:select

*

from

session_privs

12、Oracle查看用户表空间使用情况:

select

a.file_id

"FileNo",a.tablespace_name

"Tablespace_name",

a.bytes

"Bytes",a.bytes-sum(nvl(b.bytes,0))

"Used",

sum(nvl(b.bytes,0))

"Free",

sum(nvl(b.bytes,0))/a.bytes*100

"%free"

from

dba_data_files

a,

dba_free_space

b

where

a.file_id=b.file_id(+)

group

by

a.tablespace_name

,

a.file_id,a.bytes

order

by

a.tablespace_name;

求助oracle 主键冲突的检测效的问题

向有主键的表中插入大量数据(千万级),会遇到主键冲突的问题,有两种办法可以捕获到主键冲突

1.自己判断主键冲突

select count(*) into v_cnt from table_name where primary_key = pk

if v_cnt = 0 then

insert into table_name values(pk);

end if;

2.oracle系统判断主键冲突

直接将数据插入表中,出现冲突则捕获异常并且忽略进行下一条数据插入,没有则直接插入

第一种办法的效率要高于第二种方法,请教各位大神有没有什么更高效的办法?

如何用oracle判断 表中是否存在某条数据 有主键

select a.constraint_name, a.column_name

from user_cons_columns a, user_constraints b

where a.constraint_name = b.constraint_name

and b.constraint_type = 'P'

and a.table_name = 'AA'-------大写

查看AA表的主键约束名称,以及主键约束的字段名称。 结果集就是该表的主键

在ORACLE数据库中,什么是主键?什么是外键?

主键就是自己设定的字段,该字段不能为空,而且该字段的值必须唯一,外键就是在主表中可以重复出现,但是它是另一个表的主键,对过外键使两个表相关.

如何判断在ORACLE中一字段是否是某表的主键

select a.constraint_name, a.column_name

from user_cons_columns a, user_constraints b

where a.constraint_name = b.constraint_name

and b.constraint_type = 'P'

and a.table_name = 'AA'-------大写

查看AA表的主键约束名称,以及主键约束的字段名称。 结果集就是该表的主键

Oracle中怎么知道表没有建立主键

一般的情况下,表的主键是必要的,没有主键的表可以说是不符合设计规范的。

SELECT table_name FROM User_tables t WHERE NOT EXISTS

(SELECT table_name FROM User_constraints c WHERE constraint_type = 'P' AND t.table_name=c.table_name)

其它相关数据字典解释

user_tables 表

user_tab_columns 表的列

user_constraints 约束

user_cons_columns 约束与列的关系

user_indexes 索引

醒找一个表中的主键

select distinct a.owner,a.constraint_type,a.table_name,b.column_name from all_constraints a,all_cons_columns b where a.OWNER='TMLHSYS2' and a.TABLE_NAME='TB_BUSINFO' and a.constraint_type='P' and a.CONSTRAINT_NAME=b.CONSTRAINT_NAME;

TB_BUSINFO 替换为自己的表名,TMLHSYS2替换为自己的登录名


当前名称:oracle主键如何判断,oracle主键对应的关键字
文章出自:http://ybzwz.com/article/hegpcj.html