اسکریپت جستجوی جداول توسط نام با خاتمه عبارتی مشخص
با اسکریپت جستجوی جداول توسط نام با خاتمه عبارتی مشخص میتوانید جدولهایی را پیدا کنید که نامشان با عبارت خاصی تمام میشود.
28 شهریور 1405
لینک کوتاه
اسکریپت جستجوی جداول توسط نام با خاتمه عبارتی مشخص
در پروژههای نرمافزاری و پایگاههای داده، گاهی تعداد جداول آنقدر زیاد میشود که پیدا کردن یک جدول خاص بهصورت دستی زمانبر خواهد بود.این مسئله بهخصوص در دیتابیسهایی که دارای صدها یا حتی هزاران جدول هستند، بیشتر دیده میشود.
یکی از راهکارهای کاربردی برای مدیریت چنین شرایطی، استفاده از اسکریپتهایی است که بتوانند جداول را بر اساس نام یا الگوی مشخص جستجو کنند.
برای مثال، ممکن است بخواهیم تمام جداولی را پیدا کنیم که نام آنها با عبارت خاصی مانند log، _archive، _history_ یا temp_ به پایان میرسد.
در این حالت، بهجای بررسی دستی فهرست جداول، میتوان از یک کوئری ساده برای جستجوی خودکار استفاده کرد.
چرا جستجوی جداول بر اساس نام اهمیت دارد؟
نامگذاری مناسب جداول یکی از اصول مهم طراحی پایگاه داده است. در بسیاری از پروژهها، توسعهدهندگان از الگوهای مشخصی برای نامگذاری استفاده میکنند.
بهعنوان نمونه، ممکن است جداول مربوط به تاریخچه اطلاعات با پسوند history_ یا جداول ثبت رویدادها با log_ مشخص شوند.
وقتی چنین استانداردی در پروژه وجود داشته باشد، جستجوی جداول بر اساس نام بسیار سادهتر خواهد بود.
این قابلیت هنگام عیبیابی، مهاجرت اطلاعات، تهیه گزارش، بررسی ساختار دیتابیس و حتی حذف یا آرشیو دادههای قدیمی کاربرد زیادی دارد.
فرض کنید در یک دیتابیس صدها جدول وجود دارد و قصد داریم همه جدولهایی را پیدا کنیم که نامشان به archive_ ختم میشود.
انجام این کار از طریق رابط گرافیکی ممکن است وقت زیادی بگیرد، اما با یک اسکریپت میتوان در چند ثانیه نتیجه را دریافت کرد.
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
استفاده از الگوی LIKE برای جستجوی نام جداول
یکی از متداولترین روشها برای جستجوی نام جداول، استفاده از عملگر LIKE است.این عملگر امکان جستجو بر اساس یک الگوی متنی را فراهم میکند.
برای مثال، در بسیاری از سیستمهای مدیریت پایگاه داده میتوان از ساختاری مشابه زیر استفاده کرد:
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE '%_archive';
در این کوئری، علامت % به این معناست که قبل از عبارت موردنظر میتواند هر تعداد کاراکتر وجود داشته باشد.
بنابراین نتیجه شامل جدولهایی خواهد بود که نام آنها با archive_ پایان مییابد.
برای نمونه، اگر دیتابیس شامل جدولهای زیر باشد:
users
orders
orders_archive
products
products_archive
customer_history
جستجوی بالا جدولهای orders_archive و products_archive را شناسایی خواهد کرد.
جستجوی جداول با پسوند مشخص
یکی از کاربردهای مهم این روش، پیدا کردن تمام جداولی است که پسوند مشترکی دارند. فرض کنید در یک پروژه برای ثبت لاگ، نام جداول به شکل زیر انتخاب شده است:
user_log
order_log
payment_log
system_log
در این شرایط میتوان از عبارت زیر استفاده کرد:
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE '%_log';
این روش بسیار ساده است و نیازی به وارد کردن نام تکتک جداول ندارد.
البته باید توجه داشت که نحوه دسترسی به اطلاعات متادیتای دیتابیس در سیستمهای مختلف متفاوت است.
برای مثال، SQL Server، MySQL، PostgreSQL و Oracle هرکدام روشها و نماهای سیستمی مخصوص خود را دارند.
بنابراین هنگام نوشتن یک اسکریپت قابل استفاده در محیط واقعی، باید نوع DBMS نیز در نظر گرفته شود.
محدود کردن جستجو به یک Schema
در دیتابیسهای بزرگ ممکن است چند Schema مختلف وجود داشته باشد و یک نام جدول در Schemaهای مختلف تکرار شود.در این شرایط بهتر است علاوه بر نام جدول، Schema را نیز در شرط جستجو مشخص کنیم.
یک نمونه عمومی میتواند به شکل زیر باشد:
SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME LIKE '%_archive';
در این مثال، فقط جدولهایی که در Schema موردنظر قرار دارند بررسی میشوند.
این کار باعث میشود نتایج دقیقتر باشند و در دیتابیسهای پیچیده، احتمال انتخاب جدول اشتباه کاهش پیدا کند.
جستجوی چند الگوی مختلف
گاهی هدف فقط پیدا کردن یک پسوند مشخص نیست و میخواهیم چند گروه از جداول را همزمان بررسی کنیم.برای مثال، ممکن است جداولی که با log_ یا archive_ تمام میشوند برای ما اهمیت داشته باشند.
در این حالت میتوان از چند شرط استفاده کرد:
SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE '%_log'
OR TABLE_NAME LIKE '%_archive';
به این ترتیب، تمام جدولهایی که یکی از این دو الگو را دارند نمایش داده میشوند.
استفاده جستجوی جدولها در اسکریپتهای مدیریتی
جستجوی جدولها فقط برای مشاهده نام آنها کاربرد ندارد.در پروژههای مدیریتی میتوان نتیجه این جستجو را بهعنوان ورودی مرحله بعدی یک اسکریپت استفاده کرد.
برای مثال، تصور کنید مدیر دیتابیس قصد دارد تمام جدولهای آرشیوی را بررسی کند.
ابتدا اسکریپت میتواند جدولهای دارای پسوند _archive را پیدا کند و سپس اطلاعاتی مانند تعداد رکوردها، حجم جدول یا تاریخ آخرین تغییر را بررسی کند.
این رویکرد بهخصوص در فرآیندهای نگهداری و بهینهسازی دیتابیس مفید است.
همچنین میتوان از آن برای تهیه گزارش خودکار درباره ساختار پایگاه داده استفاده کرد.
مزایای خودکارسازی جستجوی جداول
استفاده از اسکریپت برای جستجوی نام جداول چند مزیت مهم دارد.مهمترین مزیت، کاهش زمان انجام عملیات مدیریتی است.
همچنین احتمال خطای انسانی کاهش پیدا میکند؛ زیرا بهجای بررسی دستی فهرست طولانی جداول، سیستم بهصورت خودکار نامهای مطابق الگو را استخراج میکند.
مزیت دیگر، امکان استفاده مجدد از اسکریپت است.
اگر ساختار دیتابیس در آینده بزرگتر شود، همان اسکریپت میتواند روی تعداد بیشتری جدول اجرا شود و نیازی به تغییر روش دستی وجود نخواهد داشت.




کاربران ما
شما هم نظرتون با ما دریاره “اسکریپت جستجوی جداول توسط نام با خاتمه عبارتی مشخص” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید