كيفية - مبادئ قواعد البيانات sql




الحصول على قائمة بجميع الجداول في أوراكل؟ (13)

لمشاهدة أفضل مع sqlplus

إذا كنت تستخدم sqlplus فقد ترغب أولاً في إعداد بعض المعلمات من أجل عرض أجمل إذا كانت أعمدتك تتعرض للتشويه (يجب ألا تستمر هذه المتغيرات بعد sqlplus جلسة sqlplus ):

set colsep '|'
set linesize 167
set pagesize 30
set pagesize 1000

عرض جميع الجداول

يمكنك بعد ذلك استخدام شيء مثل هذا لمشاهدة جميع أسماء الجداول:

SELECT table_name, owner, tablespace_name FROM all_tables;

إظهار الجداول التي تملكها

كما يذكرJustin Cave ، يمكنك استخدام هذا لإظهار الجداول التي تملكها فقط:

SELECT table_name FROM user_tables;

لا تنسى المشاهدات

ضع في اعتبارك أن بعض "الجداول" قد تكون في الواقع "مشاهدات" ، لذا يمكنك أيضًا تجربة شيء مثل:

SELECT view_name FROM all_views;

النتائج

يجب أن يؤدي هذا إلى شيء يبدو مقبولًا إلى حد ما مثل:

كيف يمكنني الاستعلام عن قاعدة بيانات أوراكل لعرض أسماء كل الجداول فيه؟


استعلام بسيط لتحديد الجداول للمستخدم الحالي:

  SELECT table_name FROM user_tables;

بما في ذلك وجهات النظر:

SELECT owner, table_name as table_view
  FROM dba_tables
UNION ALL
SELECT owner, view_name as table_view
  FROM DBA_VIEWS

جرب طرق عرض قاموس البيانات أدناه.

tabs
dba_tables
all_tables
user_tables


كنت أتطلع إلى الحصول على قائمة بجميع أسماء الأعمدة التي تنتمي إلى جدول مخطط تم فرزه حسب ترتيب معرف العمود.

هنا الاستعلام الذي أستخدمه: -

SELECT COLUMN_NAME
FROM ALL_TAB_COLUMNS
WHERE OWNER = 'schema_owner_username' AND TABLE_NAME='table_name'
ORDER BY COLUMN_ID ASC;

لم أجد الإجابة التي تشير إلى استخدامها

DBA_ALL_TABLES (ALL_ALL_TABLES/USER_ALL_TABLES)

لذلك قررت إضافة روايتي كذلك. يُرجع هذا العرض فعليًا أكثر من DBA_TABLES لأنه يعرض جداول الكائنات أيضًا ( http://docs.oracle.com/cd/E11882_01/server.112/e40402/statviews_1003.htm ).


مع أي من هذه ، يمكنك تحديد:

SELECT DISTINCT OWNER, OBJECT_NAME 
    FROM DBA_OBJECTS 
    WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';

SELECT DISTINCT OWNER, OBJECT_NAME 
    FROM ALL_OBJECTS 
    WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';

يسرد الاستعلام التالي البيانات المطلوبة فقط ، في حين أن الإجابات الأخرى أعطتني البيانات الإضافية التي أربكتني فقط.

select table_name from user_tables;

يمكنك استخدام قاموس بيانات Oracle للحصول على معلومات حول كائنات oracle.

يمكنك الحصول على قائمة الجداول بطرق مختلفة:

select * 
from dba_tables

أو على سبيل المثال:

select * 
from dba_objects 
where object_type = 'TABLE' 

ثم يمكنك الحصول على أعمدة الجدول باستخدام اسم الجدول:

select * 
from dba_tab_columns

ثم يمكنك الحصول على قائمة من التبعيات (المشغلات ، وجهات النظر وغيرها):

select * 
from dba_dependencies
where referenced_type='TABLE' and referenced_name=:t_name 

ثم يمكنك الحصول على مصدر نص من هذه الكائنات:

select * from dba_source

ويمكنك استخدام USER أو ALL المشاهدات بدلاً من DBA إذا أردت.


يوجد أدناه مقتطف تم التعليق عليه من استعلامات SQL يصف كيفية استخدام الخيارات:

-- need to have select catalog role
SELECT * FROM dba_tables;

-- to see tables of your schema
SELECT * FROM user_tables;

-- tables inside your schema and tables of other schema which you possess select grants on
SELECT * FROM all_tables;

    select object_name from user_objects where object_type='TABLE';

----------------أو------------------

    select * from tab;

----------------أو------------------

    select table_name from user_tables;

select * from dba_tables

يعطي جميع الجداول لجميع المستخدمين فقط إذا كان المستخدم الذي قمت بتسجيل الدخول لديه امتيازات sysdba .





oracle