MySQLデータベース内のテーブル数を数える方法|SHOW TABLESとCOUNT(*)の使い方
MySQLデータベース内のテーブル数を数える方法
MySQLでデータベースに含まれるテーブルの総数を調べたい場合は、COUNT(*)とINFORMATION_SCHEMA.TABLES(table_schema)を組み合わせるのが基本です。まずは、対象となるデータベース「business」に実際にどのようなテーブルが存在するのかを確認してみましょう。テーブルの一覧を表示するには、SHOWコマンドを使用します。
mysql> show tables;
以下は、データベース「business」内のすべてのテーブルを表示した出力結果です。
+--------------------------+ | Tables_in_business | +--------------------------+ | addcheckconstraintdemo | | addcolumntable | | addconstraintdemo | | addnotnulldemo | | alphademo | | autoincrement | | autoincrementtable | | backticksymbol | | bookindexes | | chardemo | | checkdemo | | clonestudent | | columnexistdemo | | columnvaluenulldemo | | commaseperatedemo | | currentdatetime | | dateadddemo | | deletedemo | | deleterecord | | demo | | demo1 | | demoascii | | demoauto | | demobcrypt | | demoemptyandnull | | demoint | | demoonreplace | | demoschema | | demowhere | | distcountdemo | | distinctdemo | | distinctdemo1 | | duplicatebookindexes | | duplicatefound | | employeerecords | | employeetable | | escapedeom | | existsrowdemo | | findandreplacedemo | | firsttable | | foreigntable | | foreigntabledemo | | functionindexdemo | | functiontriggersdemo | | groupconcatenatedemo | | groupdemo | | groupdemo1 | | groupt_concatdemo | | ifelsedemo | | imagedemo | | incasesensdemo | | indexingdemo | | int1demo | | intdemo | | keydemo | | latandlangdemo | | limitoffsetdemo | | milliseconddemo | | modifycolumnnamedemo | | modifydatatype | | moneydemo | | moviecollection | | multipleindexdemo | | multiplerecordwithvalues | | myisamtoinnodbdemo | | mytable | | mytable1 | | newstudent | | nextpreviousdemo | | nonasciidemo | | nthrecorddemo | | nulldemo | | nullwithselect | | numbercolumndemo | | ondemo | | originaltable | | pasthistory | | presenthistory | | primarytable | | primarytable1 | | primarytabledemo | | qutesdemo | | rowcountdemo | | rownumberdemo | | rowstranspose | | rowstransposedemo | | saveintotextfile | | saveoutputintext | | secondtable | | sequencedemo | | singlequotesdemo | | smallintdemo | | sortingvarchardemo | | sourcetable | | spacecolumn | | student | | studentrecordwithmyisam | | studenttable | | table1 | | table2 | | tabledemo | | tbldemotrail | | tblf | | tblfirst | | tblfunctiontrigger | | tblifdemo | | tblp | | tblselectdemo | | tblstudent | | tbluni | | tblupdatelimit | | textdemo | | texturl | | timestampdemo | | trailingandleadingdemo | | transcationdemo | | triggedemo | | trigger1 | | trigger2demo | | trimdemo | | trimdemo2 | | uniqueconstdemo | | uniquedemo | | unsigneddemo | | updtable | | usernameandpassworddemo | | varchardemo | | varchardemo1 | | varchardemo2 | | varcharurl | | whereconditon | | xmldemo | +--------------------------+ 132 rows in set (0.01 sec)
上記の出力結果から、businessデータベースには合計132個のテーブルが存在することが確認できます。
テーブル数をカウントするSQLクエリ
テーブルの件数そのものを取得したい場合は、システムビューのINFORMATION_SCHEMA.TABLESに対してCOUNT(*)を実行します。WHERE句でTABLE_SCHEMA = 'business'と指定することで、businessデータベースに属するテーブルのみが集計されます。
mysql> SELECT COUNT(*) AS TOTALNUMBEROFTABLES
-> FROM INFORMATION_SCHEMA.TABLES
-> WHERE TABLE_SCHEMA = 'business';
実行すると、次のようにテーブルの総数が出力されます。
+---------------------+ | TOTALNUMBEROFTABLES | +---------------------+ | 132 | +---------------------+ 1 row in set (0.01 sec)
補足:INFORMATION_SCHEMA.TABLESは、MySQLサーバーが管理するすべてのテーブルのメタ情報(スキーマ名・テーブル名・テーブルタイプなど)を格納するシステムビューです。このビューを活用すれば、データベース単位の集計だけでなく、ストレージエンジン別やテーブルタイプ別など、さまざまな条件での絞り込みも柔軟に行えます。
-
MySQLでデータベース内のテーブル数を表示するクエリの書き方
INFORMATION_SCHEMA.TABLESを使ってテーブル数を取得するここでは例として、「WEB」というデータベースを使用しているものとします。このデータベース内に存在するテーブルの総数を調べたい場合、MySQLではINFORMATION_SCHEMA.TABLESを利用するのが便利です。INFORMATION_SCHEMAは、MySQLサーバーが管理しているメタデータ(データベース名、テーブル名、カラム情報など)を格納する仮想データベースであり、これを参照することでスキーマに関する情報をSQLで簡単に取得できます。テーブル数を表示するクエリ「WEB」データベース内のテーブル数を表示す
-
C#でリストの要素数を数える方法
C#でリスト(List<T>)に含まれるアイテムの数を数えるには、Countプロパティを使用します。Countプロパティは、リストに現在格納されている要素の数をint型で返します。 リストを作成する まず、サンプルとして文字列型のリストを作成します。 List<string> myList = new List<string>() { electronics, clothing, appliances, accessories }; 要素数を取得する リストの要素数は、次のようにCountプロパティを参照するだけで取得でき