问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Oracle数据库表引用查询完全指南

创作时间:
作者:
@小白创作中心

Oracle数据库表引用查询完全指南

引用
1
来源
1.
http://www.cdweb.net/article/hejiop.html

在数据库管理中,了解表之间的引用关系对于维护数据完整性和优化查询性能至关重要。本文将详细介绍如何在Oracle数据库中查询表引用、外键、索引等数据库对象的信息,并提供具体的SQL语句和操作步骤。

ORACLE中,如何根据已知的主键查询所有引用这个主键的外键的表

在TOAD中选中表名,按F4,选择Referential,即可看到关于此表关联的主键或外键的表了,如附件图。

oracle怎么别的库中表引用

有两种方法:

方法一:使用SQL*PLUS进行数据迁移

先连接本地数据库:

copy from ###/###@### to $$$/$$$@$$$
create table col1,col2,...using select .. from table where ..;

这种方法适合小额数据的迁移,只能在SQL*PLUS中运行。

  • ###/###@### --本地数据库
  • $$$/$$$@$$$ --想引用的别的库

方法二:创建数据库链接

DBA负责创建数据库链接。字典视图USER_DB_LINKS包含有关用户可以访问的链接信息。

语法:

CREATE PUBLIC DATABASE LINK link_name
CONNECT TO USER_NAME IDENTIFIED BY PASSWORD
USING 'dbname@hostname';

其中:

  • PUBLIC 指定数据库链接的OWNER为PUBLIC,即公用的数据库链接
  • CONNECT TO 要用来链接的用户名和密码
  • dbname@hostname 为数据库名@主机名,要加引号,且必须是个在本机注册了的网络服务名(可以连接到的)

例:

create public database link testlink
connect to system identified by system
using 'ora9_172.18.25.250';

说明:

可通过user_db_links来查看已有的数据库链接。

oracle 怎么查看索引被引用

  1. 通过PL/SQL可以直接查看某表是否建索引
  2. 通过SQL查询
select status,T.* from user_indexes T
where table_name='表名'

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 = 要查询的表
  1. 查找表的主键(包括名称,构成列):
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 = 要查询的表
  1. 查找表的唯一性约束(包括名称,构成列):
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 = 要查询的表
  1. 查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):
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 = 外键引用表的键名
  1. 查询表的所有列及其属性
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 = 要查询的表
  1. Oracle中每个用户表的表名和行数
select table_name,num_rows from user_tables;
  1. Oracle查询用户表空间:
select * from user_all_tables
  1. Oracle查询所有函数和储存过程:
select * from user_source
  1. Oracle查询所有用户:
select * from all_users;
select * from dba_users
  1. Oracle查看当前用户连接:
select * from v$Session
  1. Oracle查看当前用户权限:
select * from session_privs
  1. 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;
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号