نحوه بررسی جداول حاوی داده ها در یک پایگاه داده

هنگام مدیریت یک بانک اطلاعاتی ، اغلب شناسایی کدام جداول حاوی داده ها مفید است. این می تواند به عیب یابی ، نگهداری یا صرفاً درک ساختار و استفاده از پایگاه داده کمک کند. در اینجا نحوه بررسی جداول با داده ها در سیستم های مختلف مدیریت پایگاه داده رابطه (RDBMS) آورده شده است.
برای postgresql
در PostgreSQL ، شما می توانید به صورت پویا یک پرس و جو برای بررسی تعداد ردیف برای همه جداول درون یک طرح با استفاده از pg_catalog.pg_tables
:
با استفاده از بلوک PL/PGSQL:
DO $$
DECLARE
tbl RECORD;
BEGIN
FOR tbl IN
SELECT schemaname, tablename
FROM pg_catalog.pg_tables
WHERE schemaname = 'public' -- Change schema if needed
LOOP
EXECUTE format(
'SELECT COUNT(*) AS row_count, ''%I'' AS table_name FROM %I.%I',
tbl.tablename, tbl.schemaname, tbl.tablename
);
END LOOP;
END $$;
این اسکریپت از همه جداول موجود در public
شمای و خروجی تعداد ردیف برای هر جدول.
پرس و جو جایگزین:
اگر می خواهید ردیف را برای همه جداول در یک پرس و جو ببینید:
SELECT table_name,
(SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'public') AS row_count
FROM information_schema.tables
WHERE table_schema = 'public';
این رویکرد جداول و تعداد ردیف مربوط به آنها را ذکر می کند.
برای mysql
در MySQL می توانید بررسی کنید که جداول شامل داده ها با پرس و جو از تعداد ردیف مستقیم از هر جدول است. در اینجا راهی برای انجام این کار به صورت پویا وجود دارد:
پرس و جو برای به دست آوردن تعداد ردیف:
SELECT table_name, table_rows
FROM information_schema.tables
WHERE table_schema = 'your_database_name';
- تعویض کردن
your_database_name
با نام پایگاه داده خود - در
table_rows
ستون تعداد تقریبی ردیف ها را برای هر جدول فراهم می کند (توجه داشته باشید که این مقدار همیشه ممکن است 100 ٪ دقیق نباشد).
برای سرور SQL
در SQL Server می توانید از sys.tables
نمای سیستم برای بررسی پویا شمارش ردیف برای همه جداول:
پرس و جو:
SELECT t.name AS table_name,
p.rows AS row_count
FROM sys.tables t
JOIN sys.partitions p
ON t.object_id = p.object_id
WHERE p.index_id IN (0, 1); -- 0 = Heap, 1 = Clustered Index
این پرس و جو تعداد ردیف را برای همه جداول کاربر در پایگاه داده فعلی برمی گرداند.
برای sqlite
در SQLite می توانید از sqlite_master
جدول برای به دست آوردن لیستی از جداول و هر یک از هر یک برای تعداد ردیف خود پرس و جو کنید:
پرس و جو:
SELECT name AS table_name,
(SELECT COUNT(*) FROM name) AS row_count
FROM sqlite_master
WHERE type = 'table';
این پرس و جو همه جداول و تعداد ردیف آنها را لیست می کند.
پایان
بررسی اینکه کدام جداول حاوی داده ها یک کار مشترک در تمام پایگاه داده ها است. بیشتر بانکهای اطلاعاتی روش هایی برای تولید پویا نمایش داده شد یا استفاده از نماهای سیستم برای شمارش ردیف ها در هر جدول ارائه می دهند. با استفاده از این تکنیک ها ، می توانید به سرعت مشخص کنید که جداول دارای داده ها هستند و ساختار پایگاه داده خود را به طور مؤثر درک می کنند.