কম্পিউটার টিউটোরিয়াল

MySQL-এ সব ডেটাবেস এবং প্রতিটি ডেটাবেসের টেবিল তালিকা দেখানো

INFORMATION_SCHEMA দিয়ে সব ডেটাবেস এবং তাদের টেবিল একসাথে কোয়েরি করা যায়।

কোয়েরি:

SELECT my_schema.SCHEMA_NAME,
       GROUP_CONCAT(tbl.TABLE_NAME)
FROM INFORMATION_SCHEMA.SCHEMATA my_schema
LEFT JOIN INFORMATION_SCHEMA.TABLES tbl
  ON my_schema.SCHEMA_NAME = tbl.TABLE_SCHEMA
GROUP BY my_schema.SCHEMA_NAME;

আউটপুট (অংশিক):

+---------------------------+------------------------------------------------------------------+
| SCHEMA_NAME               | group_concat(tbl.TABLE_NAME)                                     |
+---------------------------+------------------------------------------------------------------+
| business                  | addconstraintdemo, addonedaydemo, autoincrementtozero, ...       |
| information_schema        | COLUMNS, INNODB_CMP, INNODB_FIELDS, VIEWS, ENGINES, ...          |
| mysql                     | db, help_category, mytable, user, columns_priv, ...              |
| performance_schema        | events_errors_summary_by_user_by_error, events_stages_summary... |
| sys                       | host_summary_by_file_io, io_by_thread_by_latency, ...            |
| web                       | demotable492, demotable500, demotable508, DemoTable, ...         |
+---------------------------+------------------------------------------------------------------+
36 rows in set

ব্যাখ্যা: INFORMATION_SCHEMA.SCHEMATA সব ডেটাবেস (স্কিমা) তালিকা দেয়। LEFT JOIN দিয়ে TABLES টেবিল জয়েন করা হয়। GROUP_CONCAT টেবিল নামগুলো কমা দিয়ে এক লাইনে আনে। NULL মানে ওই ডেটাবেসে কোন টেবিল নেই। দ্রষ্টব্য: GROUP_CONCAT-এর ডিফল্ট লিমিট ১০২৪ ক্যারেক্টার, বড় লিস্টের জন্য `SET SESSION group_concat_max_len = 1000000;` ব্যবহার করুন।

  1. MySQL에서 GRANT SELECT ON *.*로 모든 데이터베이스 모든 테이블 읽기 권한 주기

  2. MySQL-এ JOIN ব্যবহার করে দুই টেবিল থেকে ডেটা ফেচ করা

  3. MySQL ডেটাবেস ও টেবিল সম্পর্কে তথ্য পাওয়া

  4. Python দিয়ে MySQL ডেটাবেস ও সার্ভারের সব টেবিল দেখানোর পদ্ধতি